intern-Assignment/Sequelize-library/node_modules/sequelize-cli/lib/helpers/import-helper.js
2025-01-31 15:20:39 +05:30

41 lines
1.2 KiB
JavaScript

"use strict";
var _url = _interopRequireDefault(require("url"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
async function supportsDynamicImport() {
try {
// imports are cached.
// no need to worry about perf here.
// Don't remove .js: extension must be included for ESM imports!
await import('./dummy-file.js');
return true;
} catch (e) {
return false;
}
}
/**
* Imports a JSON, CommonJS or ESM module
* based on feature detection.
*
* @param modulePath path to the module to import
* @returns {Promise<unknown>} the imported module.
*/
async function importModule(modulePath) {
// JSON modules are still behind a flag. Fallback to require for now.
// https://nodejs.org/api/esm.html#json-modules
if (_url.default.pathToFileURL && !modulePath.endsWith('.json') && (await supportsDynamicImport())) {
// 'import' expects a URL. (https://github.com/sequelize/cli/issues/994)
return import(_url.default.pathToFileURL(modulePath));
}
// mimics what `import()` would return for
// cjs modules.
return {
default: require(modulePath)
};
}
module.exports = {
supportsDynamicImport,
importModule
};