@xylabs/ts-scripts-yarn3 6.3.4 → 6.4.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/actions/build.mjs +39 -87
- package/dist/actions/build.mjs.map +1 -1
- package/dist/actions/clean-docs.mjs +8 -22
- package/dist/actions/clean-docs.mjs.map +1 -1
- package/dist/actions/clean-eslint.mjs +5 -11
- package/dist/actions/clean-eslint.mjs.map +1 -1
- package/dist/actions/clean-jest.mjs +16 -29
- package/dist/actions/clean-jest.mjs.map +1 -1
- package/dist/actions/clean.mjs +32 -63
- package/dist/actions/clean.mjs.map +1 -1
- package/dist/actions/compile-types.mjs +45 -68
- package/dist/actions/compile-types.mjs.map +1 -1
- package/dist/actions/compile.mjs +50 -76
- package/dist/actions/compile.mjs.map +1 -1
- package/dist/actions/copy-assets.mjs +23 -38
- package/dist/actions/copy-assets.mjs.map +1 -1
- package/dist/actions/cycle.mjs +28 -57
- package/dist/actions/cycle.mjs.map +1 -1
- package/dist/actions/dead.mjs +16 -31
- package/dist/actions/dead.mjs.map +1 -1
- package/dist/actions/deplint.mjs +191 -0
- package/dist/actions/deplint.mjs.map +1 -0
- package/dist/actions/deploy-major.mjs +20 -41
- package/dist/actions/deploy-major.mjs.map +1 -1
- package/dist/actions/deploy-minor.mjs +20 -41
- package/dist/actions/deploy-minor.mjs.map +1 -1
- package/dist/actions/deploy-next.mjs +20 -41
- package/dist/actions/deploy-next.mjs.map +1 -1
- package/dist/actions/deploy.mjs +20 -41
- package/dist/actions/deploy.mjs.map +1 -1
- package/dist/actions/dupdeps.mjs +26 -37
- package/dist/actions/dupdeps.mjs.map +1 -1
- package/dist/actions/fix.mjs +36 -50
- package/dist/actions/fix.mjs.map +1 -1
- package/dist/actions/gen-docs.mjs +25 -65
- package/dist/actions/gen-docs.mjs.map +1 -1
- package/dist/actions/gitignore-gen.mjs +28 -44
- package/dist/actions/gitignore-gen.mjs.map +1 -1
- package/dist/actions/gitlint-fix.mjs +5 -14
- package/dist/actions/gitlint-fix.mjs.map +1 -1
- package/dist/actions/gitlint.mjs +4 -7
- package/dist/actions/gitlint.mjs.map +1 -1
- package/dist/actions/index.mjs +860 -1237
- package/dist/actions/index.mjs.map +1 -1
- package/dist/actions/knip.mjs +16 -31
- package/dist/actions/knip.mjs.map +1 -1
- package/dist/actions/license.mjs +37 -51
- package/dist/actions/license.mjs.map +1 -1
- package/dist/actions/lint.mjs +33 -44
- package/dist/actions/lint.mjs.map +1 -1
- package/dist/actions/npmignore-gen.mjs +28 -44
- package/dist/actions/npmignore-gen.mjs.map +1 -1
- package/dist/actions/package/clean-outputs.mjs +6 -16
- package/dist/actions/package/clean-outputs.mjs.map +1 -1
- package/dist/actions/package/clean-typescript.mjs +6 -16
- package/dist/actions/package/clean-typescript.mjs.map +1 -1
- package/dist/actions/package/clean.mjs +12 -29
- package/dist/actions/package/clean.mjs.map +1 -1
- package/dist/actions/package/compile/buildEntries.mjs +7 -17
- package/dist/actions/package/compile/buildEntries.mjs.map +1 -1
- package/dist/actions/package/compile/compile.mjs +133 -169
- package/dist/actions/package/compile/compile.mjs.map +1 -1
- package/dist/actions/package/compile/compileTypes.mjs +43 -59
- package/dist/actions/package/compile/compileTypes.mjs.map +1 -1
- package/dist/actions/package/compile/copyTypeFiles.mjs +20 -23
- package/dist/actions/package/compile/copyTypeFiles.mjs.map +1 -1
- package/dist/actions/package/compile/deepMerge.mjs +0 -5
- package/dist/actions/package/compile/deepMerge.mjs.map +1 -1
- package/dist/actions/package/compile/getCompilerOptions.mjs +11 -10
- package/dist/actions/package/compile/getCompilerOptions.mjs.map +1 -1
- package/dist/actions/package/compile/index.mjs +133 -169
- package/dist/actions/package/compile/index.mjs.map +1 -1
- package/dist/actions/package/compile/inputs.mjs +3 -8
- package/dist/actions/package/compile/inputs.mjs.map +1 -1
- package/dist/actions/package/compile/packageCompileTsc.mjs +37 -52
- package/dist/actions/package/compile/packageCompileTsc.mjs.map +1 -1
- package/dist/actions/package/compile/packageCompileTscTypes.mjs +37 -52
- package/dist/actions/package/compile/packageCompileTscTypes.mjs.map +1 -1
- package/dist/actions/package/compile/packageCompileTsup.mjs +127 -163
- package/dist/actions/package/compile/packageCompileTsup.mjs.map +1 -1
- package/dist/actions/package/copy-assets.mjs +12 -21
- package/dist/actions/package/copy-assets.mjs.map +1 -1
- package/dist/actions/package/cycle.mjs +5 -14
- package/dist/actions/package/cycle.mjs.map +1 -1
- package/dist/actions/package/gen-docs.mjs +11 -12
- package/dist/actions/package/gen-docs.mjs.map +1 -1
- package/dist/actions/package/index.mjs +191 -271
- package/dist/actions/package/index.mjs.map +1 -1
- package/dist/actions/package/lint.mjs +16 -39
- package/dist/actions/package/lint.mjs.map +1 -1
- package/dist/actions/package/publint.mjs +4 -7
- package/dist/actions/package/publint.mjs.map +1 -1
- package/dist/actions/package/recompile.mjs +147 -197
- package/dist/actions/package/recompile.mjs.map +1 -1
- package/dist/actions/publint.mjs +37 -71
- package/dist/actions/publint.mjs.map +1 -1
- package/dist/actions/rebuild.mjs +17 -29
- package/dist/actions/rebuild.mjs.map +1 -1
- package/dist/actions/recompile.mjs +50 -67
- package/dist/actions/recompile.mjs.map +1 -1
- package/dist/actions/reinstall.mjs +25 -43
- package/dist/actions/reinstall.mjs.map +1 -1
- package/dist/actions/relint.mjs +40 -63
- package/dist/actions/relint.mjs.map +1 -1
- package/dist/actions/retest.mjs +17 -35
- package/dist/actions/retest.mjs.map +1 -1
- package/dist/actions/sonar.mjs +16 -32
- package/dist/actions/sonar.mjs.map +1 -1
- package/dist/actions/statics.mjs +27 -46
- package/dist/actions/statics.mjs.map +1 -1
- package/dist/actions/test.mjs +16 -30
- package/dist/actions/test.mjs.map +1 -1
- package/dist/actions/up.mjs +16 -27
- package/dist/actions/up.mjs.map +1 -1
- package/dist/actions/updo.mjs +18 -33
- package/dist/actions/updo.mjs.map +1 -1
- package/dist/actions/upplug.mjs +19 -53
- package/dist/actions/upplug.mjs.map +1 -1
- package/dist/actions/upyarn.mjs +16 -31
- package/dist/actions/upyarn.mjs.map +1 -1
- package/dist/actions/yarn3only.mjs +12 -23
- package/dist/actions/yarn3only.mjs.map +1 -1
- package/dist/bin/package/build-only.mjs +134 -172
- package/dist/bin/package/build-only.mjs.map +1 -1
- package/dist/bin/package/build.mjs +134 -172
- package/dist/bin/package/build.mjs.map +1 -1
- package/dist/bin/package/clean-outputs.mjs +6 -15
- package/dist/bin/package/clean-outputs.mjs.map +1 -1
- package/dist/bin/package/clean-typescript.mjs +6 -15
- package/dist/bin/package/clean-typescript.mjs.map +1 -1
- package/dist/bin/package/clean.mjs +12 -28
- package/dist/bin/package/clean.mjs.map +1 -1
- package/dist/bin/package/compile-only.mjs +134 -172
- package/dist/bin/package/compile-only.mjs.map +1 -1
- package/dist/bin/package/compile-tsup.mjs +128 -165
- package/dist/bin/package/compile-tsup.mjs.map +1 -1
- package/dist/bin/package/compile-types.mjs +44 -61
- package/dist/bin/package/compile-types.mjs.map +1 -1
- package/dist/bin/package/compile.mjs +134 -171
- package/dist/bin/package/compile.mjs.map +1 -1
- package/dist/bin/package/copy-assets-cjs.mjs +13 -23
- package/dist/bin/package/copy-assets-cjs.mjs.map +1 -1
- package/dist/bin/package/copy-assets-esm.mjs +13 -23
- package/dist/bin/package/copy-assets-esm.mjs.map +1 -1
- package/dist/bin/package/cycle.mjs +6 -16
- package/dist/bin/package/cycle.mjs.map +1 -1
- package/dist/bin/package/fix.mjs +16 -38
- package/dist/bin/package/fix.mjs.map +1 -1
- package/dist/bin/package/gen-docs.mjs +11 -11
- package/dist/bin/package/gen-docs.mjs.map +1 -1
- package/dist/bin/package/lint.mjs +16 -38
- package/dist/bin/package/lint.mjs.map +1 -1
- package/dist/bin/package/publint.mjs +4 -6
- package/dist/bin/package/publint.mjs.map +1 -1
- package/dist/bin/package/recompile.mjs +147 -196
- package/dist/bin/package/recompile.mjs.map +1 -1
- package/dist/bin/package/relint.mjs +16 -38
- package/dist/bin/package/relint.mjs.map +1 -1
- package/dist/bin/xy.mjs +1082 -1233
- package/dist/bin/xy.mjs.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.mjs +1334 -1579
- package/dist/index.mjs.map +1 -1
- package/dist/lib/checkResult.mjs +2 -5
- package/dist/lib/checkResult.mjs.map +1 -1
- package/dist/lib/createBuildConfig.mjs +9 -24
- package/dist/lib/createBuildConfig.mjs.map +1 -1
- package/dist/lib/defaultBuildConfig.mjs +2 -6
- package/dist/lib/defaultBuildConfig.mjs.map +1 -1
- package/dist/lib/deleteGlob.mjs +3 -9
- package/dist/lib/deleteGlob.mjs.map +1 -1
- package/dist/lib/dependencies/DuplicateDetector.mjs +12 -23
- package/dist/lib/dependencies/DuplicateDetector.mjs.map +1 -1
- package/dist/lib/dependencies/detectDuplicateDependencies.mjs +22 -33
- package/dist/lib/dependencies/detectDuplicateDependencies.mjs.map +1 -1
- package/dist/lib/dependencies/index.mjs +22 -33
- package/dist/lib/dependencies/index.mjs.map +1 -1
- package/dist/lib/file/ReadFileSyncOptions.mjs +1 -3
- package/dist/lib/file/ReadFileSyncOptions.mjs.map +1 -1
- package/dist/lib/file/constants.mjs.map +1 -1
- package/dist/lib/file/fileLines.mjs +12 -13
- package/dist/lib/file/fileLines.mjs.map +1 -1
- package/dist/lib/file/index.mjs +14 -15
- package/dist/lib/file/index.mjs.map +1 -1
- package/dist/lib/file/tryReadFileSync.mjs +3 -8
- package/dist/lib/file/tryReadFileSync.mjs.map +1 -1
- package/dist/lib/generateIgnoreFiles.mjs +27 -43
- package/dist/lib/generateIgnoreFiles.mjs.map +1 -1
- package/dist/lib/index.mjs +100 -154
- package/dist/lib/index.mjs.map +1 -1
- package/dist/lib/jsonFormatters.mjs +2 -5
- package/dist/lib/jsonFormatters.mjs.map +1 -1
- package/dist/lib/loadConfig.mjs +4 -8
- package/dist/lib/loadConfig.mjs.map +1 -1
- package/dist/lib/parsedPackageJSON.mjs +2 -5
- package/dist/lib/parsedPackageJSON.mjs.map +1 -1
- package/dist/lib/processEx.mjs +6 -9
- package/dist/lib/processEx.mjs.map +1 -1
- package/dist/lib/runSteps.mjs +13 -19
- package/dist/lib/runSteps.mjs.map +1 -1
- package/dist/lib/runStepsAsync.mjs +22 -22
- package/dist/lib/runStepsAsync.mjs.map +1 -1
- package/dist/lib/runXy.mjs +19 -31
- package/dist/lib/runXy.mjs.map +1 -1
- package/dist/lib/runXyWithWarning.mjs +2 -5
- package/dist/lib/runXyWithWarning.mjs.map +1 -1
- package/dist/lib/safeExit.mjs +10 -13
- package/dist/lib/safeExit.mjs.map +1 -1
- package/dist/lib/string/empty.mjs +2 -5
- package/dist/lib/string/empty.mjs.map +1 -1
- package/dist/lib/string/index.mjs +3 -9
- package/dist/lib/string/index.mjs.map +1 -1
- package/dist/lib/string/union.mjs +1 -7
- package/dist/lib/string/union.mjs.map +1 -1
- package/dist/lib/withErrnoException.mjs +4 -7
- package/dist/lib/withErrnoException.mjs.map +1 -1
- package/dist/lib/withError.mjs +2 -5
- package/dist/lib/withError.mjs.map +1 -1
- package/dist/lib/yarn/index.mjs +11 -30
- package/dist/lib/yarn/index.mjs.map +1 -1
- package/dist/lib/yarn/isYarnVersionOrGreater.mjs +4 -15
- package/dist/lib/yarn/isYarnVersionOrGreater.mjs.map +1 -1
- package/dist/lib/yarn/workspace/index.mjs +5 -16
- package/dist/lib/yarn/workspace/index.mjs.map +1 -1
- package/dist/lib/yarn/workspace/yarnWorkspace.mjs +5 -16
- package/dist/lib/yarn/workspace/yarnWorkspace.mjs.map +1 -1
- package/dist/lib/yarn/workspace/yarnWorkspaces.mjs +3 -14
- package/dist/lib/yarn/workspace/yarnWorkspaces.mjs.map +1 -1
- package/dist/lib/yarn/yarnInitCwd.mjs +2 -5
- package/dist/lib/yarn/yarnInitCwd.mjs.map +1 -1
- package/dist/loadPackageConfig.mjs +3 -8
- package/dist/loadPackageConfig.mjs.map +1 -1
- package/dist/xy/index.mjs +1082 -1234
- package/dist/xy/index.mjs.map +1 -1
- package/dist/xy/param.mjs +3 -8
- package/dist/xy/param.mjs.map +1 -1
- package/dist/xy/xy.mjs +1082 -1234
- package/dist/xy/xy.mjs.map +1 -1
- package/dist/xy/xyBuildCommands.mjs +276 -382
- package/dist/xy/xyBuildCommands.mjs.map +1 -1
- package/dist/xy/xyCommonCommands.mjs +251 -335
- package/dist/xy/xyCommonCommands.mjs.map +1 -1
- package/dist/xy/xyDeployCommands.mjs +84 -130
- package/dist/xy/xyDeployCommands.mjs.map +1 -1
- package/dist/xy/xyInstallCommands.mjs +145 -193
- package/dist/xy/xyInstallCommands.mjs.map +1 -1
- package/dist/xy/xyLintCommands.mjs +409 -288
- package/dist/xy/xyLintCommands.mjs.map +1 -1
- package/dist/xy/xyParseOptions.mjs +4 -13
- package/dist/xy/xyParseOptions.mjs.map +1 -1
- package/package.json +5 -24
package/dist/actions/compile.mjs
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
1
|
// src/actions/compile.ts
|
|
5
2
|
import chalk4 from "chalk";
|
|
6
3
|
|
|
7
4
|
// src/lib/checkResult.ts
|
|
8
5
|
import chalk from "chalk";
|
|
9
|
-
var checkResult =
|
|
6
|
+
var checkResult = (name, result, level = "error", exitOnFail = false) => {
|
|
10
7
|
if (result) {
|
|
11
8
|
const exiting = exitOnFail ? "[Exiting Process]" : "[Continuing]";
|
|
12
9
|
const chalkFunc = level === "error" ? chalk.red : chalk.yellow;
|
|
@@ -15,23 +12,23 @@ var checkResult = /* @__PURE__ */ __name((name, result, level = "error", exitOnF
|
|
|
15
12
|
process.exit(result);
|
|
16
13
|
}
|
|
17
14
|
}
|
|
18
|
-
}
|
|
15
|
+
};
|
|
19
16
|
|
|
20
17
|
// src/lib/processEx.ts
|
|
21
18
|
import chalk2 from "chalk";
|
|
22
19
|
|
|
23
20
|
// src/lib/withError.ts
|
|
24
|
-
var withError =
|
|
21
|
+
var withError = (ex, closure, predicate = (ex2) => !!ex2.name && !!ex2.message) => {
|
|
25
22
|
return predicate(ex) ? closure(ex) : void 0;
|
|
26
|
-
}
|
|
23
|
+
};
|
|
27
24
|
|
|
28
25
|
// src/lib/withErrnoException.ts
|
|
29
|
-
var withErrnoException =
|
|
26
|
+
var withErrnoException = (ex, closure) => {
|
|
30
27
|
return withError(ex, closure, (ex2) => ex2.errno !== void 0);
|
|
31
|
-
}
|
|
28
|
+
};
|
|
32
29
|
|
|
33
30
|
// src/lib/processEx.ts
|
|
34
|
-
var processEx =
|
|
31
|
+
var processEx = (ex) => {
|
|
35
32
|
const error = typeof ex === "string" ? new Error(ex) : ex;
|
|
36
33
|
const exitCode = withErrnoException(error, (error2) => {
|
|
37
34
|
if (error2.code === "ENOENT") {
|
|
@@ -48,10 +45,10 @@ var processEx = /* @__PURE__ */ __name((ex) => {
|
|
|
48
45
|
return -1;
|
|
49
46
|
})();
|
|
50
47
|
process.exit(process.exitCode ?? exitCode);
|
|
51
|
-
}
|
|
48
|
+
};
|
|
52
49
|
|
|
53
50
|
// src/lib/safeExit.ts
|
|
54
|
-
var safeExit =
|
|
51
|
+
var safeExit = (func, exitOnFail = true) => {
|
|
55
52
|
try {
|
|
56
53
|
const result = func();
|
|
57
54
|
if (result && exitOnFail) {
|
|
@@ -61,13 +58,13 @@ var safeExit = /* @__PURE__ */ __name((func, exitOnFail = true) => {
|
|
|
61
58
|
} catch (ex) {
|
|
62
59
|
return processEx(ex);
|
|
63
60
|
}
|
|
64
|
-
}
|
|
61
|
+
};
|
|
65
62
|
|
|
66
63
|
// src/lib/runSteps.ts
|
|
67
64
|
import { spawnSync } from "node:child_process";
|
|
68
65
|
import { existsSync } from "node:fs";
|
|
69
66
|
import chalk3 from "chalk";
|
|
70
|
-
var runSteps =
|
|
67
|
+
var runSteps = (name, steps, exitOnFail = true, messages) => {
|
|
71
68
|
return safeExit(() => {
|
|
72
69
|
const pkgName = process.env.npm_package_name;
|
|
73
70
|
console.log(chalk3.green(`${name} [${pkgName}]`));
|
|
@@ -83,10 +80,7 @@ var runSteps = /* @__PURE__ */ __name((name, steps, exitOnFail = true, messages)
|
|
|
83
80
|
const status = spawnSync(command, Array.isArray(args) ? args : args.split(" "), {
|
|
84
81
|
...config,
|
|
85
82
|
encoding: "utf8",
|
|
86
|
-
env: {
|
|
87
|
-
FORCE_COLOR: "3",
|
|
88
|
-
...process.env
|
|
89
|
-
},
|
|
83
|
+
env: { FORCE_COLOR: "3", ...process.env },
|
|
90
84
|
shell: true,
|
|
91
85
|
stdio: "inherit"
|
|
92
86
|
}).status ?? 0;
|
|
@@ -95,10 +89,17 @@ var runSteps = /* @__PURE__ */ __name((name, steps, exitOnFail = true, messages)
|
|
|
95
89
|
}
|
|
96
90
|
return totalStatus;
|
|
97
91
|
}, !!exitOnFail);
|
|
98
|
-
}
|
|
92
|
+
};
|
|
99
93
|
|
|
100
94
|
// src/actions/compile.ts
|
|
101
|
-
var compile =
|
|
95
|
+
var compile = ({
|
|
96
|
+
verbose,
|
|
97
|
+
target,
|
|
98
|
+
pkg,
|
|
99
|
+
incremental,
|
|
100
|
+
publint,
|
|
101
|
+
jobs
|
|
102
|
+
}) => {
|
|
102
103
|
return pkg ? compilePackage({
|
|
103
104
|
pkg,
|
|
104
105
|
publint,
|
|
@@ -111,70 +112,43 @@ var compile = /* @__PURE__ */ __name(({ verbose, target, pkg, incremental, publi
|
|
|
111
112
|
verbose,
|
|
112
113
|
jobs
|
|
113
114
|
});
|
|
114
|
-
}
|
|
115
|
-
var compilePackage =
|
|
116
|
-
const targetOptions = target ? [
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
...targetOptions
|
|
129
|
-
]
|
|
130
|
-
]
|
|
131
|
-
]);
|
|
132
|
-
}, "compilePackage");
|
|
133
|
-
var compileAll = /* @__PURE__ */ __name(({ jobs, verbose, target, incremental }) => {
|
|
115
|
+
};
|
|
116
|
+
var compilePackage = ({ target, pkg }) => {
|
|
117
|
+
const targetOptions = target ? ["-t", target] : [];
|
|
118
|
+
return runSteps(
|
|
119
|
+
`Compile [${pkg}]`,
|
|
120
|
+
[["yarn", ["workspace", pkg, "run", "package-compile", ...targetOptions]]]
|
|
121
|
+
);
|
|
122
|
+
};
|
|
123
|
+
var compileAll = ({
|
|
124
|
+
jobs,
|
|
125
|
+
verbose,
|
|
126
|
+
target,
|
|
127
|
+
incremental
|
|
128
|
+
}) => {
|
|
134
129
|
const start = Date.now();
|
|
135
|
-
const verboseOptions = verbose ? [
|
|
136
|
-
|
|
137
|
-
] : [
|
|
138
|
-
|
|
139
|
-
];
|
|
140
|
-
const targetOptions = target ? [
|
|
141
|
-
"-t",
|
|
142
|
-
target
|
|
143
|
-
] : [];
|
|
144
|
-
const incrementalOptions = incremental ? [
|
|
145
|
-
"--since",
|
|
146
|
-
"-Apt",
|
|
147
|
-
"--topological-dev"
|
|
148
|
-
] : [
|
|
149
|
-
"--parallel",
|
|
150
|
-
"-Apt",
|
|
151
|
-
"--topological-dev"
|
|
152
|
-
];
|
|
153
|
-
const jobsOptions = jobs ? [
|
|
154
|
-
"-j",
|
|
155
|
-
`${jobs}`
|
|
156
|
-
] : [];
|
|
130
|
+
const verboseOptions = verbose ? ["--verbose"] : ["--no-verbose"];
|
|
131
|
+
const targetOptions = target ? ["-t", target] : [];
|
|
132
|
+
const incrementalOptions = incremental ? ["--since", "-Apt", "--topological-dev"] : ["--parallel", "-Apt", "--topological-dev"];
|
|
133
|
+
const jobsOptions = jobs ? ["-j", `${jobs}`] : [];
|
|
157
134
|
if (jobs) {
|
|
158
135
|
console.log(chalk4.blue(`Jobs set to [${jobs}]`));
|
|
159
136
|
}
|
|
160
137
|
const result = runSteps(`Compile${incremental ? "-Incremental" : ""} [All]`, [
|
|
161
|
-
[
|
|
162
|
-
"
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
...targetOptions
|
|
172
|
-
]
|
|
173
|
-
]
|
|
138
|
+
["yarn", [
|
|
139
|
+
"workspaces",
|
|
140
|
+
"foreach",
|
|
141
|
+
...incrementalOptions,
|
|
142
|
+
...jobsOptions,
|
|
143
|
+
...verboseOptions,
|
|
144
|
+
"run",
|
|
145
|
+
"package-compile",
|
|
146
|
+
...targetOptions
|
|
147
|
+
]]
|
|
174
148
|
]);
|
|
175
149
|
console.log(`${chalk4.gray("Compiled in")} [${chalk4.magenta(((Date.now() - start) / 1e3).toFixed(2))}] ${chalk4.gray("seconds")}`);
|
|
176
150
|
return result;
|
|
177
|
-
}
|
|
151
|
+
};
|
|
178
152
|
export {
|
|
179
153
|
compile,
|
|
180
154
|
compileAll,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/actions/compile.ts","../../src/lib/checkResult.ts","../../src/lib/processEx.ts","../../src/lib/withError.ts","../../src/lib/withErrnoException.ts","../../src/lib/safeExit.ts","../../src/lib/runSteps.ts"],"sourcesContent":["import chalk from 'chalk'\n\nimport { runSteps } from '../lib/index.ts'\n\nexport interface CompileParams {\n incremental?: boolean\n jobs?: number\n pkg?: string\n publint?: boolean\n target?: 'esm' | 'cjs'\n verbose?: boolean\n}\n\ninterface CompilePackageParams {\n pkg: string\n publint?: boolean\n target?: 'esm' | 'cjs'\n verbose?: boolean\n}\n\nexport const compile = ({\n verbose, target, pkg, incremental, publint, jobs,\n}: CompileParams) => {\n return pkg\n ? compilePackage({\n pkg, publint, target, verbose,\n })\n : compileAll({\n incremental, publint, target, verbose, jobs,\n })\n}\n\nexport const compilePackage = ({ target, pkg }: CompilePackageParams) => {\n const targetOptions = target ? ['-t', target] : []\n\n return runSteps(\n `Compile [${pkg}]`,\n [['yarn', ['workspace', pkg, 'run', 'package-compile', ...targetOptions]]],\n )\n}\n\nexport const compileAll = ({\n jobs, verbose, target, incremental,\n}: CompileParams) => {\n const start = Date.now()\n const verboseOptions = verbose ? ['--verbose'] : ['--no-verbose']\n const targetOptions = target ? ['-t', target] : []\n const incrementalOptions = incremental ? ['--since', '-Apt', '--topological-dev'] : ['--parallel', '-Apt', '--topological-dev']\n const jobsOptions = jobs ? ['-j', `${jobs}`] : []\n if (jobs) {\n console.log(chalk.blue(`Jobs set to [${jobs}]`))\n }\n\n const result = runSteps(`Compile${incremental ? '-Incremental' : ''} [All]`, [\n ['yarn', ['workspaces',\n 'foreach',\n ...incrementalOptions,\n ...jobsOptions,\n ...verboseOptions,\n 'run',\n 'package-compile',\n ...targetOptions,\n ]],\n ])\n console.log(`${chalk.gray('Compiled in')} [${chalk.magenta(((Date.now() - start) / 1000).toFixed(2))}] ${chalk.gray('seconds')}`)\n return result\n}\n","import chalk from 'chalk'\n\nexport const checkResult = (name: string, result: number, level: 'error' | 'warn' = 'error', exitOnFail = false) => {\n if (result) {\n const exiting = exitOnFail ? '[Exiting Process]' : '[Continuing]'\n const chalkFunc = level === 'error' ? chalk.red : chalk.yellow\n console[level](chalkFunc(`${name} had ${result} failures ${exiting}`))\n if (exitOnFail) {\n process.exit(result)\n }\n }\n}\n","import chalk from 'chalk'\n\nimport { withErrnoException } from './withErrnoException.ts'\nimport { withError } from './withError.ts'\n\nexport const processEx = (ex: unknown) => {\n const error = typeof ex === 'string' ? new Error(ex) : ex\n const exitCode\n = withErrnoException(error, (error) => {\n if (error.code === 'ENOENT') {\n console.error(chalk.red(`'${error.path}' not found.`))\n } else {\n console.error(chalk.red(`Errno: ${error.code}`))\n }\n return error.errno ?? -1\n })\n ?? withError(error, (error) => {\n console.error(chalk.red(`${error.name}: ${error.message}`))\n return -1\n })\n ?? (() => {\n console.error(chalk.red(`Unexpected Error: ${JSON.stringify(ex, null, 2)}`))\n return -1\n })()\n // This allows us to use a previously set exit code\n process.exit(process.exitCode ?? exitCode)\n}\n","export const withError = <T extends Error = Error>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ex: any,\n closure: (error: T) => number,\n predicate = (ex: T) => (!!ex.name && !!ex.message),\n) => {\n return predicate(ex as T) ? closure(ex as T) : undefined\n}\n","import { withError } from './withError.ts'\n\nexport const withErrnoException = <T extends NodeJS.ErrnoException = NodeJS.ErrnoException>(\n ex: unknown, closure: (error: T) => number,\n) => {\n return withError<T>(ex, closure, (ex: unknown) => (ex as NodeJS.ErrnoException).errno !== undefined)\n}\n","/** Catch child process a crash and returns the code */\n\nimport { processEx } from './processEx.ts'\n\nconst safeExit = (func: () => number, exitOnFail = true): number => {\n try {\n const result = func()\n if (result && exitOnFail) {\n process.exit(result)\n }\n return result\n } catch (ex) {\n return processEx(ex)\n }\n}\n\nconst safeExitAsync = async (func: () => Promise<number>, exitOnFail = true): Promise<number> => {\n try {\n const result = await func()\n if (result && exitOnFail) {\n process.exit(result)\n }\n return result\n } catch (ex) {\n return processEx(ex)\n }\n}\n\nexport { safeExit, safeExitAsync }\n","import type { SpawnSyncOptionsWithBufferEncoding } from 'node:child_process'\nimport { spawnSync } from 'node:child_process'\nimport { existsSync } from 'node:fs'\n\nimport chalk from 'chalk'\n\nimport { checkResult } from './checkResult.ts'\nimport { safeExit } from './safeExit.ts'\n\nexport type ScriptStep =\n | [/* command */ 'yarn' | 'node' | 'ts-node-script' | 'tsc' | 'jest', /* arg */ string | string[]]\n | [/* command */ string, /* arg */ string | string[], /* config */ SpawnSyncOptionsWithBufferEncoding]\n\nexport const runSteps = (name: string, steps: ScriptStep[], exitOnFail = true, messages?: string[]): number => {\n return safeExit(() => {\n const pkgName = process.env.npm_package_name\n console.log(chalk.green(`${name} [${pkgName}]`))\n let totalStatus = 0\n for (const [i, [command, args, config]] of steps.entries()) {\n if (messages?.[i]) {\n console.log(chalk.gray(messages?.[i]))\n }\n const argList = Array.isArray(args) ? args : args.split(' ')\n if (command === 'node' && !existsSync(argList[0])) {\n throw new Error(`File not found [${argList[0]}]`)\n }\n const status\n = spawnSync(command, Array.isArray(args) ? args : args.split(' '), {\n ...config,\n encoding: 'utf8',\n env: { FORCE_COLOR: '3', ...process.env },\n shell: true,\n stdio: 'inherit',\n }).status ?? 0\n checkResult(name, status, 'error', exitOnFail)\n totalStatus += status ?? 0\n }\n return totalStatus\n }, !!exitOnFail)\n}\n"],"mappings":"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","names":["chalk","chalk","checkResult","name","result","level","exitOnFail","exiting","chalkFunc","chalk","red","yellow","console","process","exit","chalk","withError","ex","closure","predicate","name","message","undefined","withErrnoException","ex","closure","withError","errno","undefined","processEx","ex","error","Error","exitCode","withErrnoException","code","console","chalk","red","path","errno","withError","name","message","JSON","stringify","process","exit","safeExit","func","exitOnFail","result","process","exit","ex","processEx","spawnSync","existsSync","chalk","runSteps","name","steps","exitOnFail","messages","safeExit","pkgName","process","env","npm_package_name","console","log","chalk","green","totalStatus","i","command","args","config","entries","gray","argList","Array","isArray","split","existsSync","Error","status","spawnSync","encoding","FORCE_COLOR","shell","stdio","checkResult","compile","verbose","target","pkg","incremental","publint","jobs","compilePackage","compileAll","targetOptions","runSteps","start","Date","now","verboseOptions","incrementalOptions","jobsOptions","console","log","chalk","blue","result","gray","magenta","toFixed"]}
|
|
1
|
+
{"version":3,"sources":["../../src/actions/compile.ts","../../src/lib/checkResult.ts","../../src/lib/processEx.ts","../../src/lib/withError.ts","../../src/lib/withErrnoException.ts","../../src/lib/safeExit.ts","../../src/lib/runSteps.ts"],"sourcesContent":["import chalk from 'chalk'\n\nimport { runSteps } from '../lib/index.ts'\n\nexport interface CompileParams {\n incremental?: boolean\n jobs?: number\n pkg?: string\n publint?: boolean\n target?: 'esm' | 'cjs'\n verbose?: boolean\n}\n\ninterface CompilePackageParams {\n pkg: string\n publint?: boolean\n target?: 'esm' | 'cjs'\n verbose?: boolean\n}\n\nexport const compile = ({\n verbose, target, pkg, incremental, publint, jobs,\n}: CompileParams) => {\n return pkg\n ? compilePackage({\n pkg, publint, target, verbose,\n })\n : compileAll({\n incremental, publint, target, verbose, jobs,\n })\n}\n\nexport const compilePackage = ({ target, pkg }: CompilePackageParams) => {\n const targetOptions = target ? ['-t', target] : []\n\n return runSteps(\n `Compile [${pkg}]`,\n [['yarn', ['workspace', pkg, 'run', 'package-compile', ...targetOptions]]],\n )\n}\n\nexport const compileAll = ({\n jobs, verbose, target, incremental,\n}: CompileParams) => {\n const start = Date.now()\n const verboseOptions = verbose ? ['--verbose'] : ['--no-verbose']\n const targetOptions = target ? ['-t', target] : []\n const incrementalOptions = incremental ? ['--since', '-Apt', '--topological-dev'] : ['--parallel', '-Apt', '--topological-dev']\n const jobsOptions = jobs ? ['-j', `${jobs}`] : []\n if (jobs) {\n console.log(chalk.blue(`Jobs set to [${jobs}]`))\n }\n\n const result = runSteps(`Compile${incremental ? '-Incremental' : ''} [All]`, [\n ['yarn', ['workspaces',\n 'foreach',\n ...incrementalOptions,\n ...jobsOptions,\n ...verboseOptions,\n 'run',\n 'package-compile',\n ...targetOptions,\n ]],\n ])\n console.log(`${chalk.gray('Compiled in')} [${chalk.magenta(((Date.now() - start) / 1000).toFixed(2))}] ${chalk.gray('seconds')}`)\n return result\n}\n","import chalk from 'chalk'\n\nexport const checkResult = (name: string, result: number, level: 'error' | 'warn' = 'error', exitOnFail = false) => {\n if (result) {\n const exiting = exitOnFail ? '[Exiting Process]' : '[Continuing]'\n const chalkFunc = level === 'error' ? chalk.red : chalk.yellow\n console[level](chalkFunc(`${name} had ${result} failures ${exiting}`))\n if (exitOnFail) {\n process.exit(result)\n }\n }\n}\n","import chalk from 'chalk'\n\nimport { withErrnoException } from './withErrnoException.ts'\nimport { withError } from './withError.ts'\n\nexport const processEx = (ex: unknown) => {\n const error = typeof ex === 'string' ? new Error(ex) : ex\n const exitCode\n = withErrnoException(error, (error) => {\n if (error.code === 'ENOENT') {\n console.error(chalk.red(`'${error.path}' not found.`))\n } else {\n console.error(chalk.red(`Errno: ${error.code}`))\n }\n return error.errno ?? -1\n })\n ?? withError(error, (error) => {\n console.error(chalk.red(`${error.name}: ${error.message}`))\n return -1\n })\n ?? (() => {\n console.error(chalk.red(`Unexpected Error: ${JSON.stringify(ex, null, 2)}`))\n return -1\n })()\n // This allows us to use a previously set exit code\n process.exit(process.exitCode ?? exitCode)\n}\n","export const withError = <T extends Error = Error>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ex: any,\n closure: (error: T) => number,\n predicate = (ex: T) => (!!ex.name && !!ex.message),\n) => {\n return predicate(ex as T) ? closure(ex as T) : undefined\n}\n","import { withError } from './withError.ts'\n\nexport const withErrnoException = <T extends NodeJS.ErrnoException = NodeJS.ErrnoException>(\n ex: unknown, closure: (error: T) => number,\n) => {\n return withError<T>(ex, closure, (ex: unknown) => (ex as NodeJS.ErrnoException).errno !== undefined)\n}\n","/** Catch child process a crash and returns the code */\n\nimport { processEx } from './processEx.ts'\n\nconst safeExit = (func: () => number, exitOnFail = true): number => {\n try {\n const result = func()\n if (result && exitOnFail) {\n process.exit(result)\n }\n return result\n } catch (ex) {\n return processEx(ex)\n }\n}\n\nconst safeExitAsync = async (func: () => Promise<number>, exitOnFail = true): Promise<number> => {\n try {\n const result = await func()\n if (result && exitOnFail) {\n process.exit(result)\n }\n return result\n } catch (ex) {\n return processEx(ex)\n }\n}\n\nexport { safeExit, safeExitAsync }\n","import type { SpawnSyncOptionsWithBufferEncoding } from 'node:child_process'\nimport { spawnSync } from 'node:child_process'\nimport { existsSync } from 'node:fs'\n\nimport chalk from 'chalk'\n\nimport { checkResult } from './checkResult.ts'\nimport { safeExit } from './safeExit.ts'\n\nexport type ScriptStep =\n | [/* command */ 'yarn' | 'node' | 'ts-node-script' | 'tsc' | 'jest', /* arg */ string | string[]]\n | [/* command */ string, /* arg */ string | string[], /* config */ SpawnSyncOptionsWithBufferEncoding]\n\nexport const runSteps = (name: string, steps: ScriptStep[], exitOnFail = true, messages?: string[]): number => {\n return safeExit(() => {\n const pkgName = process.env.npm_package_name\n console.log(chalk.green(`${name} [${pkgName}]`))\n let totalStatus = 0\n for (const [i, [command, args, config]] of steps.entries()) {\n if (messages?.[i]) {\n console.log(chalk.gray(messages?.[i]))\n }\n const argList = Array.isArray(args) ? args : args.split(' ')\n if (command === 'node' && !existsSync(argList[0])) {\n throw new Error(`File not found [${argList[0]}]`)\n }\n const status\n = spawnSync(command, Array.isArray(args) ? args : args.split(' '), {\n ...config,\n encoding: 'utf8',\n env: { FORCE_COLOR: '3', ...process.env },\n shell: true,\n stdio: 'inherit',\n }).status ?? 0\n checkResult(name, status, 'error', exitOnFail)\n totalStatus += status ?? 0\n }\n return totalStatus\n }, !!exitOnFail)\n}\n"],"mappings":"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","names":["chalk","chalk","ex","ex","error","chalk","chalk","chalk","chalk"]}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
1
|
// src/actions/copy-assets.ts
|
|
5
2
|
import path from "node:path/posix";
|
|
6
3
|
import chalk from "chalk";
|
|
@@ -8,41 +5,27 @@ import cpy from "cpy";
|
|
|
8
5
|
|
|
9
6
|
// src/lib/yarn/workspace/yarnWorkspaces.ts
|
|
10
7
|
import { spawnSync } from "node:child_process";
|
|
11
|
-
var yarnWorkspaces =
|
|
12
|
-
const result = spawnSync("yarn", [
|
|
13
|
-
"workspaces",
|
|
14
|
-
"list",
|
|
15
|
-
"--json",
|
|
16
|
-
"--recursive"
|
|
17
|
-
], {
|
|
18
|
-
encoding: "utf8",
|
|
19
|
-
shell: true
|
|
20
|
-
});
|
|
8
|
+
var yarnWorkspaces = () => {
|
|
9
|
+
const result = spawnSync("yarn", ["workspaces", "list", "--json", "--recursive"], { encoding: "utf8", shell: true });
|
|
21
10
|
if (result.error) {
|
|
22
11
|
throw result.error;
|
|
23
12
|
}
|
|
24
13
|
return result.stdout.toString().split("\n").slice(0, -1).map((item) => {
|
|
25
14
|
return JSON.parse(item);
|
|
26
15
|
});
|
|
27
|
-
}
|
|
16
|
+
};
|
|
28
17
|
|
|
29
18
|
// src/actions/copy-assets.ts
|
|
30
|
-
var copyPackageTargetAssets =
|
|
19
|
+
var copyPackageTargetAssets = async (target, name, location) => {
|
|
31
20
|
try {
|
|
32
|
-
const values = await cpy(
|
|
33
|
-
"**/*.jpg",
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
"**/*.gif",
|
|
41
|
-
"**/*.css"
|
|
42
|
-
], `../dist/${target}`, {
|
|
43
|
-
cwd: path.join(process.cwd(), location, "src"),
|
|
44
|
-
flat: false
|
|
45
|
-
});
|
|
21
|
+
const values = await cpy(
|
|
22
|
+
["**/*.jpg", "**/*.png", "**/*.gif", "**/*.svg", "**/*.webp", "**/*.sass", "**/*.scss", "**/*.gif", "**/*.css"],
|
|
23
|
+
`../dist/${target}`,
|
|
24
|
+
{
|
|
25
|
+
cwd: path.join(process.cwd(), location, "src"),
|
|
26
|
+
flat: false
|
|
27
|
+
}
|
|
28
|
+
);
|
|
46
29
|
for (const value of values) {
|
|
47
30
|
console.log(`${value.split("/").pop()} => ./dist/${target}`);
|
|
48
31
|
}
|
|
@@ -51,8 +34,8 @@ var copyPackageTargetAssets = /* @__PURE__ */ __name(async (target, name, locati
|
|
|
51
34
|
console.log(`Copy Failed: ${name}: ${reason}`);
|
|
52
35
|
return 1;
|
|
53
36
|
}
|
|
54
|
-
}
|
|
55
|
-
var copyTargetAssets =
|
|
37
|
+
};
|
|
38
|
+
var copyTargetAssets = async (target, pkg) => {
|
|
56
39
|
const workspaces = yarnWorkspaces();
|
|
57
40
|
console.log(chalk.green(`Copying Assets [${target.toUpperCase()}]`));
|
|
58
41
|
const workspaceList = workspaces.filter(({ name }) => {
|
|
@@ -61,15 +44,17 @@ var copyTargetAssets = /* @__PURE__ */ __name(async (target, pkg) => {
|
|
|
61
44
|
if (workspaceList.length === 0) {
|
|
62
45
|
console.error(`Package not found [${pkg}]`);
|
|
63
46
|
} else {
|
|
64
|
-
const results = await Promise.all(
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
47
|
+
const results = await Promise.all(
|
|
48
|
+
workspaceList.map(async (workspace) => {
|
|
49
|
+
const { location, name } = workspace;
|
|
50
|
+
return await copyPackageTargetAssets(target, name, location);
|
|
51
|
+
})
|
|
52
|
+
);
|
|
68
53
|
return results.reduce((prev, result) => prev || result, 0);
|
|
69
54
|
}
|
|
70
55
|
return 0;
|
|
71
|
-
}
|
|
72
|
-
var copyAssets =
|
|
56
|
+
};
|
|
57
|
+
var copyAssets = async ({ target, pkg }) => {
|
|
73
58
|
switch (target) {
|
|
74
59
|
case "esm": {
|
|
75
60
|
return await copyTargetAssets("esm", pkg);
|
|
@@ -81,7 +66,7 @@ var copyAssets = /* @__PURE__ */ __name(async ({ target, pkg }) => {
|
|
|
81
66
|
return await copyTargetAssets("esm", pkg) || await copyTargetAssets("cjs", pkg);
|
|
82
67
|
}
|
|
83
68
|
}
|
|
84
|
-
}
|
|
69
|
+
};
|
|
85
70
|
export {
|
|
86
71
|
copyAssets
|
|
87
72
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/actions/copy-assets.ts","../../src/lib/yarn/workspace/yarnWorkspaces.ts"],"sourcesContent":["import path from 'node:path/posix'\n\nimport chalk from 'chalk'\nimport cpy from 'cpy'\n\nimport { yarnWorkspaces } from '../lib/index.ts'\n\nexport interface CopyAssetsParams {\n pkg?: string\n target?: 'esm' | 'cjs'\n}\n\nconst copyPackageTargetAssets = async (target: 'esm' | 'cjs', name: string, location: string) => {\n try {\n const values = await cpy(\n ['**/*.jpg', '**/*.png', '**/*.gif', '**/*.svg', '**/*.webp', '**/*.sass', '**/*.scss', '**/*.gif', '**/*.css'],\n `../dist/${target}`,\n {\n cwd: path.join(process.cwd(), location, 'src'),\n flat: false,\n },\n )\n for (const value of values) {\n console.log(`${value.split('/').pop()} => ./dist/${target}`)\n }\n return 0\n } catch (reason) {\n console.log(`Copy Failed: ${name}: ${reason}`)\n return 1\n }\n}\n\nconst copyTargetAssets = async (target: 'esm' | 'cjs', pkg?: string) => {\n const workspaces = yarnWorkspaces()\n\n console.log(chalk.green(`Copying Assets [${target.toUpperCase()}]`))\n\n // finds the package or returns all if undefined\n const workspaceList = workspaces.filter(({ name }) => {\n return pkg === undefined || name === pkg\n })\n\n if (workspaceList.length === 0) {\n console.error(`Package not found [${pkg}]`)\n } else {\n const results = await Promise.all(\n workspaceList.map(async (workspace) => {\n const { location, name } = workspace\n return await copyPackageTargetAssets(target, name, location)\n }),\n )\n // eslint-disable-next-line unicorn/no-array-reduce\n return results.reduce((prev, result) => prev || result, 0)\n }\n return 0\n}\n\nexport const copyAssets = async ({ target, pkg }: CopyAssetsParams) => {\n switch (target) {\n case 'esm': {\n return await copyTargetAssets('esm', pkg)\n }\n case 'cjs': {\n return await copyTargetAssets('cjs', pkg)\n }\n default: {\n return (await copyTargetAssets('esm', pkg)) || (await copyTargetAssets('cjs', pkg))\n }\n }\n}\n","import { spawnSync } from 'node:child_process'\n\nimport type { Workspace } from './Workspace.ts'\n\nexport const yarnWorkspaces = (): Workspace[] => {\n const result = spawnSync('yarn', ['workspaces', 'list', '--json', '--recursive'], { encoding: 'utf8', shell: true })\n if (result.error) {\n throw result.error\n }\n return (\n result.stdout\n .toString()\n // NOTE: This probably doesn't work on Windows\n // TODO: Replace /r/n with /n first\n .split('\\n')\n .slice(0, -1)\n .map((item) => {\n return JSON.parse(item)\n })\n )\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/actions/copy-assets.ts","../../src/lib/yarn/workspace/yarnWorkspaces.ts"],"sourcesContent":["import path from 'node:path/posix'\n\nimport chalk from 'chalk'\nimport cpy from 'cpy'\n\nimport { yarnWorkspaces } from '../lib/index.ts'\n\nexport interface CopyAssetsParams {\n pkg?: string\n target?: 'esm' | 'cjs'\n}\n\nconst copyPackageTargetAssets = async (target: 'esm' | 'cjs', name: string, location: string) => {\n try {\n const values = await cpy(\n ['**/*.jpg', '**/*.png', '**/*.gif', '**/*.svg', '**/*.webp', '**/*.sass', '**/*.scss', '**/*.gif', '**/*.css'],\n `../dist/${target}`,\n {\n cwd: path.join(process.cwd(), location, 'src'),\n flat: false,\n },\n )\n for (const value of values) {\n console.log(`${value.split('/').pop()} => ./dist/${target}`)\n }\n return 0\n } catch (reason) {\n console.log(`Copy Failed: ${name}: ${reason}`)\n return 1\n }\n}\n\nconst copyTargetAssets = async (target: 'esm' | 'cjs', pkg?: string) => {\n const workspaces = yarnWorkspaces()\n\n console.log(chalk.green(`Copying Assets [${target.toUpperCase()}]`))\n\n // finds the package or returns all if undefined\n const workspaceList = workspaces.filter(({ name }) => {\n return pkg === undefined || name === pkg\n })\n\n if (workspaceList.length === 0) {\n console.error(`Package not found [${pkg}]`)\n } else {\n const results = await Promise.all(\n workspaceList.map(async (workspace) => {\n const { location, name } = workspace\n return await copyPackageTargetAssets(target, name, location)\n }),\n )\n // eslint-disable-next-line unicorn/no-array-reduce\n return results.reduce((prev, result) => prev || result, 0)\n }\n return 0\n}\n\nexport const copyAssets = async ({ target, pkg }: CopyAssetsParams) => {\n switch (target) {\n case 'esm': {\n return await copyTargetAssets('esm', pkg)\n }\n case 'cjs': {\n return await copyTargetAssets('cjs', pkg)\n }\n default: {\n return (await copyTargetAssets('esm', pkg)) || (await copyTargetAssets('cjs', pkg))\n }\n }\n}\n","import { spawnSync } from 'node:child_process'\n\nimport type { Workspace } from './Workspace.ts'\n\nexport const yarnWorkspaces = (): Workspace[] => {\n const result = spawnSync('yarn', ['workspaces', 'list', '--json', '--recursive'], { encoding: 'utf8', shell: true })\n if (result.error) {\n throw result.error\n }\n return (\n result.stdout\n .toString()\n // NOTE: This probably doesn't work on Windows\n // TODO: Replace /r/n with /n first\n .split('\\n')\n .slice(0, -1)\n .map((item) => {\n return JSON.parse(item)\n })\n )\n}\n"],"mappings":";AAAA,OAAO,UAAU;AAEjB,OAAO,WAAW;AAClB,OAAO,SAAS;;;ACHhB,SAAS,iBAAiB;AAInB,IAAM,iBAAiB,MAAmB;AAC/C,QAAM,SAAS,UAAU,QAAQ,CAAC,cAAc,QAAQ,UAAU,aAAa,GAAG,EAAE,UAAU,QAAQ,OAAO,KAAK,CAAC;AACnH,MAAI,OAAO,OAAO;AAChB,UAAM,OAAO;AAAA,EACf;AACA,SACE,OAAO,OACJ,SAAS,EAGT,MAAM,IAAI,EACV,MAAM,GAAG,EAAE,EACX,IAAI,CAAC,SAAS;AACb,WAAO,KAAK,MAAM,IAAI;AAAA,EACxB,CAAC;AAEP;;;ADRA,IAAM,0BAA0B,OAAO,QAAuB,MAAc,aAAqB;AAC/F,MAAI;AACF,UAAM,SAAS,MAAM;AAAA,MACnB,CAAC,YAAY,YAAY,YAAY,YAAY,aAAa,aAAa,aAAa,YAAY,UAAU;AAAA,MAC9G,WAAW,MAAM;AAAA,MACjB;AAAA,QACE,KAAK,KAAK,KAAK,QAAQ,IAAI,GAAG,UAAU,KAAK;AAAA,QAC7C,MAAM;AAAA,MACR;AAAA,IACF;AACA,eAAW,SAAS,QAAQ;AAC1B,cAAQ,IAAI,GAAG,MAAM,MAAM,GAAG,EAAE,IAAI,CAAC,cAAc,MAAM,EAAE;AAAA,IAC7D;AACA,WAAO;AAAA,EACT,SAAS,QAAQ;AACf,YAAQ,IAAI,gBAAgB,IAAI,KAAK,MAAM,EAAE;AAC7C,WAAO;AAAA,EACT;AACF;AAEA,IAAM,mBAAmB,OAAO,QAAuB,QAAiB;AACtE,QAAM,aAAa,eAAe;AAElC,UAAQ,IAAI,MAAM,MAAM,mBAAmB,OAAO,YAAY,CAAC,GAAG,CAAC;AAGnE,QAAM,gBAAgB,WAAW,OAAO,CAAC,EAAE,KAAK,MAAM;AACpD,WAAO,QAAQ,UAAa,SAAS;AAAA,EACvC,CAAC;AAED,MAAI,cAAc,WAAW,GAAG;AAC9B,YAAQ,MAAM,sBAAsB,GAAG,GAAG;AAAA,EAC5C,OAAO;AACL,UAAM,UAAU,MAAM,QAAQ;AAAA,MAC5B,cAAc,IAAI,OAAO,cAAc;AACrC,cAAM,EAAE,UAAU,KAAK,IAAI;AAC3B,eAAO,MAAM,wBAAwB,QAAQ,MAAM,QAAQ;AAAA,MAC7D,CAAC;AAAA,IACH;AAEA,WAAO,QAAQ,OAAO,CAAC,MAAM,WAAW,QAAQ,QAAQ,CAAC;AAAA,EAC3D;AACA,SAAO;AACT;AAEO,IAAM,aAAa,OAAO,EAAE,QAAQ,IAAI,MAAwB;AACrE,UAAQ,QAAQ;AAAA,IACd,KAAK,OAAO;AACV,aAAO,MAAM,iBAAiB,OAAO,GAAG;AAAA,IAC1C;AAAA,IACA,KAAK,OAAO;AACV,aAAO,MAAM,iBAAiB,OAAO,GAAG;AAAA,IAC1C;AAAA,IACA,SAAS;AACP,aAAQ,MAAM,iBAAiB,OAAO,GAAG,KAAO,MAAM,iBAAiB,OAAO,GAAG;AAAA,IACnF;AAAA,EACF;AACF;","names":[]}
|
package/dist/actions/cycle.mjs
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
1
|
// src/actions/cycle.ts
|
|
5
2
|
import { cruise } from "dependency-cruiser";
|
|
6
3
|
|
|
7
4
|
// src/lib/checkResult.ts
|
|
8
5
|
import chalk from "chalk";
|
|
9
|
-
var checkResult =
|
|
6
|
+
var checkResult = (name, result, level = "error", exitOnFail = false) => {
|
|
10
7
|
if (result) {
|
|
11
8
|
const exiting = exitOnFail ? "[Exiting Process]" : "[Continuing]";
|
|
12
9
|
const chalkFunc = level === "error" ? chalk.red : chalk.yellow;
|
|
@@ -15,23 +12,23 @@ var checkResult = /* @__PURE__ */ __name((name, result, level = "error", exitOnF
|
|
|
15
12
|
process.exit(result);
|
|
16
13
|
}
|
|
17
14
|
}
|
|
18
|
-
}
|
|
15
|
+
};
|
|
19
16
|
|
|
20
17
|
// src/lib/processEx.ts
|
|
21
18
|
import chalk2 from "chalk";
|
|
22
19
|
|
|
23
20
|
// src/lib/withError.ts
|
|
24
|
-
var withError =
|
|
21
|
+
var withError = (ex, closure, predicate = (ex2) => !!ex2.name && !!ex2.message) => {
|
|
25
22
|
return predicate(ex) ? closure(ex) : void 0;
|
|
26
|
-
}
|
|
23
|
+
};
|
|
27
24
|
|
|
28
25
|
// src/lib/withErrnoException.ts
|
|
29
|
-
var withErrnoException =
|
|
26
|
+
var withErrnoException = (ex, closure) => {
|
|
30
27
|
return withError(ex, closure, (ex2) => ex2.errno !== void 0);
|
|
31
|
-
}
|
|
28
|
+
};
|
|
32
29
|
|
|
33
30
|
// src/lib/processEx.ts
|
|
34
|
-
var processEx =
|
|
31
|
+
var processEx = (ex) => {
|
|
35
32
|
const error = typeof ex === "string" ? new Error(ex) : ex;
|
|
36
33
|
const exitCode = withErrnoException(error, (error2) => {
|
|
37
34
|
if (error2.code === "ENOENT") {
|
|
@@ -48,10 +45,10 @@ var processEx = /* @__PURE__ */ __name((ex) => {
|
|
|
48
45
|
return -1;
|
|
49
46
|
})();
|
|
50
47
|
process.exit(process.exitCode ?? exitCode);
|
|
51
|
-
}
|
|
48
|
+
};
|
|
52
49
|
|
|
53
50
|
// src/lib/safeExit.ts
|
|
54
|
-
var safeExit =
|
|
51
|
+
var safeExit = (func, exitOnFail = true) => {
|
|
55
52
|
try {
|
|
56
53
|
const result = func();
|
|
57
54
|
if (result && exitOnFail) {
|
|
@@ -61,13 +58,13 @@ var safeExit = /* @__PURE__ */ __name((func, exitOnFail = true) => {
|
|
|
61
58
|
} catch (ex) {
|
|
62
59
|
return processEx(ex);
|
|
63
60
|
}
|
|
64
|
-
}
|
|
61
|
+
};
|
|
65
62
|
|
|
66
63
|
// src/lib/runSteps.ts
|
|
67
64
|
import { spawnSync } from "node:child_process";
|
|
68
65
|
import { existsSync } from "node:fs";
|
|
69
66
|
import chalk3 from "chalk";
|
|
70
|
-
var runSteps =
|
|
67
|
+
var runSteps = (name, steps, exitOnFail = true, messages) => {
|
|
71
68
|
return safeExit(() => {
|
|
72
69
|
const pkgName = process.env.npm_package_name;
|
|
73
70
|
console.log(chalk3.green(`${name} [${pkgName}]`));
|
|
@@ -83,10 +80,7 @@ var runSteps = /* @__PURE__ */ __name((name, steps, exitOnFail = true, messages)
|
|
|
83
80
|
const status = spawnSync(command, Array.isArray(args) ? args : args.split(" "), {
|
|
84
81
|
...config,
|
|
85
82
|
encoding: "utf8",
|
|
86
|
-
env: {
|
|
87
|
-
FORCE_COLOR: "3",
|
|
88
|
-
...process.env
|
|
89
|
-
},
|
|
83
|
+
env: { FORCE_COLOR: "3", ...process.env },
|
|
90
84
|
shell: true,
|
|
91
85
|
stdio: "inherit"
|
|
92
86
|
}).status ?? 0;
|
|
@@ -95,37 +89,20 @@ var runSteps = /* @__PURE__ */ __name((name, steps, exitOnFail = true, messages)
|
|
|
95
89
|
}
|
|
96
90
|
return totalStatus;
|
|
97
91
|
}, !!exitOnFail);
|
|
98
|
-
}
|
|
92
|
+
};
|
|
99
93
|
|
|
100
94
|
// src/actions/cycle.ts
|
|
101
|
-
var cycle =
|
|
102
|
-
return pkg ? cyclePackage({
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
] : [
|
|
113
|
-
"--no-verbose"
|
|
114
|
-
];
|
|
115
|
-
return runSteps(`Cycle [${pkg}]`, [
|
|
116
|
-
[
|
|
117
|
-
"yarn",
|
|
118
|
-
[
|
|
119
|
-
"workspace",
|
|
120
|
-
pkg,
|
|
121
|
-
"run",
|
|
122
|
-
"package-cycle",
|
|
123
|
-
...verboseOptions
|
|
124
|
-
]
|
|
125
|
-
]
|
|
126
|
-
]);
|
|
127
|
-
}, "cyclePackage");
|
|
128
|
-
var cycleAll = /* @__PURE__ */ __name(async ({ verbose = false }) => {
|
|
95
|
+
var cycle = async ({ verbose, pkg } = {}) => {
|
|
96
|
+
return pkg ? cyclePackage({ pkg, verbose }) : await cycleAll({ verbose });
|
|
97
|
+
};
|
|
98
|
+
var cyclePackage = ({ pkg, verbose }) => {
|
|
99
|
+
const verboseOptions = verbose ? ["--verbose"] : ["--no-verbose"];
|
|
100
|
+
return runSteps(
|
|
101
|
+
`Cycle [${pkg}]`,
|
|
102
|
+
[["yarn", ["workspace", pkg, "run", "package-cycle", ...verboseOptions]]]
|
|
103
|
+
);
|
|
104
|
+
};
|
|
105
|
+
var cycleAll = async ({ verbose = false }) => {
|
|
129
106
|
const pkgName = process.env.npm_package_name;
|
|
130
107
|
const cruiseOptions = {
|
|
131
108
|
ruleSet: {
|
|
@@ -135,26 +112,20 @@ var cycleAll = /* @__PURE__ */ __name(async ({ verbose = false }) => {
|
|
|
135
112
|
severity: "error",
|
|
136
113
|
comment: "This dependency creates a circular reference",
|
|
137
114
|
from: {},
|
|
138
|
-
to: {
|
|
139
|
-
circular: true
|
|
140
|
-
}
|
|
115
|
+
to: { circular: true }
|
|
141
116
|
}
|
|
142
117
|
]
|
|
143
118
|
},
|
|
144
119
|
exclude: "node_modules|packages/.*/packages",
|
|
145
120
|
validate: true,
|
|
146
|
-
doNotFollow: {
|
|
147
|
-
path: "node_modules|packages/.*/packages"
|
|
148
|
-
},
|
|
121
|
+
doNotFollow: { path: "node_modules|packages/.*/packages" },
|
|
149
122
|
tsPreCompilationDeps: false,
|
|
150
123
|
combinedDependencies: true,
|
|
151
124
|
outputType: verbose ? "text" : "err"
|
|
152
125
|
};
|
|
153
126
|
const target = "**/src";
|
|
154
127
|
console.log(`Checking for circular dependencies in ${target}...`);
|
|
155
|
-
const result = await cruise([
|
|
156
|
-
target
|
|
157
|
-
], cruiseOptions);
|
|
128
|
+
const result = await cruise([target], cruiseOptions);
|
|
158
129
|
if (result.output) {
|
|
159
130
|
console.log(result.output);
|
|
160
131
|
}
|
|
@@ -164,7 +135,7 @@ var cycleAll = /* @__PURE__ */ __name(async ({ verbose = false }) => {
|
|
|
164
135
|
console.error(`${pkgName} \u274C Dependency violations found`);
|
|
165
136
|
}
|
|
166
137
|
return result.exitCode;
|
|
167
|
-
}
|
|
138
|
+
};
|
|
168
139
|
export {
|
|
169
140
|
cycle,
|
|
170
141
|
cycleAll,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/actions/cycle.ts","../../src/lib/checkResult.ts","../../src/lib/processEx.ts","../../src/lib/withError.ts","../../src/lib/withErrnoException.ts","../../src/lib/safeExit.ts","../../src/lib/runSteps.ts"],"sourcesContent":["import { cruise, type ICruiseOptions } from 'dependency-cruiser'\n\nimport { runSteps } from '../lib/index.ts'\n\nexport interface CycleParams {\n incremental?: boolean\n jobs?: number\n pkg?: string\n verbose?: boolean\n}\n\ninterface CyclePackageParams {\n pkg: string\n verbose?: boolean\n}\n\nexport const cycle = async ({ verbose, pkg }: CycleParams = {}) => {\n return pkg\n ? cyclePackage({ pkg, verbose })\n : await cycleAll({ verbose })\n}\n\nexport const cyclePackage = ({ pkg, verbose }: CyclePackageParams) => {\n const verboseOptions = verbose ? ['--verbose'] : ['--no-verbose']\n return runSteps(\n `Cycle [${pkg}]`,\n [['yarn', ['workspace', pkg, 'run', 'package-cycle', ...verboseOptions]]],\n )\n}\n\nexport const cycleAll = async ({ verbose = false }: { verbose?: boolean }) => {\n const pkgName = process.env.npm_package_name\n\n const cruiseOptions: ICruiseOptions = {\n ruleSet: {\n forbidden: [\n {\n name: 'no-circular',\n severity: 'error',\n comment: 'This dependency creates a circular reference',\n from: {},\n to: { circular: true },\n },\n ],\n },\n exclude: 'node_modules|packages/.*/packages',\n validate: true,\n doNotFollow: { path: 'node_modules|packages/.*/packages' },\n tsPreCompilationDeps: false,\n combinedDependencies: true,\n outputType: verbose ? 'text' : 'err',\n }\n\n const target = '**/src'\n\n console.log(`Checking for circular dependencies in ${target}...`)\n\n const result = await cruise([target], cruiseOptions)\n if (result.output) {\n console.log(result.output)\n }\n\n if (result.exitCode === 0) {\n console.log(`${pkgName} ✅ No dependency violations`)\n } else {\n console.error(`${pkgName} ❌ Dependency violations found`)\n }\n return result.exitCode\n}\n","import chalk from 'chalk'\n\nexport const checkResult = (name: string, result: number, level: 'error' | 'warn' = 'error', exitOnFail = false) => {\n if (result) {\n const exiting = exitOnFail ? '[Exiting Process]' : '[Continuing]'\n const chalkFunc = level === 'error' ? chalk.red : chalk.yellow\n console[level](chalkFunc(`${name} had ${result} failures ${exiting}`))\n if (exitOnFail) {\n process.exit(result)\n }\n }\n}\n","import chalk from 'chalk'\n\nimport { withErrnoException } from './withErrnoException.ts'\nimport { withError } from './withError.ts'\n\nexport const processEx = (ex: unknown) => {\n const error = typeof ex === 'string' ? new Error(ex) : ex\n const exitCode\n = withErrnoException(error, (error) => {\n if (error.code === 'ENOENT') {\n console.error(chalk.red(`'${error.path}' not found.`))\n } else {\n console.error(chalk.red(`Errno: ${error.code}`))\n }\n return error.errno ?? -1\n })\n ?? withError(error, (error) => {\n console.error(chalk.red(`${error.name}: ${error.message}`))\n return -1\n })\n ?? (() => {\n console.error(chalk.red(`Unexpected Error: ${JSON.stringify(ex, null, 2)}`))\n return -1\n })()\n // This allows us to use a previously set exit code\n process.exit(process.exitCode ?? exitCode)\n}\n","export const withError = <T extends Error = Error>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ex: any,\n closure: (error: T) => number,\n predicate = (ex: T) => (!!ex.name && !!ex.message),\n) => {\n return predicate(ex as T) ? closure(ex as T) : undefined\n}\n","import { withError } from './withError.ts'\n\nexport const withErrnoException = <T extends NodeJS.ErrnoException = NodeJS.ErrnoException>(\n ex: unknown, closure: (error: T) => number,\n) => {\n return withError<T>(ex, closure, (ex: unknown) => (ex as NodeJS.ErrnoException).errno !== undefined)\n}\n","/** Catch child process a crash and returns the code */\n\nimport { processEx } from './processEx.ts'\n\nconst safeExit = (func: () => number, exitOnFail = true): number => {\n try {\n const result = func()\n if (result && exitOnFail) {\n process.exit(result)\n }\n return result\n } catch (ex) {\n return processEx(ex)\n }\n}\n\nconst safeExitAsync = async (func: () => Promise<number>, exitOnFail = true): Promise<number> => {\n try {\n const result = await func()\n if (result && exitOnFail) {\n process.exit(result)\n }\n return result\n } catch (ex) {\n return processEx(ex)\n }\n}\n\nexport { safeExit, safeExitAsync }\n","import type { SpawnSyncOptionsWithBufferEncoding } from 'node:child_process'\nimport { spawnSync } from 'node:child_process'\nimport { existsSync } from 'node:fs'\n\nimport chalk from 'chalk'\n\nimport { checkResult } from './checkResult.ts'\nimport { safeExit } from './safeExit.ts'\n\nexport type ScriptStep =\n | [/* command */ 'yarn' | 'node' | 'ts-node-script' | 'tsc' | 'jest', /* arg */ string | string[]]\n | [/* command */ string, /* arg */ string | string[], /* config */ SpawnSyncOptionsWithBufferEncoding]\n\nexport const runSteps = (name: string, steps: ScriptStep[], exitOnFail = true, messages?: string[]): number => {\n return safeExit(() => {\n const pkgName = process.env.npm_package_name\n console.log(chalk.green(`${name} [${pkgName}]`))\n let totalStatus = 0\n for (const [i, [command, args, config]] of steps.entries()) {\n if (messages?.[i]) {\n console.log(chalk.gray(messages?.[i]))\n }\n const argList = Array.isArray(args) ? args : args.split(' ')\n if (command === 'node' && !existsSync(argList[0])) {\n throw new Error(`File not found [${argList[0]}]`)\n }\n const status\n = spawnSync(command, Array.isArray(args) ? args : args.split(' '), {\n ...config,\n encoding: 'utf8',\n env: { FORCE_COLOR: '3', ...process.env },\n shell: true,\n stdio: 'inherit',\n }).status ?? 0\n checkResult(name, status, 'error', exitOnFail)\n totalStatus += status ?? 0\n }\n return totalStatus\n }, !!exitOnFail)\n}\n"],"mappings":"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","names":["cruise","chalk","checkResult","name","result","level","exitOnFail","exiting","chalkFunc","chalk","red","yellow","console","process","exit","chalk","withError","ex","closure","predicate","name","message","undefined","withErrnoException","ex","closure","withError","errno","undefined","processEx","ex","error","Error","exitCode","withErrnoException","code","console","chalk","red","path","errno","withError","name","message","JSON","stringify","process","exit","safeExit","func","exitOnFail","result","process","exit","ex","processEx","spawnSync","existsSync","chalk","runSteps","name","steps","exitOnFail","messages","safeExit","pkgName","process","env","npm_package_name","console","log","chalk","green","totalStatus","i","command","args","config","entries","gray","argList","Array","isArray","split","existsSync","Error","status","spawnSync","encoding","FORCE_COLOR","shell","stdio","checkResult","cycle","verbose","pkg","cyclePackage","cycleAll","verboseOptions","runSteps","pkgName","process","env","npm_package_name","cruiseOptions","ruleSet","forbidden","name","severity","comment","from","to","circular","exclude","validate","doNotFollow","path","tsPreCompilationDeps","combinedDependencies","outputType","target","console","log","result","cruise","output","exitCode","error"]}
|
|
1
|
+
{"version":3,"sources":["../../src/actions/cycle.ts","../../src/lib/checkResult.ts","../../src/lib/processEx.ts","../../src/lib/withError.ts","../../src/lib/withErrnoException.ts","../../src/lib/safeExit.ts","../../src/lib/runSteps.ts"],"sourcesContent":["import { cruise, type ICruiseOptions } from 'dependency-cruiser'\n\nimport { runSteps } from '../lib/index.ts'\n\nexport interface CycleParams {\n incremental?: boolean\n jobs?: number\n pkg?: string\n verbose?: boolean\n}\n\ninterface CyclePackageParams {\n pkg: string\n verbose?: boolean\n}\n\nexport const cycle = async ({ verbose, pkg }: CycleParams = {}) => {\n return pkg\n ? cyclePackage({ pkg, verbose })\n : await cycleAll({ verbose })\n}\n\nexport const cyclePackage = ({ pkg, verbose }: CyclePackageParams) => {\n const verboseOptions = verbose ? ['--verbose'] : ['--no-verbose']\n return runSteps(\n `Cycle [${pkg}]`,\n [['yarn', ['workspace', pkg, 'run', 'package-cycle', ...verboseOptions]]],\n )\n}\n\nexport const cycleAll = async ({ verbose = false }: { verbose?: boolean }) => {\n const pkgName = process.env.npm_package_name\n\n const cruiseOptions: ICruiseOptions = {\n ruleSet: {\n forbidden: [\n {\n name: 'no-circular',\n severity: 'error',\n comment: 'This dependency creates a circular reference',\n from: {},\n to: { circular: true },\n },\n ],\n },\n exclude: 'node_modules|packages/.*/packages',\n validate: true,\n doNotFollow: { path: 'node_modules|packages/.*/packages' },\n tsPreCompilationDeps: false,\n combinedDependencies: true,\n outputType: verbose ? 'text' : 'err',\n }\n\n const target = '**/src'\n\n console.log(`Checking for circular dependencies in ${target}...`)\n\n const result = await cruise([target], cruiseOptions)\n if (result.output) {\n console.log(result.output)\n }\n\n if (result.exitCode === 0) {\n console.log(`${pkgName} ✅ No dependency violations`)\n } else {\n console.error(`${pkgName} ❌ Dependency violations found`)\n }\n return result.exitCode\n}\n","import chalk from 'chalk'\n\nexport const checkResult = (name: string, result: number, level: 'error' | 'warn' = 'error', exitOnFail = false) => {\n if (result) {\n const exiting = exitOnFail ? '[Exiting Process]' : '[Continuing]'\n const chalkFunc = level === 'error' ? chalk.red : chalk.yellow\n console[level](chalkFunc(`${name} had ${result} failures ${exiting}`))\n if (exitOnFail) {\n process.exit(result)\n }\n }\n}\n","import chalk from 'chalk'\n\nimport { withErrnoException } from './withErrnoException.ts'\nimport { withError } from './withError.ts'\n\nexport const processEx = (ex: unknown) => {\n const error = typeof ex === 'string' ? new Error(ex) : ex\n const exitCode\n = withErrnoException(error, (error) => {\n if (error.code === 'ENOENT') {\n console.error(chalk.red(`'${error.path}' not found.`))\n } else {\n console.error(chalk.red(`Errno: ${error.code}`))\n }\n return error.errno ?? -1\n })\n ?? withError(error, (error) => {\n console.error(chalk.red(`${error.name}: ${error.message}`))\n return -1\n })\n ?? (() => {\n console.error(chalk.red(`Unexpected Error: ${JSON.stringify(ex, null, 2)}`))\n return -1\n })()\n // This allows us to use a previously set exit code\n process.exit(process.exitCode ?? exitCode)\n}\n","export const withError = <T extends Error = Error>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ex: any,\n closure: (error: T) => number,\n predicate = (ex: T) => (!!ex.name && !!ex.message),\n) => {\n return predicate(ex as T) ? closure(ex as T) : undefined\n}\n","import { withError } from './withError.ts'\n\nexport const withErrnoException = <T extends NodeJS.ErrnoException = NodeJS.ErrnoException>(\n ex: unknown, closure: (error: T) => number,\n) => {\n return withError<T>(ex, closure, (ex: unknown) => (ex as NodeJS.ErrnoException).errno !== undefined)\n}\n","/** Catch child process a crash and returns the code */\n\nimport { processEx } from './processEx.ts'\n\nconst safeExit = (func: () => number, exitOnFail = true): number => {\n try {\n const result = func()\n if (result && exitOnFail) {\n process.exit(result)\n }\n return result\n } catch (ex) {\n return processEx(ex)\n }\n}\n\nconst safeExitAsync = async (func: () => Promise<number>, exitOnFail = true): Promise<number> => {\n try {\n const result = await func()\n if (result && exitOnFail) {\n process.exit(result)\n }\n return result\n } catch (ex) {\n return processEx(ex)\n }\n}\n\nexport { safeExit, safeExitAsync }\n","import type { SpawnSyncOptionsWithBufferEncoding } from 'node:child_process'\nimport { spawnSync } from 'node:child_process'\nimport { existsSync } from 'node:fs'\n\nimport chalk from 'chalk'\n\nimport { checkResult } from './checkResult.ts'\nimport { safeExit } from './safeExit.ts'\n\nexport type ScriptStep =\n | [/* command */ 'yarn' | 'node' | 'ts-node-script' | 'tsc' | 'jest', /* arg */ string | string[]]\n | [/* command */ string, /* arg */ string | string[], /* config */ SpawnSyncOptionsWithBufferEncoding]\n\nexport const runSteps = (name: string, steps: ScriptStep[], exitOnFail = true, messages?: string[]): number => {\n return safeExit(() => {\n const pkgName = process.env.npm_package_name\n console.log(chalk.green(`${name} [${pkgName}]`))\n let totalStatus = 0\n for (const [i, [command, args, config]] of steps.entries()) {\n if (messages?.[i]) {\n console.log(chalk.gray(messages?.[i]))\n }\n const argList = Array.isArray(args) ? args : args.split(' ')\n if (command === 'node' && !existsSync(argList[0])) {\n throw new Error(`File not found [${argList[0]}]`)\n }\n const status\n = spawnSync(command, Array.isArray(args) ? args : args.split(' '), {\n ...config,\n encoding: 'utf8',\n env: { FORCE_COLOR: '3', ...process.env },\n shell: true,\n stdio: 'inherit',\n }).status ?? 0\n checkResult(name, status, 'error', exitOnFail)\n totalStatus += status ?? 0\n }\n return totalStatus\n }, !!exitOnFail)\n}\n"],"mappings":"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","names":["chalk","ex","ex","error","chalk","chalk","chalk"]}
|