UNPKG

1.37 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.resolveExternalModuleAndFn = void 0;
4const tslib_1 = require("tslib");
5const module_1 = require("module");
6const process_1 = require("process");
7const changeCaseAll = tslib_1.__importStar(require("change-case-all"));
8function resolveExternalModuleAndFn(pointer) {
9 if (typeof pointer === 'function') {
10 return pointer;
11 }
12 // eslint-disable-next-line prefer-const
13 let [moduleName, functionName] = pointer.split('#');
14 // Temp workaround until v2
15 if (moduleName === 'change-case') {
16 moduleName = 'change-case-all';
17 }
18 let loadedModule;
19 if (moduleName === 'change-case-all') {
20 loadedModule = changeCaseAll;
21 }
22 else {
23 // we have to use a path to a filename here (it does not need to exist.)
24 // https://github.com/dotansimha/graphql-code-generator/issues/6553
25 const cwdRequire = (0, module_1.createRequire)((0, process_1.cwd)() + '/index.js');
26 loadedModule = cwdRequire(moduleName);
27 if (!(functionName in loadedModule) && typeof loadedModule !== 'function') {
28 throw new Error(`${functionName} couldn't be found in module ${moduleName}!`);
29 }
30 }
31 return loadedModule[functionName] || loadedModule;
32}
33exports.resolveExternalModuleAndFn = resolveExternalModuleAndFn;