feat: initial commit
This commit is contained in:
49
node_modules/create-require/create-require.js
generated
vendored
Normal file
49
node_modules/create-require/create-require.js
generated
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
const nativeModule = require('module')
|
||||
const path = require('path')
|
||||
const fs = require('fs')
|
||||
|
||||
function createRequire (filename) {
|
||||
// Fallback to process.cwd() if no filename passed
|
||||
if (!filename) {
|
||||
filename = process.cwd()
|
||||
}
|
||||
|
||||
// If filename is dir, createRequire goes with parent directory, so we need fakepath
|
||||
if (isDir(filename)) {
|
||||
filename = path.join(filename, 'index.js')
|
||||
}
|
||||
|
||||
// Added in Node v12.2.0
|
||||
if (nativeModule.createRequire) {
|
||||
return nativeModule.createRequire(filename)
|
||||
}
|
||||
|
||||
// Added in Node v10.12.0 and deprecated since Node v12.2.0
|
||||
if (nativeModule.createRequireFromPath) {
|
||||
return nativeModule.createRequireFromPath(filename)
|
||||
}
|
||||
|
||||
// Polyfill
|
||||
return _createRequire(filename)
|
||||
}
|
||||
|
||||
// Polyfill
|
||||
function _createRequire (filename) {
|
||||
const mod = new nativeModule.Module(filename, null)
|
||||
mod.filename = filename
|
||||
mod.paths = nativeModule.Module._nodeModulePaths(path.dirname(filename))
|
||||
mod._compile('module.exports = require;', filename)
|
||||
return mod.exports
|
||||
}
|
||||
|
||||
function isDir (path) {
|
||||
try {
|
||||
const stat = fs.lstatSync(path)
|
||||
return stat.isDirectory()
|
||||
} catch (e) {
|
||||
// lstatSync throws an error if path doesn't exist
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = createRequire
|
Reference in New Issue
Block a user