update socials section
This commit is contained in:
81
node_modules/@humanwhocodes/module-importer/src/module-importer.cjs
generated
vendored
Normal file
81
node_modules/@humanwhocodes/module-importer/src/module-importer.cjs
generated
vendored
Normal file
@ -0,0 +1,81 @@
|
||||
/**
|
||||
* @fileoverview Universal module importer
|
||||
*/
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Imports
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
const { createRequire } = require("module");
|
||||
const { pathToFileURL } = require("url");
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Helpers
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
const SLASHES = new Set(["/", "\\"]);
|
||||
|
||||
/**
|
||||
* Normalizes directories to have a trailing slash.
|
||||
* Resolve is pretty finicky -- if the directory name doesn't have
|
||||
* a trailing slash then it tries to look in the parent directory.
|
||||
* i.e., if the directory is "/usr/nzakas/foo" it will start the
|
||||
* search in /usr/nzakas. However, if the directory is "/user/nzakas/foo/",
|
||||
* then it will start the search in /user/nzakas/foo.
|
||||
* @param {string} directory The directory to check.
|
||||
* @returns {string} The normalized directory.
|
||||
*/
|
||||
function normalizeDirectory(directory) {
|
||||
if (!SLASHES.has(directory[directory.length-1])) {
|
||||
return directory + "/";
|
||||
}
|
||||
|
||||
return directory;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Exports
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Class for importing both CommonJS and ESM modules in Node.js.
|
||||
*/
|
||||
exports.ModuleImporter = class ModuleImporter {
|
||||
|
||||
/**
|
||||
* Creates a new instance.
|
||||
* @param {string} [cwd] The current working directory to resolve from.
|
||||
*/
|
||||
constructor(cwd = process.cwd()) {
|
||||
|
||||
/**
|
||||
* The base directory from which paths should be resolved.
|
||||
* @type {string}
|
||||
*/
|
||||
this.cwd = normalizeDirectory(cwd);
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolves a module based on its name or location.
|
||||
* @param {string} specifier Either an npm package name or
|
||||
* relative file path.
|
||||
* @returns {string|undefined} The location of the import.
|
||||
* @throws {Error} If specifier cannot be located.
|
||||
*/
|
||||
resolve(specifier) {
|
||||
const require = createRequire(this.cwd);
|
||||
return require.resolve(specifier);
|
||||
}
|
||||
|
||||
/**
|
||||
* Imports a module based on its name or location.
|
||||
* @param {string} specifier Either an npm package name or
|
||||
* relative file path.
|
||||
* @returns {Promise<object>} The module's object.
|
||||
*/
|
||||
import(specifier) {
|
||||
const location = this.resolve(specifier);
|
||||
return import(pathToFileURL(location).href);
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user