@graphql-mesh/cli
Version:
27 lines (26 loc) • 835 B
JavaScript
import createJITI from 'jiti';
let jiti;
function getOrCreateImportFn() {
if (!jiti) {
// we instantiate on demand because sometimes jiti is not used
jiti = createJITI(__filename);
}
return id => jiti.import(id, {});
}
export const defaultImportFn = async (id) => {
let module = await getOrCreateImportFn()(id);
if (module.default != null) {
module = module.default;
}
if (typeof module === 'object' && module != null) {
const prototypeOfObject = Object.getPrototypeOf(module);
if (prototypeOfObject == null || prototypeOfObject === Object.prototype) {
const normalizedVal = {};
for (const key in module) {
normalizedVal[key] = module[key];
}
return normalizedVal;
}
}
return module;
};