@adeficior/data-modifier-loader 2.0.1 → 2.1.0

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 CHANGED
@@ -1,5 +1,9 @@
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"], root?: string): Promise<ModuleConfig[]>;
5
- export declare function loadModules(modules: (string | ModuleConfig)[]): Promise<ModuleConfig[]>;
8
+ export declare function loadDependencyModules(dependencies: ModuleConfig["dependencies"], options: ModuleLoaderOptions): Promise<ModuleConfig[]>;
9
+ 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, root = ".") {
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
+ async function loadModule(module, options) {
55
57
  if (typeof module === "string")
56
- return loadDependencyModules({ [module]: "required" });
57
- return [module, ...(await loadDependencyModules(module.dependencies))];
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":"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"}
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.0.1",
4
+ "version": "2.1.0",
5
5
  "exports": { ".": "./dist/index.js" },
6
6
  "type": "module",
7
7
  "devDependencies": {
8
- "@adeficior/data-modifier-core": "^2.0.1",
8
+ "@adeficior/data-modifier-core": "^2.0.2",
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.1"
14
+ "@adeficior/data-modifier-core": "^2.0.2"
15
15
  },
16
16
  "typesVersions": { "*": {} },
17
17
  "types": "./dist/index.d.ts",