1 | import { createRequire } from 'module';
|
2 | import { cwd } from 'process';
|
3 | import * as changeCaseAll from 'change-case-all';
|
4 | export function resolveExternalModuleAndFn(pointer) {
|
5 | if (typeof pointer === 'function') {
|
6 | return pointer;
|
7 | }
|
8 |
|
9 | let [moduleName, functionName] = pointer.split('#');
|
10 |
|
11 | if (moduleName === 'change-case') {
|
12 | moduleName = 'change-case-all';
|
13 | }
|
14 | let loadedModule;
|
15 | if (moduleName === 'change-case-all') {
|
16 | loadedModule = changeCaseAll;
|
17 | }
|
18 | else {
|
19 |
|
20 |
|
21 | const cwdRequire = createRequire(cwd() + '/index.js');
|
22 | loadedModule = cwdRequire(moduleName);
|
23 | if (!(functionName in loadedModule) && typeof loadedModule !== 'function') {
|
24 | throw new Error(`${functionName} couldn't be found in module ${moduleName}!`);
|
25 | }
|
26 | }
|
27 | return loadedModule[functionName] || loadedModule;
|
28 | }
|