UNPKG

aws-ddk-core

Version:

The AWS DataOps Development Kit is an open source development framework for customers that build data workflows and modern data architecture on AWS.

50 lines (41 loc) 1.24 kB
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