@take-out/cli 0.4.3 → 0.4.5
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/cjs/cli.cjs +53 -35
- package/dist/cjs/commands/changed.cjs +133 -95
- package/dist/cjs/commands/docs.cjs +276 -203
- package/dist/cjs/commands/env-setup.cjs +45 -33
- package/dist/cjs/commands/onboard.cjs +668 -224
- package/dist/cjs/commands/run-all.cjs +54 -45
- package/dist/cjs/commands/run.cjs +80 -65
- package/dist/cjs/commands/script.cjs +263 -187
- package/dist/cjs/commands/skills.cjs +174 -118
- package/dist/cjs/commands/sync.cjs +193 -93
- package/dist/cjs/constants/ascii.cjs +14 -12
- package/dist/cjs/index.cjs +12 -10
- package/dist/cjs/types.cjs +7 -5
- package/dist/cjs/utils/env-categories.cjs +53 -48
- package/dist/cjs/utils/env-setup.cjs +214 -106
- package/dist/cjs/utils/env.cjs +65 -44
- package/dist/cjs/utils/files.cjs +186 -113
- package/dist/cjs/utils/parallel-runner.cjs +125 -75
- package/dist/cjs/utils/ports.cjs +21 -21
- package/dist/cjs/utils/prerequisites.cjs +42 -34
- package/dist/cjs/utils/prompts.cjs +66 -41
- package/dist/cjs/utils/script-listing.cjs +130 -60
- package/dist/cjs/utils/script-utils.cjs +29 -19
- package/dist/cjs/utils/sync.cjs +67 -45
- package/dist/esm/cli.mjs +40 -24
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/commands/changed.mjs +104 -68
- package/dist/esm/commands/changed.mjs.map +1 -1
- package/dist/esm/commands/docs.mjs +245 -174
- package/dist/esm/commands/docs.mjs.map +1 -1
- package/dist/esm/commands/env-setup.mjs +18 -8
- package/dist/esm/commands/env-setup.mjs.map +1 -1
- package/dist/esm/commands/onboard.mjs +631 -189
- package/dist/esm/commands/onboard.mjs.map +1 -1
- package/dist/esm/commands/run-all.mjs +26 -19
- package/dist/esm/commands/run-all.mjs.map +1 -1
- package/dist/esm/commands/run.mjs +52 -39
- package/dist/esm/commands/run.mjs.map +1 -1
- package/dist/esm/commands/script.mjs +230 -156
- package/dist/esm/commands/script.mjs.map +1 -1
- package/dist/esm/commands/skills.mjs +143 -89
- package/dist/esm/commands/skills.mjs.map +1 -1
- package/dist/esm/commands/sync.mjs +160 -62
- package/dist/esm/commands/sync.mjs.map +1 -1
- package/dist/esm/constants/ascii.mjs +2 -2
- package/dist/esm/constants/ascii.mjs.map +1 -1
- package/dist/esm/utils/env-categories.mjs +29 -26
- package/dist/esm/utils/env-categories.mjs.map +1 -1
- package/dist/esm/utils/env-setup.mjs +184 -78
- package/dist/esm/utils/env-setup.mjs.map +1 -1
- package/dist/esm/utils/env.mjs +50 -31
- package/dist/esm/utils/env.mjs.map +1 -1
- package/dist/esm/utils/files.mjs +171 -100
- package/dist/esm/utils/files.mjs.map +1 -1
- package/dist/esm/utils/parallel-runner.mjs +111 -63
- package/dist/esm/utils/parallel-runner.mjs.map +1 -1
- package/dist/esm/utils/ports.mjs +9 -11
- package/dist/esm/utils/ports.mjs.map +1 -1
- package/dist/esm/utils/prerequisites.mjs +30 -24
- package/dist/esm/utils/prerequisites.mjs.map +1 -1
- package/dist/esm/utils/prompts.mjs +40 -17
- package/dist/esm/utils/prompts.mjs.map +1 -1
- package/dist/esm/utils/script-listing.mjs +101 -33
- package/dist/esm/utils/script-listing.mjs.map +1 -1
- package/dist/esm/utils/script-utils.mjs +14 -6
- package/dist/esm/utils/script-utils.mjs.map +1 -1
- package/dist/esm/utils/sync.mjs +38 -18
- package/dist/esm/utils/sync.mjs.map +1 -1
- package/package.json +5 -5
package/dist/esm/utils/files.mjs
CHANGED
|
@@ -3,161 +3,232 @@ import { existsSync, readdirSync, readFileSync, rmSync, writeFileSync } from "no
|
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
function updatePackageJson(cwd, updates) {
|
|
5
5
|
const packagePath = join(cwd, "package.json");
|
|
6
|
-
if (!existsSync(packagePath))
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
if (!existsSync(packagePath)) {
|
|
7
|
+
return {
|
|
8
|
+
success: false,
|
|
9
|
+
error: "package.json not found"
|
|
10
|
+
};
|
|
11
|
+
}
|
|
10
12
|
try {
|
|
11
|
-
const content = readFileSync(packagePath, "utf-8")
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
const content = readFileSync(packagePath, "utf-8");
|
|
14
|
+
const pkg = JSON.parse(content);
|
|
15
|
+
if (updates.name) pkg.name = updates.name;
|
|
16
|
+
if (updates.description) pkg.description = updates.description;
|
|
17
|
+
writeFileSync(packagePath, JSON.stringify(pkg, null, 2) + "\n", "utf-8");
|
|
18
|
+
return {
|
|
19
|
+
success: true
|
|
16
20
|
};
|
|
17
21
|
} catch (error) {
|
|
18
22
|
return {
|
|
19
|
-
success:
|
|
23
|
+
success: false,
|
|
20
24
|
error: error instanceof Error ? error.message : "Unknown error"
|
|
21
25
|
};
|
|
22
26
|
}
|
|
23
27
|
}
|
|
24
28
|
function updateAppConfig(cwd, updates) {
|
|
25
29
|
const configPath = join(cwd, "app.config.ts");
|
|
26
|
-
if (!existsSync(configPath))
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
if (!existsSync(configPath)) {
|
|
31
|
+
return {
|
|
32
|
+
success: false,
|
|
33
|
+
error: "app.config.ts not found"
|
|
34
|
+
};
|
|
35
|
+
}
|
|
30
36
|
try {
|
|
31
37
|
let content = readFileSync(configPath, "utf-8");
|
|
32
|
-
|
|
33
|
-
|
|
38
|
+
if (updates.name) {
|
|
39
|
+
content = content.replace(/(name:\s*['"])([^'"]+)(['"])/, `$1${updates.name}$3`);
|
|
40
|
+
}
|
|
41
|
+
if (updates.slug) {
|
|
42
|
+
content = content.replace(/(slug:\s*['"])([^'"]+)(['"])/, `$1${updates.slug}$3`);
|
|
43
|
+
}
|
|
44
|
+
if (updates.bundleId) {
|
|
45
|
+
content = content.replace(/(bundleIdentifier:\s*['"])([^'"]+)(['"])/, `$1${updates.bundleId}$3`);
|
|
46
|
+
content = content.replace(/(package:\s*['"])([^'"]+)(['"])/, `$1${updates.bundleId}$3`);
|
|
47
|
+
}
|
|
48
|
+
writeFileSync(configPath, content, "utf-8");
|
|
49
|
+
return {
|
|
50
|
+
success: true
|
|
34
51
|
};
|
|
35
52
|
} catch (error) {
|
|
36
53
|
return {
|
|
37
|
-
success:
|
|
54
|
+
success: false,
|
|
38
55
|
error: error instanceof Error ? error.message : "Unknown error"
|
|
39
56
|
};
|
|
40
57
|
}
|
|
41
58
|
}
|
|
42
59
|
function checkOnboarded(cwd) {
|
|
43
60
|
const packagePath = join(cwd, "package.json");
|
|
44
|
-
if (!existsSync(packagePath)) return
|
|
61
|
+
if (!existsSync(packagePath)) return false;
|
|
45
62
|
try {
|
|
46
|
-
|
|
63
|
+
const pkg = JSON.parse(readFileSync(packagePath, "utf-8"));
|
|
64
|
+
return pkg.takeout?.onboarded === true;
|
|
47
65
|
} catch {
|
|
48
|
-
return
|
|
66
|
+
return false;
|
|
49
67
|
}
|
|
50
68
|
}
|
|
51
69
|
function markOnboarded(cwd) {
|
|
52
70
|
const packagePath = join(cwd, "package.json");
|
|
53
|
-
if (!existsSync(packagePath))
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
71
|
+
if (!existsSync(packagePath)) {
|
|
72
|
+
return {
|
|
73
|
+
success: false,
|
|
74
|
+
error: "package.json not found"
|
|
75
|
+
};
|
|
76
|
+
}
|
|
57
77
|
try {
|
|
58
|
-
const content = readFileSync(packagePath, "utf-8")
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
78
|
+
const content = readFileSync(packagePath, "utf-8");
|
|
79
|
+
const pkg = JSON.parse(content);
|
|
80
|
+
if (!pkg.takeout) {
|
|
81
|
+
pkg.takeout = {};
|
|
82
|
+
}
|
|
83
|
+
pkg.takeout.onboarded = true;
|
|
84
|
+
writeFileSync(packagePath, JSON.stringify(pkg, null, 2) + "\n", "utf-8");
|
|
85
|
+
return {
|
|
86
|
+
success: true
|
|
63
87
|
};
|
|
64
88
|
} catch (error) {
|
|
65
89
|
return {
|
|
66
|
-
success:
|
|
90
|
+
success: false,
|
|
67
91
|
error: error instanceof Error ? error.message : "Unknown error"
|
|
68
92
|
};
|
|
69
93
|
}
|
|
70
94
|
}
|
|
71
95
|
function updatePackageJsonEnv(cwd, platform) {
|
|
72
96
|
const packagePath = join(cwd, "package.json");
|
|
73
|
-
if (!existsSync(packagePath))
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
97
|
+
if (!existsSync(packagePath)) {
|
|
98
|
+
return {
|
|
99
|
+
success: false,
|
|
100
|
+
error: "package.json not found"
|
|
101
|
+
};
|
|
102
|
+
}
|
|
77
103
|
try {
|
|
78
|
-
const content = readFileSync(packagePath, "utf-8")
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
104
|
+
const content = readFileSync(packagePath, "utf-8");
|
|
105
|
+
const pkg = JSON.parse(content);
|
|
106
|
+
if (!pkg.env) {
|
|
107
|
+
return {
|
|
108
|
+
success: false,
|
|
109
|
+
error: "env section not found in package.json"
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
if (platform === "sst") {
|
|
113
|
+
delete pkg.env.DEPLOY_HOST;
|
|
114
|
+
delete pkg.env.DEPLOY_USER;
|
|
115
|
+
delete pkg.env.DEPLOY_SSH_KEY;
|
|
116
|
+
} else if (platform === "uncloud") {
|
|
117
|
+
delete pkg.env.CLOUDFLARE_API_TOKEN;
|
|
118
|
+
delete pkg.env.AWS_ACCESS_KEY_ID;
|
|
119
|
+
delete pkg.env.AWS_SECRET_ACCESS_KEY;
|
|
120
|
+
}
|
|
121
|
+
writeFileSync(packagePath, JSON.stringify(pkg, null, 2) + "\n", "utf-8");
|
|
122
|
+
return {
|
|
123
|
+
success: true
|
|
86
124
|
};
|
|
87
125
|
} catch (error) {
|
|
88
126
|
return {
|
|
89
|
-
success:
|
|
127
|
+
success: false,
|
|
90
128
|
error: error instanceof Error ? error.message : "Unknown error"
|
|
91
129
|
};
|
|
92
130
|
}
|
|
93
131
|
}
|
|
94
132
|
async function ejectFromMonorepo(cwd, options = {}) {
|
|
95
133
|
const {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
if (!existsSync(packagePath))
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
134
|
+
dryRun = false
|
|
135
|
+
} = options;
|
|
136
|
+
const packagePath = join(cwd, "package.json");
|
|
137
|
+
const packagesDir = join(cwd, "packages");
|
|
138
|
+
const warnings = [];
|
|
139
|
+
if (!existsSync(packagePath)) {
|
|
140
|
+
return {
|
|
141
|
+
success: false,
|
|
142
|
+
error: "package.json not found"
|
|
143
|
+
};
|
|
144
|
+
}
|
|
105
145
|
try {
|
|
106
|
-
const content = readFileSync(packagePath, "utf-8")
|
|
107
|
-
|
|
108
|
-
if (!existsSync(packagesDir))
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
146
|
+
const content = readFileSync(packagePath, "utf-8");
|
|
147
|
+
const pkg = JSON.parse(content);
|
|
148
|
+
if (!existsSync(packagesDir)) {
|
|
149
|
+
return {
|
|
150
|
+
success: false,
|
|
151
|
+
error: "packages directory not found - already ejected?"
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
if (!pkg.workspaces) {
|
|
155
|
+
return {
|
|
156
|
+
success: false,
|
|
157
|
+
error: "no workspaces field found - already ejected?"
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
const workspacePackages = [];
|
|
161
|
+
const entries = readdirSync(packagesDir, {
|
|
162
|
+
withFileTypes: true
|
|
163
|
+
});
|
|
120
164
|
for (const entry of entries) {
|
|
121
165
|
if (!entry.isDirectory()) continue;
|
|
122
166
|
const pkgJsonPath = join(packagesDir, entry.name, "package.json");
|
|
123
|
-
if (existsSync(pkgJsonPath))
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
name
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
167
|
+
if (existsSync(pkgJsonPath)) {
|
|
168
|
+
try {
|
|
169
|
+
const pkgJson = JSON.parse(readFileSync(pkgJsonPath, "utf-8"));
|
|
170
|
+
if (pkgJson.name && pkgJson.version) {
|
|
171
|
+
workspacePackages.push({
|
|
172
|
+
name: pkgJson.name,
|
|
173
|
+
version: pkgJson.version
|
|
174
|
+
});
|
|
175
|
+
} else {
|
|
176
|
+
warnings.push(`skipped ${entry.name}: missing name or version`);
|
|
177
|
+
}
|
|
178
|
+
} catch (e) {
|
|
179
|
+
warnings.push(`skipped ${entry.name}: invalid package.json`);
|
|
180
|
+
}
|
|
131
181
|
}
|
|
132
182
|
}
|
|
133
|
-
if (workspacePackages.length === 0)
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
const unresolvedDeps = [],
|
|
138
|
-
allDeps = {
|
|
139
|
-
...pkg.dependencies,
|
|
140
|
-
...pkg.devDependencies
|
|
183
|
+
if (workspacePackages.length === 0) {
|
|
184
|
+
return {
|
|
185
|
+
success: false,
|
|
186
|
+
error: "no valid workspace packages found"
|
|
141
187
|
};
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
};
|
|
148
|
-
if (dryRun) return {
|
|
149
|
-
success: !0,
|
|
150
|
-
packages: workspacePackages,
|
|
151
|
-
warnings: warnings.length > 0 ? warnings : void 0
|
|
188
|
+
}
|
|
189
|
+
const unresolvedDeps = [];
|
|
190
|
+
const allDeps = {
|
|
191
|
+
...pkg.dependencies,
|
|
192
|
+
...pkg.devDependencies
|
|
152
193
|
};
|
|
194
|
+
for (const [name, version] of Object.entries(allDeps)) {
|
|
195
|
+
if (version === "workspace:*") {
|
|
196
|
+
const found = workspacePackages.find(p => p.name === name);
|
|
197
|
+
if (!found) {
|
|
198
|
+
unresolvedDeps.push(name);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
if (unresolvedDeps.length > 0) {
|
|
203
|
+
return {
|
|
204
|
+
success: false,
|
|
205
|
+
error: `unresolved workspace dependencies: ${unresolvedDeps.join(", ")}`,
|
|
206
|
+
packages: workspacePackages
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
if (dryRun) {
|
|
210
|
+
return {
|
|
211
|
+
success: true,
|
|
212
|
+
packages: workspacePackages,
|
|
213
|
+
warnings: warnings.length > 0 ? warnings : void 0
|
|
214
|
+
};
|
|
215
|
+
}
|
|
153
216
|
for (const {
|
|
154
217
|
name,
|
|
155
218
|
version
|
|
156
|
-
} of workspacePackages)
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
219
|
+
} of workspacePackages) {
|
|
220
|
+
if (pkg.dependencies?.[name] === "workspace:*") {
|
|
221
|
+
pkg.dependencies[name] = `^${version}`;
|
|
222
|
+
}
|
|
223
|
+
if (pkg.devDependencies?.[name] === "workspace:*") {
|
|
224
|
+
pkg.devDependencies[name] = `^${version}`;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
delete pkg.workspaces;
|
|
228
|
+
writeFileSync(packagePath, JSON.stringify(pkg, null, 2) + "\n", "utf-8");
|
|
229
|
+
rmSync(packagesDir, {
|
|
230
|
+
recursive: true,
|
|
231
|
+
force: true
|
|
161
232
|
});
|
|
162
233
|
try {
|
|
163
234
|
execSync("bun install", {
|
|
@@ -166,19 +237,19 @@ async function ejectFromMonorepo(cwd, options = {}) {
|
|
|
166
237
|
});
|
|
167
238
|
} catch {
|
|
168
239
|
return {
|
|
169
|
-
success:
|
|
240
|
+
success: false,
|
|
170
241
|
error: 'failed to install published packages. package.json was modified but install failed. try running "bun install" manually, or restore from git.',
|
|
171
242
|
packages: workspacePackages
|
|
172
243
|
};
|
|
173
244
|
}
|
|
174
245
|
return {
|
|
175
|
-
success:
|
|
246
|
+
success: true,
|
|
176
247
|
packages: workspacePackages,
|
|
177
248
|
warnings: warnings.length > 0 ? warnings : void 0
|
|
178
249
|
};
|
|
179
250
|
} catch (error) {
|
|
180
251
|
return {
|
|
181
|
-
success:
|
|
252
|
+
success: false,
|
|
182
253
|
error: error instanceof Error ? error.message : "Unknown error"
|
|
183
254
|
};
|
|
184
255
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["execSync","existsSync","readdirSync","readFileSync","rmSync","writeFileSync","join","updatePackageJson","cwd","updates","packagePath","success","error","content","pkg","JSON","parse","name","description","stringify","Error","message","updateAppConfig","configPath","replace","slug","bundleId","checkOnboarded","takeout","onboarded","markOnboarded","updatePackageJsonEnv","platform","env","DEPLOY_HOST","DEPLOY_USER","DEPLOY_SSH_KEY","CLOUDFLARE_API_TOKEN","AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","ejectFromMonorepo","options","dryRun","packagesDir","warnings","workspaces","workspacePackages","entries","withFileTypes","entry","isDirectory","pkgJsonPath","pkgJson","version","push","length","unresolvedDeps","allDeps","dependencies","devDependencies","Object","find","p","packages","recursive","force","stdio"],"sources":["../../../src/utils/files.ts"],"sourcesContent":[null],"mappings":"AAIA,SAASA,QAAA,QAAgB;AACzB,SAASC,UAAA,EAAYC,WAAA,EAAaC,YAAA,EAAcC,MAAA,EAAQC,aAAA,QAAqB;AAC7E,SAASC,IAAA,QAAY;AAEd,SAASC,kBACdC,GAAA,EACAC,OAAA,EACsC;EACtC,MAAMC,WAAA,GAAcJ,IAAA,CAAKE,GAAA,EAAK,cAAc;EAE5C,IAAI,CAACP,UAAA,CAAWS,WAAW,
|
|
1
|
+
{"version":3,"names":["execSync","existsSync","readdirSync","readFileSync","rmSync","writeFileSync","join","updatePackageJson","cwd","updates","packagePath","success","error","content","pkg","JSON","parse","name","description","stringify","Error","message","updateAppConfig","configPath","replace","slug","bundleId","checkOnboarded","takeout","onboarded","markOnboarded","updatePackageJsonEnv","platform","env","DEPLOY_HOST","DEPLOY_USER","DEPLOY_SSH_KEY","CLOUDFLARE_API_TOKEN","AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","ejectFromMonorepo","options","dryRun","packagesDir","warnings","workspaces","workspacePackages","entries","withFileTypes","entry","isDirectory","pkgJsonPath","pkgJson","version","push","e","length","unresolvedDeps","allDeps","dependencies","devDependencies","Object","found","find","p","packages","recursive","force","stdio"],"sources":["../../../src/utils/files.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
2
|
import { cpus } from "node:os";
|
|
3
3
|
const colors = ["\x1B[36m",
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
4
|
+
// Cyan
|
|
5
|
+
"\x1B[35m",
|
|
6
|
+
// Magenta
|
|
7
|
+
"\x1B[33m",
|
|
8
|
+
// Yellow
|
|
9
|
+
"\x1B[32m",
|
|
10
|
+
// Green
|
|
11
|
+
"\x1B[34m",
|
|
12
|
+
// Blue
|
|
13
|
+
"\x1B[31m",
|
|
14
|
+
// Red
|
|
15
|
+
"\x1B[90m"
|
|
16
|
+
// Gray
|
|
17
|
+
];
|
|
18
|
+
const reset = "\x1B[0m";
|
|
19
19
|
function isBunShellNoise(line) {
|
|
20
20
|
const stripped = line.replace(/\x1b\[[0-9;]*m/g, "").trim();
|
|
21
21
|
return stripped.startsWith("ShellError:") || stripped.startsWith("exitCode:") || stripped.startsWith("stdout:") || stripped.startsWith("stderr:") || stripped.startsWith("at ShellPromise") || stripped.startsWith("at BunShell") || stripped.startsWith("Bun v") || /^\d+\s*\|/.test(stripped) ||
|
|
@@ -23,21 +23,29 @@ function isBunShellNoise(line) {
|
|
|
23
23
|
/^\s*\^$/.test(stripped);
|
|
24
24
|
}
|
|
25
25
|
const spawnedProcesses = [];
|
|
26
|
-
let cleaning =
|
|
26
|
+
let cleaning = false;
|
|
27
27
|
function killAllProcessGroups(signal = "SIGTERM") {
|
|
28
|
-
for (const proc of spawnedProcesses)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
for (const proc of spawnedProcesses) {
|
|
29
|
+
if (proc.pid) {
|
|
30
|
+
try {
|
|
31
|
+
process.kill(-proc.pid, signal);
|
|
32
|
+
} catch (_) {
|
|
33
|
+
try {
|
|
34
|
+
process.kill(proc.pid, signal);
|
|
35
|
+
} catch (_2) {}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
34
38
|
}
|
|
35
39
|
}
|
|
36
40
|
function cleanupAndExit() {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
+
if (cleaning) return;
|
|
42
|
+
cleaning = true;
|
|
43
|
+
process.stdout.write("\n\x1B[0m");
|
|
44
|
+
killAllProcessGroups("SIGTERM");
|
|
45
|
+
setTimeout(() => {
|
|
46
|
+
killAllProcessGroups("SIGKILL");
|
|
47
|
+
process.exit(0);
|
|
48
|
+
}, 150);
|
|
41
49
|
}
|
|
42
50
|
process.on("SIGINT", cleanupAndExit);
|
|
43
51
|
process.on("SIGTERM", cleanupAndExit);
|
|
@@ -47,56 +55,96 @@ async function runScriptsInParallel(scripts, options = {}) {
|
|
|
47
55
|
onError = "exit",
|
|
48
56
|
maxParallelism = cpus().length
|
|
49
57
|
} = options;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
58
|
+
if (title) {
|
|
59
|
+
console.info();
|
|
60
|
+
console.info(title);
|
|
61
|
+
console.info();
|
|
62
|
+
}
|
|
63
|
+
const allPromises = [];
|
|
64
|
+
const executing = /* @__PURE__ */new Set();
|
|
53
65
|
for (let i = 0; i < scripts.length; i++) {
|
|
54
|
-
const script = scripts[i]
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
allPromises.push(scriptPromise)
|
|
66
|
+
const script = scripts[i];
|
|
67
|
+
const scriptPromise = runSingleScript(script, i).finally(() => {
|
|
68
|
+
executing.delete(scriptPromise);
|
|
69
|
+
});
|
|
70
|
+
allPromises.push(scriptPromise);
|
|
71
|
+
executing.add(scriptPromise);
|
|
72
|
+
if (executing.size >= maxParallelism) {
|
|
73
|
+
await Promise.race(executing);
|
|
74
|
+
}
|
|
59
75
|
}
|
|
60
|
-
const
|
|
61
|
-
failures.
|
|
76
|
+
const settledResults = await Promise.allSettled(allPromises);
|
|
77
|
+
const failures = settledResults.filter(r => r.status === "rejected");
|
|
78
|
+
if (failures.length > 0) {
|
|
79
|
+
console.error(`
|
|
62
80
|
${reset}\x1B[31m\u2717 ${failures.length} script(s) failed${reset}
|
|
63
|
-
`)
|
|
81
|
+
`);
|
|
82
|
+
if (onError === "exit") {
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
} else {
|
|
86
|
+
console.info(`
|
|
64
87
|
${reset}\x1B[32m\u2713 All scripts completed successfully${reset}
|
|
65
88
|
`);
|
|
89
|
+
}
|
|
66
90
|
}
|
|
67
91
|
function runSingleScript(script, colorIndex) {
|
|
68
92
|
return new Promise((resolve, reject) => {
|
|
69
|
-
const color = colors[colorIndex % colors.length]
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
93
|
+
const color = colors[colorIndex % colors.length];
|
|
94
|
+
const prefixLabel = script.name;
|
|
95
|
+
const proc = spawn("bun", [script.path, ...(script.args || [])], {
|
|
96
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
97
|
+
shell: false,
|
|
98
|
+
env: {
|
|
99
|
+
...process.env,
|
|
100
|
+
FORCE_COLOR: "3",
|
|
101
|
+
TKO_IS_RUNNING_ALL: "1"
|
|
102
|
+
},
|
|
103
|
+
detached: true
|
|
104
|
+
});
|
|
81
105
|
spawnedProcesses.push(proc);
|
|
82
106
|
let stderrBuffer = "";
|
|
83
107
|
proc.stdout.on("data", data => {
|
|
84
108
|
if (cleaning) return;
|
|
85
|
-
const lines = data.toString().split(
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
109
|
+
const lines = data.toString().split("\n");
|
|
110
|
+
for (const line of lines) {
|
|
111
|
+
if (line) console.info(`${color}${prefixLabel}${reset} ${line}`);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
proc.stderr.on("data", data => {
|
|
89
115
|
const dataStr = data.toString();
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
for (const line of lines)
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
116
|
+
stderrBuffer += dataStr;
|
|
117
|
+
if (cleaning) return;
|
|
118
|
+
const lines = dataStr.split("\n");
|
|
119
|
+
for (const line of lines) {
|
|
120
|
+
if (line && !isBunShellNoise(line)) {
|
|
121
|
+
console.error(`${color}${prefixLabel}${reset} ${line}`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
proc.on("error", error => {
|
|
126
|
+
console.error(`${color}${prefixLabel}${reset} Failed to start: ${error.message}`);
|
|
127
|
+
reject(error);
|
|
128
|
+
});
|
|
129
|
+
proc.on("close", code => {
|
|
130
|
+
if (cleaning) return;
|
|
131
|
+
if (code && code !== 0) {
|
|
132
|
+
const isBunShellError = stderrBuffer.includes("ShellError") || stderrBuffer.includes("at BunShell");
|
|
133
|
+
if (!isBunShellError) {
|
|
134
|
+
console.error(`${color}${prefixLabel}${reset} Process exited with code ${code}`);
|
|
135
|
+
if (stderrBuffer.trim()) {
|
|
136
|
+
console.error(`
|
|
137
|
+
${color}${prefixLabel}${reset} Error output:`);
|
|
138
|
+
console.error("\x1B[90m" + "\u2500".repeat(80) + "\x1B[0m");
|
|
139
|
+
console.error(stderrBuffer);
|
|
140
|
+
console.error("\x1B[90m" + "\u2500".repeat(80) + "\x1B[0m\n");
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
reject(new Error(`Script ${prefixLabel} failed with code ${code}`));
|
|
144
|
+
} else {
|
|
145
|
+
console.info(`${color}${prefixLabel}${reset} \x1B[32m\u2713 completed${reset}`);
|
|
146
|
+
resolve();
|
|
147
|
+
}
|
|
100
148
|
});
|
|
101
149
|
});
|
|
102
150
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["spawn","cpus","colors","reset","isBunShellNoise","line","stripped","replace","trim","startsWith","test","spawnedProcesses","cleaning","killAllProcessGroups","signal","proc","pid","process","kill","cleanupAndExit","stdout","write","setTimeout","exit","on","runScriptsInParallel","scripts","options","title","onError","maxParallelism","length","console","info","allPromises","executing","Set","i","script","scriptPromise","runSingleScript","finally","delete","push","add","size","Promise","race","
|
|
1
|
+
{"version":3,"names":["spawn","cpus","colors","reset","isBunShellNoise","line","stripped","replace","trim","startsWith","test","spawnedProcesses","cleaning","killAllProcessGroups","signal","proc","pid","process","kill","_","_2","cleanupAndExit","stdout","write","setTimeout","exit","on","runScriptsInParallel","scripts","options","title","onError","maxParallelism","length","console","info","allPromises","executing","Set","i","script","scriptPromise","runSingleScript","finally","delete","push","add","size","Promise","race","settledResults","allSettled","failures","filter","r","status","error","colorIndex","resolve","reject","color","prefixLabel","name","path","args","stdio","shell","env","FORCE_COLOR","TKO_IS_RUNNING_ALL","detached","stderrBuffer","data","lines","toString","split","stderr","dataStr","message","code","isBunShellError","includes","repeat","Error"],"sources":["../../../src/utils/parallel-runner.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|