| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- "use strict";
- var _url = _interopRequireDefault(require("url"));
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
- 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
- };
|