@gasboost/console 0.4.0 → 0.4.2
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.
|
@@ -6,9 +6,10 @@ export type DevelopmentStatus = {
|
|
|
6
6
|
readonly log: readonly string[];
|
|
7
7
|
};
|
|
8
8
|
type DevelopmentOperation = OperationDefinition<Record<string, never>, DevelopmentStatus>;
|
|
9
|
-
export declare function createDevelopmentOperations({ projectRoot, browserOpener, }: {
|
|
9
|
+
export declare function createDevelopmentOperations({ projectRoot, browserOpener, urlDetectionTimeoutMs, }: {
|
|
10
10
|
readonly projectRoot: string;
|
|
11
11
|
readonly browserOpener?: (url: string) => Promise<void>;
|
|
12
|
+
readonly urlDetectionTimeoutMs?: number;
|
|
12
13
|
}): {
|
|
13
14
|
readonly operations: readonly DevelopmentOperation[];
|
|
14
15
|
readonly cleanup: () => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"developmentOperations.d.ts","sourceRoot":"","sources":["../../src/development/developmentOperations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAOrE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC,CAAC;AAEF,KAAK,oBAAoB,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAM1F,wBAAgB,2BAA2B,CAAC,EAC1C,WAAW,EACX,aAA2B,
|
|
1
|
+
{"version":3,"file":"developmentOperations.d.ts","sourceRoot":"","sources":["../../src/development/developmentOperations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAOrE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC,CAAC;AAEF,KAAK,oBAAoB,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAM1F,wBAAgB,2BAA2B,CAAC,EAC1C,WAAW,EACX,aAA2B,EAC3B,qBAA4B,GAC7B,EAAE;IACD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CACzC,GAAG;IACF,QAAQ,CAAC,UAAU,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC,CAmEA"}
|
|
@@ -6,8 +6,8 @@ import { openBrowser } from "../openBrowser.js";
|
|
|
6
6
|
const emptyInput = z.object({}).strict();
|
|
7
7
|
const MAX_LOG_LINES = 200;
|
|
8
8
|
const LOCAL_URL_PATTERN = /https?:\/\/(?:localhost|127\.0\.0\.1|\[::1\])(?::\d+)?[^\s"'<>)]*/;
|
|
9
|
-
export function createDevelopmentOperations({ projectRoot, browserOpener = openBrowser, }) {
|
|
10
|
-
const manager = new DevelopmentProcessManager(projectRoot, browserOpener);
|
|
9
|
+
export function createDevelopmentOperations({ projectRoot, browserOpener = openBrowser, urlDetectionTimeoutMs = 5000, }) {
|
|
10
|
+
const manager = new DevelopmentProcessManager(projectRoot, browserOpener, urlDetectionTimeoutMs);
|
|
11
11
|
return {
|
|
12
12
|
cleanup: async () => {
|
|
13
13
|
await manager.stop();
|
|
@@ -72,13 +72,16 @@ export function createDevelopmentOperations({ projectRoot, browserOpener = openB
|
|
|
72
72
|
class DevelopmentProcessManager {
|
|
73
73
|
projectRoot;
|
|
74
74
|
browserOpener;
|
|
75
|
+
urlDetectionTimeoutMs;
|
|
75
76
|
child;
|
|
76
77
|
command;
|
|
77
78
|
localUrl;
|
|
78
79
|
logLines = [];
|
|
79
|
-
|
|
80
|
+
statusWaiters = new Set();
|
|
81
|
+
constructor(projectRoot, browserOpener, urlDetectionTimeoutMs) {
|
|
80
82
|
this.projectRoot = projectRoot;
|
|
81
83
|
this.browserOpener = browserOpener;
|
|
84
|
+
this.urlDetectionTimeoutMs = urlDetectionTimeoutMs;
|
|
82
85
|
}
|
|
83
86
|
status() {
|
|
84
87
|
return {
|
|
@@ -110,12 +113,14 @@ class DevelopmentProcessManager {
|
|
|
110
113
|
});
|
|
111
114
|
this.child = child;
|
|
112
115
|
const handleOutput = (chunk) => {
|
|
113
|
-
const text = chunk.toString("utf8");
|
|
116
|
+
const text = stripAnsi(chunk.toString("utf8"));
|
|
114
117
|
const url = LOCAL_URL_PATTERN.exec(text)?.[0];
|
|
115
|
-
if (url !== undefined)
|
|
118
|
+
if (url !== undefined) {
|
|
116
119
|
this.localUrl = normalizeLocalUrl(url);
|
|
120
|
+
this.notifyStatusWaiters();
|
|
121
|
+
}
|
|
117
122
|
for (const line of text.split(/\r?\n/)) {
|
|
118
|
-
const trimmed =
|
|
123
|
+
const trimmed = line.trimEnd();
|
|
119
124
|
if (trimmed.length === 0)
|
|
120
125
|
continue;
|
|
121
126
|
this.record(trimmed);
|
|
@@ -129,6 +134,7 @@ class DevelopmentProcessManager {
|
|
|
129
134
|
if (this.child === child) {
|
|
130
135
|
this.child = undefined;
|
|
131
136
|
this.localUrl = undefined;
|
|
137
|
+
this.notifyStatusWaiters();
|
|
132
138
|
}
|
|
133
139
|
});
|
|
134
140
|
child.once("error", (error) => {
|
|
@@ -136,8 +142,10 @@ class DevelopmentProcessManager {
|
|
|
136
142
|
if (this.child === child) {
|
|
137
143
|
this.child = undefined;
|
|
138
144
|
this.localUrl = undefined;
|
|
145
|
+
this.notifyStatusWaiters();
|
|
139
146
|
}
|
|
140
147
|
});
|
|
148
|
+
await this.waitForLocalUrlOrStop(child);
|
|
141
149
|
return this.status();
|
|
142
150
|
}
|
|
143
151
|
async stop() {
|
|
@@ -146,6 +154,7 @@ class DevelopmentProcessManager {
|
|
|
146
154
|
return this.status();
|
|
147
155
|
this.child = undefined;
|
|
148
156
|
this.localUrl = undefined;
|
|
157
|
+
this.notifyStatusWaiters();
|
|
149
158
|
let exited = false;
|
|
150
159
|
child.once("exit", () => {
|
|
151
160
|
exited = true;
|
|
@@ -173,6 +182,25 @@ class DevelopmentProcessManager {
|
|
|
173
182
|
this.logLines.splice(0, this.logLines.length - MAX_LOG_LINES);
|
|
174
183
|
}
|
|
175
184
|
}
|
|
185
|
+
async waitForLocalUrlOrStop(child) {
|
|
186
|
+
if (this.localUrl !== undefined || this.child !== child)
|
|
187
|
+
return;
|
|
188
|
+
await new Promise((resolve) => {
|
|
189
|
+
const waiter = () => {
|
|
190
|
+
clearTimeout(timeout);
|
|
191
|
+
this.statusWaiters.delete(waiter);
|
|
192
|
+
resolve();
|
|
193
|
+
};
|
|
194
|
+
const timeout = setTimeout(waiter, this.urlDetectionTimeoutMs);
|
|
195
|
+
this.statusWaiters.add(waiter);
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
notifyStatusWaiters() {
|
|
199
|
+
const waiters = [...this.statusWaiters];
|
|
200
|
+
this.statusWaiters.clear();
|
|
201
|
+
for (const waiter of waiters)
|
|
202
|
+
waiter();
|
|
203
|
+
}
|
|
176
204
|
}
|
|
177
205
|
async function resolveDevCommand(projectRoot) {
|
|
178
206
|
const packageJson = JSON.parse(await readFile(join(projectRoot, "package.json"), "utf8"));
|
|
@@ -189,7 +217,8 @@ async function resolveDevCommand(projectRoot) {
|
|
|
189
217
|
return { executable: "npm", args: ["run", "dev"] };
|
|
190
218
|
}
|
|
191
219
|
function normalizeLocalUrl(url) {
|
|
192
|
-
|
|
220
|
+
const parsed = new URL(url);
|
|
221
|
+
return parsed.toString();
|
|
193
222
|
}
|
|
194
223
|
function stripAnsi(value) {
|
|
195
224
|
return value.replace(/\u001b\[[0-9;]*m/g, "");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"developmentOperations.js","sourceRoot":"","sources":["../../src/development/developmentOperations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAuC,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAWhD,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AACzC,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,iBAAiB,GAAG,mEAAmE,CAAC;AAE9F,MAAM,UAAU,2BAA2B,CAAC,EAC1C,WAAW,EACX,aAAa,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"developmentOperations.js","sourceRoot":"","sources":["../../src/development/developmentOperations.ts"],"names":[],"mappings":"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"}
|