flingit 0.0.14 → 0.0.15
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/cli/commands/dev.d.ts +1 -0
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +344 -86
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +9 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/push.d.ts.map +1 -1
- package/dist/cli/commands/push.js +3 -1
- package/dist/cli/commands/push.js.map +1 -1
- package/dist/cli/utils/cli-io-impl.d.ts.map +1 -1
- package/dist/cli/utils/cli-io-impl.js +4 -0
- package/dist/cli/utils/cli-io-impl.js.map +1 -1
- package/dist/cli/utils/cli-io.d.ts +2 -0
- package/dist/cli/utils/cli-io.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/default/.claude/settings.local.json +1 -0
- package/templates/default/CLAUDE.md +2 -314
- package/templates/default/skills/fling/.hash +1 -1
- package/templates/default/skills/fling/API.md +30 -1
- package/templates/default/skills/fling/SKILL.md +92 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/dev.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/dev.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAoBhD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAqnB1E;AAED,eAAO,MAAM,UAAU,SAgCnB,CAAC"}
|
package/dist/cli/commands/dev.js
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { Command } from "commander";
|
|
14
14
|
import { join, dirname } from "node:path";
|
|
15
|
+
import { createServer as createNetServer } from "node:net";
|
|
15
16
|
import { wasmPlugin } from "../deploy/bundler.js";
|
|
16
17
|
import { createDefaultDevIO } from "../utils/cli-io-impl.js";
|
|
17
18
|
/**
|
|
@@ -21,6 +22,69 @@ import { createDefaultDevIO } from "../utils/cli-io-impl.js";
|
|
|
21
22
|
export async function runDev(options, io) {
|
|
22
23
|
const cwd = io.process.cwd();
|
|
23
24
|
const port = parseInt(options.port, 10);
|
|
25
|
+
const verbose = options.verbose ?? false;
|
|
26
|
+
const useProcessGroup = io.process.platform === "darwin";
|
|
27
|
+
const PORT_WAIT_INTERVAL_MS = 200;
|
|
28
|
+
const PORT_WAIT_WARN_AFTER_MS = 5000;
|
|
29
|
+
const PORT_WAIT_TIMEOUT_MS = 10000;
|
|
30
|
+
// Debug logging helper - only logs if verbose is enabled
|
|
31
|
+
const debug = (msg) => {
|
|
32
|
+
if (verbose) {
|
|
33
|
+
const iso = new Date().toISOString();
|
|
34
|
+
const timestamp = iso.slice(iso.indexOf("T") + 1, iso.indexOf("T") + 13);
|
|
35
|
+
io.console.log(`[debug ${timestamp}] ${msg}`);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const sleep = (ms) => new Promise((resolve) => {
|
|
39
|
+
setTimeout(resolve, ms);
|
|
40
|
+
});
|
|
41
|
+
async function isPortFree(portToCheck) {
|
|
42
|
+
return await new Promise((resolve) => {
|
|
43
|
+
const server = createNetServer();
|
|
44
|
+
server.once("error", (err) => {
|
|
45
|
+
server.close();
|
|
46
|
+
if (err.code !== "EADDRINUSE") {
|
|
47
|
+
debug(`port check error: ${err.message}`);
|
|
48
|
+
}
|
|
49
|
+
resolve(false);
|
|
50
|
+
});
|
|
51
|
+
server.once("listening", () => {
|
|
52
|
+
server.close(() => {
|
|
53
|
+
resolve(true);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
server.listen(portToCheck);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
async function waitForPortFreeOrTimeout(expectedWorker) {
|
|
60
|
+
const startWait = Date.now();
|
|
61
|
+
let warned = false;
|
|
62
|
+
for (;;) {
|
|
63
|
+
if (workerState.status !== "restarting") {
|
|
64
|
+
debug(`state changed during wait (now ${workerState.status}), not spawning`);
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
if (workerState.process !== expectedWorker) {
|
|
68
|
+
debug(`state changed during wait (now ${workerState.status}), not spawning`);
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
const free = await isPortFree(port);
|
|
72
|
+
if (free)
|
|
73
|
+
return true;
|
|
74
|
+
const now = Date.now();
|
|
75
|
+
if (now - startWait >= PORT_WAIT_TIMEOUT_MS) {
|
|
76
|
+
io.console.error(`[worker] Port ${port} still in use after ${Math.round(PORT_WAIT_TIMEOUT_MS / 1000)}s. Backend restart aborted.`);
|
|
77
|
+
io.console.error(`[worker] Free the port and press Enter to retry.`);
|
|
78
|
+
workerState = { status: "idle" };
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
if (!warned && now - startWait >= PORT_WAIT_WARN_AFTER_MS) {
|
|
82
|
+
io.console.warn(`[worker] Port ${port} still in use after ${Math.round((now - startWait) / 1000)}s - waiting...`);
|
|
83
|
+
warned = true;
|
|
84
|
+
}
|
|
85
|
+
await sleep(PORT_WAIT_INTERVAL_MS);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
24
88
|
// Check if project is initialized
|
|
25
89
|
if (!io.file.exists(join(cwd, ".fling"))) {
|
|
26
90
|
io.console.error("Error: Not a Fling project. Run 'fling init' first.");
|
|
@@ -34,10 +98,9 @@ export async function runDev(options, io) {
|
|
|
34
98
|
io.process.exit(1);
|
|
35
99
|
}
|
|
36
100
|
io.console.log("Starting Fling development server...\n");
|
|
37
|
-
let
|
|
101
|
+
let workerState = { status: "idle" };
|
|
38
102
|
let viteProcess = null;
|
|
39
103
|
let buildContext = null;
|
|
40
|
-
let isShuttingDown = false;
|
|
41
104
|
// Create temp directory for bundled output and entry file
|
|
42
105
|
const tempDir = join(cwd, ".fling", ".dev-bundle");
|
|
43
106
|
io.file.mkdir(tempDir, { recursive: true });
|
|
@@ -52,14 +115,30 @@ export async function runDev(options, io) {
|
|
|
52
115
|
const migratePath = join(runtimeDir, "runtime", "migrate.js");
|
|
53
116
|
const cronPath = join(runtimeDir, "runtime", "cron.js");
|
|
54
117
|
const logPath = join(runtimeDir, "runtime", "log.js");
|
|
55
|
-
const entryCode =
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
118
|
+
const entryCode = buildWorkerEntry({
|
|
119
|
+
appPath,
|
|
120
|
+
cronPath,
|
|
121
|
+
honoNodeServerPath,
|
|
122
|
+
logPath,
|
|
123
|
+
migratePath,
|
|
124
|
+
nodeRuntimePath,
|
|
125
|
+
port,
|
|
126
|
+
});
|
|
127
|
+
function buildWorkerEntry(paths) {
|
|
128
|
+
return `
|
|
129
|
+
import { createServer } from "node:http";
|
|
130
|
+
import { getRequestListener } from "${paths.honoNodeServerPath}";
|
|
131
|
+
import { app, db, secrets } from "${paths.nodeRuntimePath}";
|
|
132
|
+
import { runMigrations } from "${paths.migratePath}";
|
|
133
|
+
import { startCronJobs, getCronJobs, stopCronJobs } from "${paths.cronPath}";
|
|
134
|
+
import { closeLogDatabase } from "${paths.logPath}";
|
|
61
135
|
// Import the user's app - this registers routes, cron jobs, and migrations
|
|
62
|
-
import "${appPath}";
|
|
136
|
+
import "${paths.appPath}";
|
|
137
|
+
|
|
138
|
+
const verbose = process.env["FLING_DEV_VERBOSE"] === "1";
|
|
139
|
+
if (verbose) {
|
|
140
|
+
console.log("[worker] PID " + process.pid + " (ppid " + process.ppid + ")");
|
|
141
|
+
}
|
|
63
142
|
|
|
64
143
|
// Run migrations
|
|
65
144
|
await runMigrations();
|
|
@@ -71,38 +150,154 @@ if (cronJobs.size > 0) {
|
|
|
71
150
|
console.log("[worker] Cron jobs: " + cronJobs.size + " registered");
|
|
72
151
|
}
|
|
73
152
|
|
|
74
|
-
//
|
|
153
|
+
// Start HTTP server with retry logic for EADDRINUSE
|
|
154
|
+
const PORT = ${paths.port};
|
|
155
|
+
const MAX_RETRIES = 10;
|
|
156
|
+
const RETRY_DELAY_MS = 500;
|
|
157
|
+
|
|
158
|
+
let server;
|
|
159
|
+
let retryCount = 0;
|
|
160
|
+
|
|
161
|
+
function startServer() {
|
|
162
|
+
server = createServer(getRequestListener(app.fetch));
|
|
163
|
+
|
|
164
|
+
server.on("error", (err) => {
|
|
165
|
+
if (err.code === "EADDRINUSE" && retryCount < MAX_RETRIES) {
|
|
166
|
+
retryCount++;
|
|
167
|
+
console.log("[worker] Port " + PORT + " in use, retrying in " + RETRY_DELAY_MS + "ms... (attempt " + retryCount + "/" + MAX_RETRIES + ")");
|
|
168
|
+
setTimeout(startServer, RETRY_DELAY_MS);
|
|
169
|
+
} else {
|
|
170
|
+
console.error("[worker] Failed to start server:", err.message);
|
|
171
|
+
process.exit(1);
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
server.listen(PORT, () => {
|
|
176
|
+
console.log("[worker] API server: http://localhost:" + PORT);
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
startServer();
|
|
181
|
+
|
|
182
|
+
// Graceful shutdown handler - close server first to release port
|
|
75
183
|
const shutdown = () => {
|
|
76
184
|
console.log("[worker] Shutting down...");
|
|
77
185
|
stopCronJobs();
|
|
78
186
|
closeLogDatabase();
|
|
79
|
-
|
|
187
|
+
if (server) {
|
|
188
|
+
server.close(() => {
|
|
189
|
+
process.exit(0);
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
// Force exit after 1s if server.close() hangs
|
|
193
|
+
setTimeout(() => process.exit(0), 1000);
|
|
80
194
|
};
|
|
81
195
|
|
|
82
196
|
process.on("SIGINT", shutdown);
|
|
83
197
|
process.on("SIGTERM", shutdown);
|
|
84
|
-
|
|
85
|
-
// Start HTTP server
|
|
86
|
-
console.log("[worker] API server: http://localhost:${port}");
|
|
87
|
-
|
|
88
|
-
serve({
|
|
89
|
-
fetch: app.fetch,
|
|
90
|
-
port: ${port},
|
|
91
|
-
});
|
|
92
198
|
`;
|
|
199
|
+
}
|
|
93
200
|
// Write entry file (using a file instead of stdin enables proper watch mode)
|
|
94
201
|
io.file.writeFileString(entryPath, entryCode);
|
|
95
|
-
//
|
|
96
|
-
function
|
|
202
|
+
// Handle worker process close events based on current state
|
|
203
|
+
function handleWorkerClose(worker, code) {
|
|
204
|
+
debug(`close event: pid=${worker.pid}, code=${code}, state=${workerState.status}`);
|
|
205
|
+
switch (workerState.status) {
|
|
206
|
+
case "restarting":
|
|
207
|
+
if (workerState.process === worker) {
|
|
208
|
+
debug(`close matches restarting process, waiting for port release...`);
|
|
209
|
+
clearTimeout(workerState.killTimeout);
|
|
210
|
+
void (async () => {
|
|
211
|
+
const free = await waitForPortFreeOrTimeout(worker);
|
|
212
|
+
if (!free)
|
|
213
|
+
return;
|
|
214
|
+
debug(`port release confirmed, spawning new worker`);
|
|
215
|
+
workerState = { status: "running", process: spawnWorker() };
|
|
216
|
+
})();
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
debug(`close does NOT match restarting process (stale event), ignoring`);
|
|
220
|
+
}
|
|
221
|
+
break;
|
|
222
|
+
case "running":
|
|
223
|
+
if (workerState.process === worker) {
|
|
224
|
+
if (code !== 0 && code !== null) {
|
|
225
|
+
// Worker crashed - retry after 1s delay
|
|
226
|
+
debug(`worker crashed with code ${code}, retrying in 1s...`);
|
|
227
|
+
io.console.error(`[worker] Backend server exited with code ${code}, retrying in 1s...`);
|
|
228
|
+
setTimeout(() => {
|
|
229
|
+
if (workerState.status === "idle") {
|
|
230
|
+
debug(`retry timer fired, respawning worker`);
|
|
231
|
+
io.console.log("[worker] Retrying...");
|
|
232
|
+
workerState = { status: "running", process: spawnWorker() };
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
debug(`retry timer fired but state is ${workerState.status}, not respawning`);
|
|
236
|
+
}
|
|
237
|
+
}, 1000);
|
|
238
|
+
workerState = { status: "idle" };
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
debug(`close matches running process (clean exit), transitioning to idle`);
|
|
242
|
+
workerState = { status: "idle" };
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
debug(`close does NOT match running process (stale event), ignoring`);
|
|
247
|
+
}
|
|
248
|
+
break;
|
|
249
|
+
case "shuttingDown":
|
|
250
|
+
debug(`close during shutdown, ignoring`);
|
|
251
|
+
// Expected - don't respawn
|
|
252
|
+
break;
|
|
253
|
+
case "idle":
|
|
254
|
+
case "starting":
|
|
255
|
+
debug(`close in ${workerState.status} state (stale event), ignoring`);
|
|
256
|
+
// Stale close event - ignore
|
|
257
|
+
break;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
const RESTART_KILL_TIMEOUT_MS = 2000;
|
|
261
|
+
// Function to kill a process (and process group on macOS)
|
|
262
|
+
function killProcess(proc, signal) {
|
|
263
|
+
const pid = proc.pid;
|
|
264
|
+
if (!pid)
|
|
265
|
+
return;
|
|
266
|
+
if (useProcessGroup) {
|
|
267
|
+
debug(`killing process group for pid=${pid} with ${signal}`);
|
|
268
|
+
try {
|
|
269
|
+
// Kill the process group (negative PID kills the group)
|
|
270
|
+
io.process.kill(-pid, signal);
|
|
271
|
+
debug(`sent ${signal} to process group -${pid}`);
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
catch {
|
|
275
|
+
debug(`process group kill failed, trying direct kill`);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
debug(`killing pid=${pid} with ${signal}`);
|
|
279
|
+
try {
|
|
280
|
+
proc.kill(signal);
|
|
281
|
+
debug(`sent ${signal} to pid=${pid}`);
|
|
282
|
+
}
|
|
283
|
+
catch {
|
|
284
|
+
debug(`kill failed (process already dead?)`);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
function spawnWorkerProcess() {
|
|
288
|
+
debug(`spawning worker...`);
|
|
97
289
|
const worker = io.spawn(io.process.execPath, [bundlePath], {
|
|
98
290
|
cwd,
|
|
99
291
|
stdio: ["inherit", "pipe", "pipe"],
|
|
292
|
+
detached: useProcessGroup, // Create new process group on macOS
|
|
100
293
|
env: {
|
|
101
294
|
...io.process.env,
|
|
102
295
|
PROJECT_DIR: cwd,
|
|
103
296
|
FORCE_COLOR: "1",
|
|
297
|
+
FLING_DEV_VERBOSE: verbose ? "1" : undefined,
|
|
104
298
|
},
|
|
105
299
|
});
|
|
300
|
+
debug(`spawned worker pid=${worker.pid}${useProcessGroup ? " (detached, new process group)" : ""}`);
|
|
106
301
|
worker.stdout?.on("data", (data) => {
|
|
107
302
|
const lines = data.toString().split("\n").filter(Boolean);
|
|
108
303
|
for (const line of lines) {
|
|
@@ -116,44 +311,41 @@ serve({
|
|
|
116
311
|
}
|
|
117
312
|
});
|
|
118
313
|
worker.on("error", (error) => {
|
|
119
|
-
|
|
314
|
+
debug(`worker error: pid=${worker.pid}, error=${error.message}`);
|
|
315
|
+
io.console.error("Could not start backend worker: " + error.message);
|
|
316
|
+
// Spawn failed - go back to idle so next build can retry
|
|
317
|
+
if (workerState.status === "running" && workerState.process === worker) {
|
|
318
|
+
workerState = { status: "idle" };
|
|
319
|
+
}
|
|
120
320
|
});
|
|
121
321
|
worker.on("close", (code) => {
|
|
122
|
-
|
|
123
|
-
// (it might have been replaced during a restart)
|
|
124
|
-
if (workerProcess === worker) {
|
|
125
|
-
workerProcess = null;
|
|
126
|
-
}
|
|
127
|
-
if (!isShuttingDown && code !== 0 && code !== null) {
|
|
128
|
-
io.console.error(`\n[worker] Backend server exited with code ${code}`);
|
|
129
|
-
}
|
|
322
|
+
handleWorkerClose(worker, code);
|
|
130
323
|
});
|
|
131
324
|
return worker;
|
|
132
325
|
}
|
|
133
|
-
// Function to
|
|
326
|
+
// Function to spawn the bundled worker
|
|
327
|
+
function spawnWorker() {
|
|
328
|
+
return spawnWorkerProcess();
|
|
329
|
+
}
|
|
330
|
+
// Function to rebuild and restart the worker (triggered by Enter key)
|
|
331
|
+
// Simplified: just trigger rebuild, let onEnd handle the restart logic
|
|
134
332
|
async function rebuildAndRestart() {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
if (
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
await new Promise((resolve) => {
|
|
141
|
-
oldProcess.once("close", resolve);
|
|
142
|
-
oldProcess.kill("SIGTERM");
|
|
143
|
-
});
|
|
333
|
+
if (workerState.status === "shuttingDown")
|
|
334
|
+
return;
|
|
335
|
+
if (workerState.status === "restarting") {
|
|
336
|
+
io.console.log("[worker] Already restarting...");
|
|
337
|
+
return;
|
|
144
338
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
339
|
+
io.console.log("[worker] Rebuilding...");
|
|
340
|
+
// Just trigger rebuild - onEnd will handle the restart
|
|
341
|
+
if (buildContext) {
|
|
342
|
+
try {
|
|
148
343
|
await buildContext.rebuild();
|
|
149
344
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
catch (error) {
|
|
155
|
-
io.console.error("[worker] Build failed:" +
|
|
156
|
-
(error instanceof Error ? error.message : String(error)));
|
|
345
|
+
catch (error) {
|
|
346
|
+
io.console.error("[worker] Rebuild failed: " +
|
|
347
|
+
(error instanceof Error ? error.message : String(error)));
|
|
348
|
+
}
|
|
157
349
|
}
|
|
158
350
|
}
|
|
159
351
|
// Create esbuild context with watch mode
|
|
@@ -185,53 +377,92 @@ serve({
|
|
|
185
377
|
plugins: [
|
|
186
378
|
wasmPlugin,
|
|
187
379
|
{
|
|
188
|
-
// Watch plugin -
|
|
380
|
+
// Watch plugin - THE ONLY PLACE THAT SPAWNS WORKERS (except close handler respawns)
|
|
189
381
|
name: "watch-rebuild",
|
|
190
382
|
setup(build) {
|
|
191
|
-
let buildCount = 0;
|
|
192
383
|
build.onEnd((result) => {
|
|
193
|
-
|
|
194
|
-
io.console.log(`[worker] Build #${buildCount} completed`);
|
|
384
|
+
debug(`onEnd: state=${workerState.status}, errors=${result.errors.length}`);
|
|
195
385
|
if (result.errors.length > 0) {
|
|
196
|
-
|
|
386
|
+
// Format errors nicely - esbuild provides formatted text
|
|
387
|
+
for (const error of result.errors) {
|
|
388
|
+
const location = error.location
|
|
389
|
+
? `${error.location.file}:${error.location.line}:${error.location.column}: `
|
|
390
|
+
: "";
|
|
391
|
+
io.console.error(`[worker] Build error: ${location}${error.text}`);
|
|
392
|
+
}
|
|
393
|
+
// Don't spawn on build error - stay in current state
|
|
394
|
+
// If "starting", transition to idle so user can fix and retry
|
|
395
|
+
if (workerState.status === "starting") {
|
|
396
|
+
debug(`build error during starting, transitioning to idle`);
|
|
397
|
+
workerState = { status: "idle" };
|
|
398
|
+
}
|
|
197
399
|
return;
|
|
198
400
|
}
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
401
|
+
switch (workerState.status) {
|
|
402
|
+
case "idle":
|
|
403
|
+
// Unexpected - should only be idle after shutdown or error
|
|
404
|
+
debug(`onEnd in idle state (unexpected), spawning worker`);
|
|
405
|
+
io.console.log("[worker] Starting...");
|
|
406
|
+
workerState = { status: "running", process: spawnWorker() };
|
|
407
|
+
break;
|
|
408
|
+
case "starting":
|
|
409
|
+
// Initial build complete - spawn first worker
|
|
410
|
+
debug(`onEnd in starting state, spawning first worker`);
|
|
411
|
+
io.console.log("[worker] Starting...");
|
|
412
|
+
workerState = { status: "running", process: spawnWorker() };
|
|
413
|
+
break;
|
|
414
|
+
case "running": {
|
|
415
|
+
// Restart worker with new code - terminate old process (group on macOS)
|
|
416
|
+
const oldProcess = workerState.process;
|
|
417
|
+
debug(`onEnd in running state, killing ${useProcessGroup ? "process group" : "pid"} for pid=${oldProcess.pid}`);
|
|
418
|
+
io.console.log("[worker] Files changed, restarting...");
|
|
419
|
+
// Short timeout for force kill in case SIGTERM doesn't work
|
|
420
|
+
const killTimeout = setTimeout(() => {
|
|
421
|
+
debug(`kill timeout fired, force killing pid=${oldProcess.pid}`);
|
|
422
|
+
io.console.log("[worker] Process not responding, force killing...");
|
|
423
|
+
killProcess(oldProcess, "SIGKILL");
|
|
424
|
+
}, RESTART_KILL_TIMEOUT_MS);
|
|
425
|
+
workerState = { status: "restarting", process: oldProcess, killTimeout };
|
|
426
|
+
killProcess(oldProcess, "SIGTERM");
|
|
427
|
+
break;
|
|
428
|
+
}
|
|
429
|
+
case "restarting": {
|
|
430
|
+
// Already restarting - latest code already in bundle, will be loaded on spawn
|
|
431
|
+
const restartingPid = workerState.process.pid;
|
|
432
|
+
debug(`onEnd in restarting state (pid=${restartingPid}), ignoring`);
|
|
433
|
+
io.console.log("[worker] Already restarting...");
|
|
434
|
+
break;
|
|
435
|
+
}
|
|
436
|
+
case "shuttingDown":
|
|
437
|
+
debug(`onEnd in shuttingDown state, ignoring`);
|
|
438
|
+
// Shutting down - ignore
|
|
439
|
+
break;
|
|
216
440
|
}
|
|
217
441
|
});
|
|
218
442
|
},
|
|
219
443
|
},
|
|
220
444
|
],
|
|
221
445
|
});
|
|
222
|
-
//
|
|
446
|
+
// Set state to "starting" BEFORE rebuild - this prevents Race 1
|
|
447
|
+
// onEnd will see "starting" state and spawn the worker
|
|
448
|
+
workerState = { status: "starting" };
|
|
449
|
+
// Initial build (via watch) - onEnd fires and handles the spawn
|
|
223
450
|
io.console.log("[worker] Initial build...");
|
|
224
|
-
await buildContext.rebuild();
|
|
225
|
-
// Start watching for file changes
|
|
226
451
|
io.console.log("[worker] Starting file watcher...");
|
|
227
|
-
|
|
452
|
+
try {
|
|
453
|
+
await buildContext.watch();
|
|
454
|
+
}
|
|
455
|
+
catch (error) {
|
|
456
|
+
// Watch threw before onEnd could run - reset to idle
|
|
457
|
+
io.console.error("[worker] Initial build failed: " + (error instanceof Error ? error.message : String(error)));
|
|
458
|
+
workerState = { status: "idle" };
|
|
459
|
+
throw error; // Re-throw to exit runDev
|
|
460
|
+
}
|
|
461
|
+
// Note: state is now "running" because onEnd already spawned the worker
|
|
228
462
|
io.console.log("[worker] File watcher active");
|
|
229
|
-
// Start the worker
|
|
230
|
-
io.console.log("[worker] Starting...");
|
|
231
|
-
workerProcess = spawnWorker();
|
|
232
463
|
}
|
|
233
464
|
catch (error) {
|
|
234
|
-
io.console.error("Failed to setup build:" +
|
|
465
|
+
io.console.error("Failed to setup build: " +
|
|
235
466
|
(error instanceof Error ? error.message : String(error)));
|
|
236
467
|
io.process.exit(1);
|
|
237
468
|
}
|
|
@@ -266,7 +497,7 @@ serve({
|
|
|
266
497
|
io.console.error("To fix Vite, ensure dependencies are installed: npm install");
|
|
267
498
|
});
|
|
268
499
|
vite.on("close", (code) => {
|
|
269
|
-
if (
|
|
500
|
+
if (workerState.status !== "shuttingDown" && code !== 0 && code !== null) {
|
|
270
501
|
io.console.error(`\n[vite] Process exited with code ${code}`);
|
|
271
502
|
io.console.error("[vite] Check if vite is installed: npm install");
|
|
272
503
|
}
|
|
@@ -276,20 +507,45 @@ serve({
|
|
|
276
507
|
}
|
|
277
508
|
// Graceful shutdown handler
|
|
278
509
|
const shutdown = async () => {
|
|
279
|
-
if (
|
|
510
|
+
if (workerState.status === "shuttingDown")
|
|
280
511
|
return;
|
|
281
|
-
isShuttingDown = true;
|
|
282
512
|
io.console.log("\nShutting down...");
|
|
513
|
+
// Cancel any pending kill timeout
|
|
514
|
+
if (workerState.status === "restarting") {
|
|
515
|
+
clearTimeout(workerState.killTimeout);
|
|
516
|
+
}
|
|
517
|
+
// Get worker process if running
|
|
518
|
+
const workerProcess = workerState.status === "running" || workerState.status === "restarting"
|
|
519
|
+
? workerState.process
|
|
520
|
+
: null;
|
|
521
|
+
workerState = { status: "shuttingDown" };
|
|
283
522
|
// buildContext is guaranteed to be set before shutdown can be called
|
|
284
523
|
await buildContext.dispose();
|
|
524
|
+
// Send SIGTERM (process group on macOS) for graceful cleanup
|
|
285
525
|
if (workerProcess && !workerProcess.killed) {
|
|
286
|
-
workerProcess
|
|
526
|
+
killProcess(workerProcess, "SIGTERM");
|
|
287
527
|
}
|
|
288
528
|
if (viteProcess && !viteProcess.killed) {
|
|
289
|
-
|
|
529
|
+
try {
|
|
530
|
+
viteProcess.kill("SIGTERM");
|
|
531
|
+
}
|
|
532
|
+
catch {
|
|
533
|
+
/* already dead */
|
|
534
|
+
}
|
|
290
535
|
}
|
|
291
|
-
//
|
|
536
|
+
// After 2s, retry force kill and exit
|
|
292
537
|
setTimeout(() => {
|
|
538
|
+
if (workerProcess && !workerProcess.killed) {
|
|
539
|
+
killProcess(workerProcess, "SIGKILL");
|
|
540
|
+
}
|
|
541
|
+
if (viteProcess && !viteProcess.killed) {
|
|
542
|
+
try {
|
|
543
|
+
viteProcess.kill("SIGKILL");
|
|
544
|
+
}
|
|
545
|
+
catch {
|
|
546
|
+
/* already dead */
|
|
547
|
+
}
|
|
548
|
+
}
|
|
293
549
|
io.process.exit(0);
|
|
294
550
|
}, 2000);
|
|
295
551
|
};
|
|
@@ -320,6 +576,7 @@ serve({
|
|
|
320
576
|
export const devCommand = new Command("dev")
|
|
321
577
|
.description("Start the local development server")
|
|
322
578
|
.option("-p, --port <port>", "Port to run on", "3210")
|
|
579
|
+
.option("-v, --verbose", "Enable verbose logging for debugging")
|
|
323
580
|
.addHelpText("after", `
|
|
324
581
|
Prerequisites:
|
|
325
582
|
- Must have run 'fling init' first
|
|
@@ -341,6 +598,7 @@ The servers run until you press Ctrl+C.
|
|
|
341
598
|
Examples:
|
|
342
599
|
fling dev Start on default port 3210
|
|
343
600
|
fling dev -p 8080 Start API on port 8080
|
|
601
|
+
fling dev --verbose Enable debug logging
|
|
344
602
|
`)
|
|
345
603
|
.action(async (options) => {
|
|
346
604
|
await runDev(options, createDefaultDevIO());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../src/cli/commands/dev.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../src/cli/commands/dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CA6I9D;AAED,eAAO,MAAM,WAAW,SAgDpB,CAAC"}
|