@adeficior/data-modifier-loader 2.0.1 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +7 -2
- package/dist/index.js +14 -9
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import type { ModuleConfig } from "@adeficior/data-modifier-core";
|
|
2
|
+
export type ModuleLoaderOptions = {
|
|
3
|
+
optional: boolean;
|
|
4
|
+
root?: string;
|
|
5
|
+
};
|
|
2
6
|
export declare function findModuleIn(dir: string): Promise<ModuleConfig>;
|
|
3
7
|
export declare function readModule(file: string): Promise<ModuleConfig>;
|
|
4
|
-
export declare function loadDependencyModules(dependencies: ModuleConfig["dependencies"],
|
|
5
|
-
export declare function
|
|
8
|
+
export declare function loadDependencyModules(dependencies: ModuleConfig["dependencies"], options: ModuleLoaderOptions): Promise<ModuleConfig[]>;
|
|
9
|
+
export declare function loadModule(module: string | ModuleConfig, options: ModuleLoaderOptions): Promise<ModuleConfig[]>;
|
|
10
|
+
export declare function loadModules(modules: (string | ModuleConfig)[], options: ModuleLoaderOptions): Promise<ModuleConfig[]>;
|
package/dist/index.js
CHANGED
|
@@ -28,8 +28,10 @@ function resolveModuleIn(...folders) {
|
|
|
28
28
|
throw new Error("module does not exist in any folder");
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
|
-
async function loadDependencyModulesRecursive(nodeModules, dependencies, exclude) {
|
|
31
|
+
async function loadDependencyModulesRecursive(nodeModules, dependencies, options, exclude) {
|
|
32
32
|
const found = await Promise.all(Object.entries(dependencies).map(async ([name, type]) => {
|
|
33
|
+
if (options.optional === false && type === "optional")
|
|
34
|
+
return [];
|
|
33
35
|
const strategy = resolveModuleIn(...nodeModules);
|
|
34
36
|
const dependencyDir = await strategy(name);
|
|
35
37
|
const dependencyModule = await findModuleIn(dependencyDir);
|
|
@@ -38,7 +40,7 @@ async function loadDependencyModulesRecursive(nodeModules, dependencies, exclude
|
|
|
38
40
|
if (dependencyModule) {
|
|
39
41
|
return [
|
|
40
42
|
dependencyModule,
|
|
41
|
-
...(await loadDependencyModulesRecursive([...nodeModules, join(dependencyDir, "node_modules")], dependencyModule.dependencies, [...exclude, name])),
|
|
43
|
+
...(await loadDependencyModulesRecursive([...nodeModules, join(dependencyDir, "node_modules")], dependencyModule.dependencies, options, [...exclude, name])),
|
|
42
44
|
];
|
|
43
45
|
}
|
|
44
46
|
const message = `missing ${type} dependency module '${name}'`;
|
|
@@ -48,17 +50,20 @@ async function loadDependencyModulesRecursive(nodeModules, dependencies, exclude
|
|
|
48
50
|
}));
|
|
49
51
|
return found.flat();
|
|
50
52
|
}
|
|
51
|
-
export function loadDependencyModules(dependencies,
|
|
52
|
-
return loadDependencyModulesRecursive([join(root, "node_modules")], dependencies, []);
|
|
53
|
+
export function loadDependencyModules(dependencies, options) {
|
|
54
|
+
return loadDependencyModulesRecursive([join(options.root ?? ".", "node_modules")], dependencies, options, []);
|
|
53
55
|
}
|
|
54
|
-
async function loadModule(module) {
|
|
56
|
+
export async function loadModule(module, options) {
|
|
55
57
|
if (typeof module === "string")
|
|
56
|
-
return loadDependencyModules({ [module]: "required" });
|
|
57
|
-
return [
|
|
58
|
+
return loadDependencyModules({ [module]: "required" }, options);
|
|
59
|
+
return [
|
|
60
|
+
module,
|
|
61
|
+
...(await loadDependencyModules(module.dependencies, options)),
|
|
62
|
+
];
|
|
58
63
|
}
|
|
59
|
-
export async function loadModules(modules) {
|
|
64
|
+
export async function loadModules(modules, options) {
|
|
60
65
|
const withLib = ["@adeficior/data-modifier", ...modules];
|
|
61
|
-
const loaded = await Promise.all(withLib.map(loadModule));
|
|
66
|
+
const loaded = await Promise.all(withLib.map((it) => loadModule(it, options)));
|
|
62
67
|
return uniqBy(loaded.flat(), (it) => it.name);
|
|
63
68
|
}
|
|
64
69
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adeficior/data-modifier-loader",
|
|
3
3
|
"description": "module loading logic",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.1.1",
|
|
5
5
|
"exports": { ".": "./dist/index.js" },
|
|
6
6
|
"type": "module",
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"@adeficior/data-modifier-core": "^2.0
|
|
8
|
+
"@adeficior/data-modifier-core": "^2.1.0",
|
|
9
9
|
"@types/lodash-es": "^4.17.12"
|
|
10
10
|
},
|
|
11
11
|
"peerDependencies": {
|
|
12
12
|
"typescript": "^5",
|
|
13
13
|
"lodash-es": "^4.18.1",
|
|
14
|
-
"@adeficior/data-modifier-core": "^2.0
|
|
14
|
+
"@adeficior/data-modifier-core": "^2.1.0"
|
|
15
15
|
},
|
|
16
16
|
"typesVersions": { "*": {} },
|
|
17
17
|
"types": "./dist/index.d.ts",
|