@hanzogui/static-worker 8.3.1 → 8.3.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.
- package/dist/cjs/here.js +7 -0
- package/dist/cjs/here.js.map +1 -0
- package/dist/cjs/index.js +362 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/esm/here.js +6 -0
- package/dist/esm/here.js.map +1 -0
- package/dist/esm/index.js +312 -241
- package/dist/esm/index.js.map +1 -1
- package/package.json +19 -12
- package/src/here.cjs.ts +5 -0
- package/src/here.ts +7 -0
- package/src/index.ts +3 -14
- package/types/here.d.ts +3 -0
- package/types/here.d.ts.map +1 -0
- package/types/index.d.ts +1 -1
- package/types/index.d.ts.map +1 -1
- package/dist/cjs/index.cjs +0 -326
- package/dist/esm/index.mjs +0 -278
- package/dist/esm/index.mjs.map +0 -1
package/dist/esm/index.mjs
DELETED
|
@@ -1,278 +0,0 @@
|
|
|
1
|
-
import { fileURLToPath } from "node:url";
|
|
2
|
-
import Piscina from "piscina";
|
|
3
|
-
import * as extractablePathModule from "@hanzogui/static/extractablePath";
|
|
4
|
-
const extractablePath = extractablePathModule.default ?? extractablePathModule;
|
|
5
|
-
const {
|
|
6
|
-
DEFAULT_EXTRACT_PACKAGES,
|
|
7
|
-
installedPackageOf,
|
|
8
|
-
isExtractable
|
|
9
|
-
} = extractablePath;
|
|
10
|
-
const getPragmaOptions = async props => {
|
|
11
|
-
const {
|
|
12
|
-
default: Static
|
|
13
|
-
} = await import("@hanzogui/static");
|
|
14
|
-
return Static.getPragmaOptions(props);
|
|
15
|
-
};
|
|
16
|
-
const getWorkerPath = () => {
|
|
17
|
-
if (typeof import.meta !== "undefined" && import.meta.url) {
|
|
18
|
-
const workerPath = fileURLToPath(import.meta.resolve("@hanzogui/static/worker"));
|
|
19
|
-
return workerPath.replace(/\.mjs$/, ".js");
|
|
20
|
-
}
|
|
21
|
-
return require.resolve("@hanzogui/static/worker").replace(/\.mjs$/, ".js");
|
|
22
|
-
};
|
|
23
|
-
const POOL_KEY = "__hanzogui_piscina_pool__";
|
|
24
|
-
const CLOSING_KEY = "__hanzogui_piscina_closing__";
|
|
25
|
-
const TASK_COUNT_KEY = "__hanzogui_piscina_task_count__";
|
|
26
|
-
const RECYCLING_KEY = "__hanzogui_piscina_recycling__";
|
|
27
|
-
const MAX_TASKS_BEFORE_RECYCLE = 1e3;
|
|
28
|
-
function getSharedPool() {
|
|
29
|
-
return globalThis[POOL_KEY] ?? null;
|
|
30
|
-
}
|
|
31
|
-
function setSharedPool(pool) {
|
|
32
|
-
;
|
|
33
|
-
globalThis[POOL_KEY] = pool;
|
|
34
|
-
}
|
|
35
|
-
function isClosing() {
|
|
36
|
-
return globalThis[CLOSING_KEY] === true;
|
|
37
|
-
}
|
|
38
|
-
function setClosing(value) {
|
|
39
|
-
;
|
|
40
|
-
globalThis[CLOSING_KEY] = value;
|
|
41
|
-
}
|
|
42
|
-
function isRecycling() {
|
|
43
|
-
return globalThis[RECYCLING_KEY] === true;
|
|
44
|
-
}
|
|
45
|
-
function setRecycling(value) {
|
|
46
|
-
;
|
|
47
|
-
globalThis[RECYCLING_KEY] = value;
|
|
48
|
-
}
|
|
49
|
-
function getTaskCount() {
|
|
50
|
-
return globalThis[TASK_COUNT_KEY] ?? 0;
|
|
51
|
-
}
|
|
52
|
-
function incrementTaskCount() {
|
|
53
|
-
const count = getTaskCount() + 1;
|
|
54
|
-
globalThis[TASK_COUNT_KEY] = count;
|
|
55
|
-
return count;
|
|
56
|
-
}
|
|
57
|
-
function resetTaskCount() {
|
|
58
|
-
;
|
|
59
|
-
globalThis[TASK_COUNT_KEY] = 0;
|
|
60
|
-
}
|
|
61
|
-
function createPool() {
|
|
62
|
-
const pool = new Piscina({
|
|
63
|
-
filename: getWorkerPath(),
|
|
64
|
-
// each worker loads and caches config independently
|
|
65
|
-
minThreads: 2,
|
|
66
|
-
maxThreads: 2,
|
|
67
|
-
// Never terminate due to idle - worker stays alive until close() or process exit
|
|
68
|
-
// This prevents "Terminating worker thread" errors from Piscina during idle
|
|
69
|
-
idleTimeout: Number.POSITIVE_INFINITY
|
|
70
|
-
// no resourceLimits - we rely on task-based recycling instead
|
|
71
|
-
// V8 resourceLimits cause "Terminating worker thread" messages when hit
|
|
72
|
-
});
|
|
73
|
-
pool.on("error", err => {
|
|
74
|
-
if (isClosing() || isRecycling()) return;
|
|
75
|
-
const message = err && typeof err === "object" && "message" in err ? String(err.message) : "";
|
|
76
|
-
if (message.includes("Terminating worker thread")) return;
|
|
77
|
-
console.error("[hanzogui] Worker pool error:", err);
|
|
78
|
-
});
|
|
79
|
-
return pool;
|
|
80
|
-
}
|
|
81
|
-
function getPool() {
|
|
82
|
-
let pool = getSharedPool();
|
|
83
|
-
if (!pool) {
|
|
84
|
-
pool = createPool();
|
|
85
|
-
setSharedPool(pool);
|
|
86
|
-
}
|
|
87
|
-
return pool;
|
|
88
|
-
}
|
|
89
|
-
async function loadGui(options) {
|
|
90
|
-
const pool = getPool();
|
|
91
|
-
const task = {
|
|
92
|
-
type: "extractToClassNames",
|
|
93
|
-
source: "// dummy",
|
|
94
|
-
sourcePath: "__dummy__.tsx",
|
|
95
|
-
options: {
|
|
96
|
-
components: ["@hanzo/gui"],
|
|
97
|
-
...options
|
|
98
|
-
},
|
|
99
|
-
shouldPrintDebug: false
|
|
100
|
-
};
|
|
101
|
-
try {
|
|
102
|
-
await pool.run(task, {
|
|
103
|
-
name: "runTask"
|
|
104
|
-
});
|
|
105
|
-
return {
|
|
106
|
-
success: true
|
|
107
|
-
};
|
|
108
|
-
} catch (error) {
|
|
109
|
-
console.error("[static-worker] Error loading Gui config:", error);
|
|
110
|
-
throw error;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
async function recyclePool(options) {
|
|
114
|
-
if (isClosing() || isRecycling()) return;
|
|
115
|
-
const oldPool = getSharedPool();
|
|
116
|
-
if (!oldPool) return;
|
|
117
|
-
setRecycling(true);
|
|
118
|
-
const start = Date.now();
|
|
119
|
-
try {
|
|
120
|
-
const originalStderr = process.stderr.write.bind(process.stderr);
|
|
121
|
-
const originalStdout = process.stdout.write.bind(process.stdout);
|
|
122
|
-
const filter = (chunk, ...args) => {
|
|
123
|
-
const str = typeof chunk === "string" ? chunk : chunk?.toString?.() || "";
|
|
124
|
-
if (str.includes("Terminating worker thread")) return true;
|
|
125
|
-
return false;
|
|
126
|
-
};
|
|
127
|
-
process.stderr.write = (chunk, ...args) => {
|
|
128
|
-
if (filter(chunk)) return true;
|
|
129
|
-
return originalStderr(chunk, ...args);
|
|
130
|
-
};
|
|
131
|
-
process.stdout.write = (chunk, ...args) => {
|
|
132
|
-
if (filter(chunk)) return true;
|
|
133
|
-
return originalStdout(chunk, ...args);
|
|
134
|
-
};
|
|
135
|
-
const newPool = createPool();
|
|
136
|
-
setSharedPool(newPool);
|
|
137
|
-
const warmupTask = {
|
|
138
|
-
type: "extractToClassNames",
|
|
139
|
-
source: "// warmup",
|
|
140
|
-
sourcePath: "__warmup__.tsx",
|
|
141
|
-
options: {
|
|
142
|
-
...options,
|
|
143
|
-
// skip the "built config" log on warmup since it's a recycle
|
|
144
|
-
_skipBuildLog: true
|
|
145
|
-
},
|
|
146
|
-
shouldPrintDebug: false
|
|
147
|
-
};
|
|
148
|
-
await newPool.run(warmupTask, {
|
|
149
|
-
name: "runTask"
|
|
150
|
-
});
|
|
151
|
-
oldPool.removeAllListeners();
|
|
152
|
-
oldPool.destroy().catch(() => {});
|
|
153
|
-
setTimeout(() => {
|
|
154
|
-
process.stderr.write = originalStderr;
|
|
155
|
-
process.stdout.write = originalStdout;
|
|
156
|
-
});
|
|
157
|
-
console.log(` \u267B\uFE0F [hanzogui] recycled worker pool (${Date.now() - start}ms)`);
|
|
158
|
-
} finally {
|
|
159
|
-
setRecycling(false);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
async function loadGuiBuildConfig(hanzoguiOptions) {
|
|
163
|
-
const {
|
|
164
|
-
default: Static
|
|
165
|
-
} = await import("@hanzogui/static");
|
|
166
|
-
return Static.loadGuiBuildConfigAsync(hanzoguiOptions);
|
|
167
|
-
}
|
|
168
|
-
async function extractToClassNames(params) {
|
|
169
|
-
const {
|
|
170
|
-
source,
|
|
171
|
-
sourcePath = "",
|
|
172
|
-
options,
|
|
173
|
-
shouldPrintDebug = false
|
|
174
|
-
} = params;
|
|
175
|
-
if (typeof source !== "string") {
|
|
176
|
-
throw new Error("`source` must be a string of javascript");
|
|
177
|
-
}
|
|
178
|
-
const task = {
|
|
179
|
-
type: "extractToClassNames",
|
|
180
|
-
source,
|
|
181
|
-
sourcePath,
|
|
182
|
-
options,
|
|
183
|
-
shouldPrintDebug
|
|
184
|
-
};
|
|
185
|
-
const pool = getPool();
|
|
186
|
-
const result = await pool.run(task, {
|
|
187
|
-
name: "runTask"
|
|
188
|
-
});
|
|
189
|
-
if (!result.success) {
|
|
190
|
-
const errorMessage = [`[hanzogui-extract] Error processing file: ${sourcePath || "(unknown)"}`, ``, result.error, result.stack ? `
|
|
191
|
-
${result.stack}` : ""].filter(Boolean).join("\n");
|
|
192
|
-
throw new Error(errorMessage);
|
|
193
|
-
}
|
|
194
|
-
const count = incrementTaskCount();
|
|
195
|
-
if (count >= MAX_TASKS_BEFORE_RECYCLE) {
|
|
196
|
-
resetTaskCount();
|
|
197
|
-
recyclePool(options).catch(() => {});
|
|
198
|
-
}
|
|
199
|
-
return result.data;
|
|
200
|
-
}
|
|
201
|
-
async function extractToNative(sourceFileName, sourceCode, options) {
|
|
202
|
-
const task = {
|
|
203
|
-
type: "extractToNative",
|
|
204
|
-
sourceFileName,
|
|
205
|
-
sourceCode,
|
|
206
|
-
options
|
|
207
|
-
};
|
|
208
|
-
const pool = getPool();
|
|
209
|
-
const result = await pool.run(task, {
|
|
210
|
-
name: "runTask"
|
|
211
|
-
});
|
|
212
|
-
if (!result.success) {
|
|
213
|
-
const errorMessage = [`[hanzogui-extract] Error processing file: ${sourceFileName || "(unknown)"}`, ``, result.error, result.stack ? `
|
|
214
|
-
${result.stack}` : ""].filter(Boolean).join("\n");
|
|
215
|
-
throw new Error(errorMessage);
|
|
216
|
-
}
|
|
217
|
-
const count = incrementTaskCount();
|
|
218
|
-
if (count >= MAX_TASKS_BEFORE_RECYCLE) {
|
|
219
|
-
resetTaskCount();
|
|
220
|
-
recyclePool(options).catch(() => {});
|
|
221
|
-
}
|
|
222
|
-
return result.data;
|
|
223
|
-
}
|
|
224
|
-
async function watchGuiConfig(options) {
|
|
225
|
-
const {
|
|
226
|
-
default: Static
|
|
227
|
-
} = await import("@hanzogui/static");
|
|
228
|
-
const watcher = await Static.watchGuiConfig(options);
|
|
229
|
-
if (!watcher) {
|
|
230
|
-
return;
|
|
231
|
-
}
|
|
232
|
-
const originalDispose = watcher.dispose;
|
|
233
|
-
return {
|
|
234
|
-
dispose: () => {
|
|
235
|
-
originalDispose();
|
|
236
|
-
if (getSharedPool()) {
|
|
237
|
-
clearWorkerCache();
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
};
|
|
241
|
-
}
|
|
242
|
-
async function clearWorkerCache() {
|
|
243
|
-
const pool = getSharedPool();
|
|
244
|
-
if (!pool || isClosing()) return;
|
|
245
|
-
const task = {
|
|
246
|
-
type: "clearCache"
|
|
247
|
-
};
|
|
248
|
-
await pool.run(task, {
|
|
249
|
-
name: "runTask"
|
|
250
|
-
});
|
|
251
|
-
}
|
|
252
|
-
async function destroyPool() {
|
|
253
|
-
const pool = getSharedPool();
|
|
254
|
-
if (pool) {
|
|
255
|
-
setClosing(true);
|
|
256
|
-
try {
|
|
257
|
-
await pool.close();
|
|
258
|
-
} finally {
|
|
259
|
-
setSharedPool(null);
|
|
260
|
-
setClosing(false);
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
function getPoolStats() {
|
|
265
|
-
const pool = getSharedPool();
|
|
266
|
-
if (!pool) {
|
|
267
|
-
return null;
|
|
268
|
-
}
|
|
269
|
-
return {
|
|
270
|
-
threads: pool.threads.length,
|
|
271
|
-
queueSize: pool.queueSize,
|
|
272
|
-
completed: pool.completed,
|
|
273
|
-
duration: pool.duration,
|
|
274
|
-
utilization: pool.utilization
|
|
275
|
-
};
|
|
276
|
-
}
|
|
277
|
-
export { DEFAULT_EXTRACT_PACKAGES, clearWorkerCache, destroyPool, extractToClassNames, extractToNative, getPoolStats, getPragmaOptions, installedPackageOf, isExtractable, loadGui, loadGuiBuildConfig, watchGuiConfig };
|
|
278
|
-
//# sourceMappingURL=index.mjs.map
|
package/dist/esm/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["fileURLToPath","Piscina","extractablePathModule","extractablePath","default","DEFAULT_EXTRACT_PACKAGES","installedPackageOf","isExtractable","getPragmaOptions","props","Static","getWorkerPath","import","meta","url","workerPath","resolve","replace","require","POOL_KEY","CLOSING_KEY","TASK_COUNT_KEY","RECYCLING_KEY","MAX_TASKS_BEFORE_RECYCLE","getSharedPool","globalThis","setSharedPool","pool","isClosing","setClosing","value","isRecycling","setRecycling","getTaskCount","incrementTaskCount","count","resetTaskCount","createPool","filename","minThreads","maxThreads","idleTimeout","Number","POSITIVE_INFINITY","on","err","message","String","includes","console","error","getPool","loadGui","options","task","type","source","sourcePath","components","shouldPrintDebug","run","name","success","recyclePool","oldPool","start","Date","now","originalStderr","process","stderr","write","bind","originalStdout","stdout","filter","chunk","args","str","toString","newPool","warmupTask","_skipBuildLog","removeAllListeners","destroy","catch","setTimeout","log","loadGuiBuildConfig","hanzoguiOptions","loadGuiBuildConfigAsync","extractToClassNames","params","Error","result","errorMessage","stack","Boolean","join","data","extractToNative","sourceFileName","sourceCode","watchGuiConfig","watcher","originalDispose","dispose","clearWorkerCache","destroyPool","close","getPoolStats","threads","length","queueSize","completed","duration","utilization"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|