silgi 0.8.27 → 0.8.29
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/_chunks/index.mjs +1 -1
- package/dist/cli/prepare.mjs +24 -14
- package/dist/kit/index.d.mts +9 -1
- package/dist/kit/index.d.ts +9 -1
- package/dist/kit/index.mjs +8 -1
- package/dist/meta/index.d.mts +1 -1
- package/dist/meta/index.d.ts +1 -1
- package/package.json +1 -1
package/dist/_chunks/index.mjs
CHANGED
package/dist/cli/prepare.mjs
CHANGED
|
@@ -1060,10 +1060,17 @@ function createDependencyGraph(modules) {
|
|
|
1060
1060
|
return;
|
|
1061
1061
|
const beforeDeps = module.meta?.beforeDependencies || [];
|
|
1062
1062
|
const afterDeps = module.meta?.afterDependencies || [];
|
|
1063
|
-
const
|
|
1064
|
-
if (
|
|
1065
|
-
logger$1.error(`Module ${key} has
|
|
1063
|
+
const conflicts = beforeDeps.filter((dep) => afterDeps.includes(dep));
|
|
1064
|
+
if (conflicts.length > 0) {
|
|
1065
|
+
logger$1.error(`Module ${key} has conflicting dependencies: ${conflicts.join(", ")}`);
|
|
1066
|
+
return;
|
|
1066
1067
|
}
|
|
1068
|
+
logger$1.debug(`
|
|
1069
|
+
Module ${key} dependencies:`);
|
|
1070
|
+
if (beforeDeps.length)
|
|
1071
|
+
logger$1.debug(` Must run after: ${beforeDeps.join(", ")}`);
|
|
1072
|
+
if (afterDeps.length)
|
|
1073
|
+
logger$1.debug(` Must run before: ${afterDeps.join(", ")}`);
|
|
1067
1074
|
});
|
|
1068
1075
|
modules.forEach((module) => {
|
|
1069
1076
|
const key = module.meta?.configKey;
|
|
@@ -1071,26 +1078,29 @@ function createDependencyGraph(modules) {
|
|
|
1071
1078
|
return;
|
|
1072
1079
|
const beforeDeps = module.meta?.beforeDependencies || [];
|
|
1073
1080
|
const afterDeps = module.meta?.afterDependencies || [];
|
|
1074
|
-
logger$1.debug(`
|
|
1075
|
-
Analyzing dependencies for module ${key}:`);
|
|
1076
1081
|
beforeDeps.forEach((dep) => {
|
|
1077
|
-
if (graph.has(dep)) {
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
logger$1.debug(` ${key} must run after ${dep}`);
|
|
1082
|
+
if (!graph.has(dep)) {
|
|
1083
|
+
logger$1.warn(`Missing module: ${dep} required by ${key}`);
|
|
1084
|
+
return;
|
|
1081
1085
|
}
|
|
1086
|
+
graph.get(dep)?.add(key);
|
|
1087
|
+
inDegree.set(key, (inDegree.get(key) || 0) + 1);
|
|
1088
|
+
logger$1.debug(`${key} depends on ${dep}`);
|
|
1082
1089
|
});
|
|
1083
1090
|
afterDeps.forEach((dep) => {
|
|
1084
|
-
if (graph.has(
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
logger$1.debug(` ${key} must run before ${dep}`);
|
|
1091
|
+
if (!graph.has(key)) {
|
|
1092
|
+
logger$1.warn(`Missing module: ${key} required by ${dep}`);
|
|
1093
|
+
return;
|
|
1088
1094
|
}
|
|
1095
|
+
graph.get(key)?.add(dep);
|
|
1096
|
+
inDegree.set(dep, (inDegree.get(dep) || 0) + 1);
|
|
1097
|
+
logger$1.debug(`${dep} depends on ${key}`);
|
|
1089
1098
|
});
|
|
1090
1099
|
});
|
|
1091
1100
|
logger$1.debug("\nDependency Graph:");
|
|
1092
1101
|
for (const [module, deps] of graph.entries()) {
|
|
1093
|
-
|
|
1102
|
+
const depsStr = Array.from(deps).join(", ");
|
|
1103
|
+
logger$1.debug(`${module} -> [${depsStr}] (in-degree: ${inDegree.get(module)})`);
|
|
1094
1104
|
}
|
|
1095
1105
|
return { graph, inDegree };
|
|
1096
1106
|
}
|
package/dist/kit/index.d.mts
CHANGED
|
@@ -91,5 +91,13 @@ declare function toArray<T>(value: T | T[]): T[];
|
|
|
91
91
|
*/
|
|
92
92
|
declare function filterInPlace<T>(array: T[], predicate: (item: T, index: number, arr: T[]) => unknown): T[];
|
|
93
93
|
declare const MODE_RE: RegExp;
|
|
94
|
+
/**
|
|
95
|
+
* Check if a Silgi module is installed by name.
|
|
96
|
+
*
|
|
97
|
+
* This will check both the installed modules and the modules to be installed. Note
|
|
98
|
+
* that it cannot detect if a module is _going to be_ installed programmatically by another module.
|
|
99
|
+
*/
|
|
100
|
+
declare function hasSilgiModule(moduleKey: string, silgi?: SilgiCLI): boolean;
|
|
101
|
+
declare function hasInstalledModule(moduleKey: string, silgi?: SilgiCLI): boolean;
|
|
94
102
|
|
|
95
|
-
export { MODE_RE, addTemplate, createResolver, defineSilgiModule, defineSilgiPreset, filterInPlace, isDirectory, isH3, isNitro, isNuxt, normalizeTemplate, prettyPath, relativeWithDot, resolveAlias, resolvePath, resolveSilgiModule, resolveSilgiPath, toArray, tryResolveModule, useLogger, writeFile };
|
|
103
|
+
export { MODE_RE, addTemplate, createResolver, defineSilgiModule, defineSilgiPreset, filterInPlace, hasInstalledModule, hasSilgiModule, isDirectory, isH3, isNitro, isNuxt, normalizeTemplate, prettyPath, relativeWithDot, resolveAlias, resolvePath, resolveSilgiModule, resolveSilgiPath, toArray, tryResolveModule, useLogger, writeFile };
|
package/dist/kit/index.d.ts
CHANGED
|
@@ -91,5 +91,13 @@ declare function toArray<T>(value: T | T[]): T[];
|
|
|
91
91
|
*/
|
|
92
92
|
declare function filterInPlace<T>(array: T[], predicate: (item: T, index: number, arr: T[]) => unknown): T[];
|
|
93
93
|
declare const MODE_RE: RegExp;
|
|
94
|
+
/**
|
|
95
|
+
* Check if a Silgi module is installed by name.
|
|
96
|
+
*
|
|
97
|
+
* This will check both the installed modules and the modules to be installed. Note
|
|
98
|
+
* that it cannot detect if a module is _going to be_ installed programmatically by another module.
|
|
99
|
+
*/
|
|
100
|
+
declare function hasSilgiModule(moduleKey: string, silgi?: SilgiCLI): boolean;
|
|
101
|
+
declare function hasInstalledModule(moduleKey: string, silgi?: SilgiCLI): boolean;
|
|
94
102
|
|
|
95
|
-
export { MODE_RE, addTemplate, createResolver, defineSilgiModule, defineSilgiPreset, filterInPlace, isDirectory, isH3, isNitro, isNuxt, normalizeTemplate, prettyPath, relativeWithDot, resolveAlias, resolvePath, resolveSilgiModule, resolveSilgiPath, toArray, tryResolveModule, useLogger, writeFile };
|
|
103
|
+
export { MODE_RE, addTemplate, createResolver, defineSilgiModule, defineSilgiPreset, filterInPlace, hasInstalledModule, hasSilgiModule, isDirectory, isH3, isNitro, isNuxt, normalizeTemplate, prettyPath, relativeWithDot, resolveAlias, resolvePath, resolveSilgiModule, resolveSilgiPath, toArray, tryResolveModule, useLogger, writeFile };
|
package/dist/kit/index.mjs
CHANGED
|
@@ -255,6 +255,13 @@ function filterInPlace(array, predicate) {
|
|
|
255
255
|
return array;
|
|
256
256
|
}
|
|
257
257
|
const MODE_RE = /\.(server|client)(\.\w+)*$/;
|
|
258
|
+
function hasSilgiModule(moduleKey, silgi = useSilgiCLI()) {
|
|
259
|
+
return silgi.scanModules.some(({ meta }) => meta.configKey === moduleKey) || Object.keys(silgi.scanModules).includes(moduleKey);
|
|
260
|
+
}
|
|
261
|
+
function hasInstalledModule(moduleKey, silgi = useSilgiCLI()) {
|
|
262
|
+
const find = silgi.scanModules.find(({ meta }) => meta.configKey === moduleKey);
|
|
263
|
+
return find?.installed ?? false;
|
|
264
|
+
}
|
|
258
265
|
|
|
259
266
|
function addTemplate(_template) {
|
|
260
267
|
const silgi = useSilgiCLI();
|
|
@@ -298,4 +305,4 @@ function normalizeTemplate(template, buildDir) {
|
|
|
298
305
|
return template;
|
|
299
306
|
}
|
|
300
307
|
|
|
301
|
-
export { MODE_RE, addTemplate, createResolver, defineSilgiModule, defineSilgiPreset, filterInPlace, isDirectory$1 as isDirectory, isH3, isNitro, isNuxt, normalizeTemplate, prettyPath, relativeWithDot, resolveAlias, resolvePath, resolveSilgiModule, resolveSilgiPath, toArray, tryResolveModule, useLogger, writeFile };
|
|
308
|
+
export { MODE_RE, addTemplate, createResolver, defineSilgiModule, defineSilgiPreset, filterInPlace, hasInstalledModule, hasSilgiModule, isDirectory$1 as isDirectory, isH3, isNitro, isNuxt, normalizeTemplate, prettyPath, relativeWithDot, resolveAlias, resolvePath, resolveSilgiModule, resolveSilgiPath, toArray, tryResolveModule, useLogger, writeFile };
|
package/dist/meta/index.d.mts
CHANGED
package/dist/meta/index.d.ts
CHANGED