@rezi-ui/node 0.1.0-alpha.24 → 0.1.0-alpha.25
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/README.md +1 -1
- package/dist/backend/nodeBackend.d.ts.map +1 -1
- package/dist/backend/nodeBackend.js +37 -2
- package/dist/backend/nodeBackend.js.map +1 -1
- package/dist/backend/nodeBackendInline.d.ts.map +1 -1
- package/dist/backend/nodeBackendInline.js +31 -2
- package/dist/backend/nodeBackendInline.js.map +1 -1
- package/dist/dev/hotStateReload.d.ts +65 -0
- package/dist/dev/hotStateReload.d.ts.map +1 -0
- package/dist/dev/hotStateReload.js +438 -0
- package/dist/dev/hotStateReload.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/streams/tail.d.ts +6 -0
- package/dist/streams/tail.d.ts.map +1 -0
- package/dist/streams/tail.js +113 -0
- package/dist/streams/tail.js.map +1 -0
- package/dist/worker/testShims/limitsExpectNative.d.ts +22 -0
- package/dist/worker/testShims/limitsExpectNative.d.ts.map +1 -0
- package/dist/worker/testShims/limitsExpectNative.js +85 -0
- package/dist/worker/testShims/limitsExpectNative.js.map +1 -0
- package/dist/worker/testShims/limitsNative.d.ts +22 -0
- package/dist/worker/testShims/limitsNative.d.ts.map +1 -0
- package/dist/worker/testShims/limitsNative.js +90 -0
- package/dist/worker/testShims/limitsNative.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,438 @@
|
|
|
1
|
+
import { mkdtempSync, readdirSync, rmSync, statSync, symlinkSync, watch, } from "node:fs";
|
|
2
|
+
import { cp } from "node:fs/promises";
|
|
3
|
+
import { tmpdir } from "node:os";
|
|
4
|
+
import { dirname, extname, isAbsolute, join, relative, resolve } from "node:path";
|
|
5
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
6
|
+
const DEFAULT_DEBOUNCE_MS = 40;
|
|
7
|
+
const WATCH_REFRESH_DELAY_MS = 50;
|
|
8
|
+
const PRESERVED_SNAPSHOT_REVISIONS = 2;
|
|
9
|
+
const TRACKED_EXTENSIONS = new Set([
|
|
10
|
+
".ts",
|
|
11
|
+
".tsx",
|
|
12
|
+
".mts",
|
|
13
|
+
".cts",
|
|
14
|
+
".js",
|
|
15
|
+
".jsx",
|
|
16
|
+
".mjs",
|
|
17
|
+
".cjs",
|
|
18
|
+
".json",
|
|
19
|
+
]);
|
|
20
|
+
const IGNORED_DIR_NAMES = new Set([
|
|
21
|
+
".git",
|
|
22
|
+
".hg",
|
|
23
|
+
".svn",
|
|
24
|
+
"dist",
|
|
25
|
+
"build",
|
|
26
|
+
"out",
|
|
27
|
+
"coverage",
|
|
28
|
+
"node_modules",
|
|
29
|
+
]);
|
|
30
|
+
function isViewReloadOptions(opts) {
|
|
31
|
+
return "viewModule" in opts;
|
|
32
|
+
}
|
|
33
|
+
function isRoutesReloadOptions(opts) {
|
|
34
|
+
return "routesModule" in opts;
|
|
35
|
+
}
|
|
36
|
+
function toAbsolutePath(input, label) {
|
|
37
|
+
if (input instanceof URL) {
|
|
38
|
+
if (input.protocol !== "file:") {
|
|
39
|
+
throw new Error(`${label} must be a file URL when URL is provided`);
|
|
40
|
+
}
|
|
41
|
+
return resolve(fileURLToPath(input));
|
|
42
|
+
}
|
|
43
|
+
if (typeof input !== "string" || input.trim().length === 0) {
|
|
44
|
+
throw new Error(`${label} must be a non-empty string or file URL`);
|
|
45
|
+
}
|
|
46
|
+
return isAbsolute(input) ? resolve(input) : resolve(process.cwd(), input);
|
|
47
|
+
}
|
|
48
|
+
function ensurePositiveInt(name, value) {
|
|
49
|
+
if (!Number.isInteger(value) || value <= 0) {
|
|
50
|
+
throw new Error(`${name} must be a positive integer`);
|
|
51
|
+
}
|
|
52
|
+
return value;
|
|
53
|
+
}
|
|
54
|
+
function isRecord(value) {
|
|
55
|
+
return typeof value === "object" && value !== null;
|
|
56
|
+
}
|
|
57
|
+
function defaultResolveView(moduleNs) {
|
|
58
|
+
if (!isRecord(moduleNs)) {
|
|
59
|
+
throw new Error("HSR module must export a named `view` function or a default function");
|
|
60
|
+
}
|
|
61
|
+
const moduleExports = moduleNs;
|
|
62
|
+
const named = moduleExports.view;
|
|
63
|
+
if (typeof named === "function")
|
|
64
|
+
return named;
|
|
65
|
+
const fallback = moduleExports.default;
|
|
66
|
+
if (typeof fallback === "function")
|
|
67
|
+
return fallback;
|
|
68
|
+
throw new Error("HSR module must export a named `view` function or a default function");
|
|
69
|
+
}
|
|
70
|
+
function coerceRoutesExport(value) {
|
|
71
|
+
if (!Array.isArray(value)) {
|
|
72
|
+
throw new Error("HSR routes module must export a named `routes` array or a default array");
|
|
73
|
+
}
|
|
74
|
+
return value;
|
|
75
|
+
}
|
|
76
|
+
function defaultResolveRoutes(moduleNs) {
|
|
77
|
+
if (!isRecord(moduleNs)) {
|
|
78
|
+
throw new Error("HSR routes module must export a named `routes` array or a default array");
|
|
79
|
+
}
|
|
80
|
+
const moduleExports = moduleNs;
|
|
81
|
+
if (moduleExports.routes !== undefined) {
|
|
82
|
+
return coerceRoutesExport(moduleExports.routes);
|
|
83
|
+
}
|
|
84
|
+
if (moduleExports.default !== undefined) {
|
|
85
|
+
return coerceRoutesExport(moduleExports.default);
|
|
86
|
+
}
|
|
87
|
+
throw new Error("HSR routes module must export a named `routes` array or a default array");
|
|
88
|
+
}
|
|
89
|
+
function containsIgnoredDir(absPath) {
|
|
90
|
+
const normalized = absPath.replace(/\\/g, "/");
|
|
91
|
+
for (const part of normalized.split("/")) {
|
|
92
|
+
if (IGNORED_DIR_NAMES.has(part))
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
function shouldTrackPath(absPath) {
|
|
98
|
+
if (containsIgnoredDir(absPath))
|
|
99
|
+
return false;
|
|
100
|
+
const ext = extname(absPath).toLowerCase();
|
|
101
|
+
return TRACKED_EXTENSIONS.has(ext);
|
|
102
|
+
}
|
|
103
|
+
function isWithinOrEqual(root, candidate) {
|
|
104
|
+
const rel = relative(root, candidate);
|
|
105
|
+
return rel === "" || (!rel.startsWith("..") && !isAbsolute(rel));
|
|
106
|
+
}
|
|
107
|
+
function safeReadDir(dir) {
|
|
108
|
+
try {
|
|
109
|
+
return readdirSync(dir, { withFileTypes: true });
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
return Object.freeze([]);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
function collectWatchDirectories(root) {
|
|
116
|
+
const out = [];
|
|
117
|
+
const stack = [root];
|
|
118
|
+
while (stack.length > 0) {
|
|
119
|
+
const current = stack.pop();
|
|
120
|
+
if (!current)
|
|
121
|
+
continue;
|
|
122
|
+
out.push(current);
|
|
123
|
+
const entries = safeReadDir(current);
|
|
124
|
+
for (const entry of entries) {
|
|
125
|
+
if (!entry.isDirectory())
|
|
126
|
+
continue;
|
|
127
|
+
if (IGNORED_DIR_NAMES.has(entry.name))
|
|
128
|
+
continue;
|
|
129
|
+
stack.push(join(current, entry.name));
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return Object.freeze(out);
|
|
133
|
+
}
|
|
134
|
+
function makeLogSink(log) {
|
|
135
|
+
if (typeof log === "function")
|
|
136
|
+
return log;
|
|
137
|
+
return () => { };
|
|
138
|
+
}
|
|
139
|
+
function toWatchDirectory(pathLike) {
|
|
140
|
+
try {
|
|
141
|
+
return statSync(pathLike).isDirectory() ? pathLike : dirname(pathLike);
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
return dirname(pathLike);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
function findNearestNodeModules(startDir) {
|
|
148
|
+
let current = resolve(startDir);
|
|
149
|
+
while (true) {
|
|
150
|
+
const candidate = join(current, "node_modules");
|
|
151
|
+
try {
|
|
152
|
+
if (statSync(candidate).isDirectory())
|
|
153
|
+
return candidate;
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
// Keep walking up.
|
|
157
|
+
}
|
|
158
|
+
const parent = dirname(current);
|
|
159
|
+
if (parent === current)
|
|
160
|
+
return null;
|
|
161
|
+
current = parent;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
function createReloadAdapter(opts) {
|
|
165
|
+
if (isViewReloadOptions(opts)) {
|
|
166
|
+
const resolveView = opts.resolveView ?? (defaultResolveView);
|
|
167
|
+
return Object.freeze({
|
|
168
|
+
entryModule: opts.viewModule,
|
|
169
|
+
targetLabel: "view",
|
|
170
|
+
applyReload: (moduleNs) => {
|
|
171
|
+
const nextView = resolveView(moduleNs);
|
|
172
|
+
opts.app.replaceView(nextView);
|
|
173
|
+
opts.onReload?.(nextView);
|
|
174
|
+
},
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
if (isRoutesReloadOptions(opts)) {
|
|
178
|
+
const resolveRoutes = opts.resolveRoutes ?? (defaultResolveRoutes);
|
|
179
|
+
return Object.freeze({
|
|
180
|
+
entryModule: opts.routesModule,
|
|
181
|
+
targetLabel: "routes",
|
|
182
|
+
applyReload: (moduleNs) => {
|
|
183
|
+
const nextRoutes = resolveRoutes(moduleNs);
|
|
184
|
+
opts.app.replaceRoutes(nextRoutes);
|
|
185
|
+
opts.onReload?.(nextRoutes);
|
|
186
|
+
},
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
throw new Error("HSR options must provide either `viewModule` or `routesModule`");
|
|
190
|
+
}
|
|
191
|
+
export function createHotStateReload(opts) {
|
|
192
|
+
const reloadAdapter = createReloadAdapter(opts);
|
|
193
|
+
const entryLabel = isViewReloadOptions(opts) ? "viewModule" : "routesModule";
|
|
194
|
+
const entryPath = toAbsolutePath(reloadAdapter.entryModule, entryLabel);
|
|
195
|
+
const moduleRoot = toAbsolutePath(opts.moduleRoot ?? dirname(entryPath), "moduleRoot");
|
|
196
|
+
if (!isWithinOrEqual(moduleRoot, entryPath)) {
|
|
197
|
+
throw new Error(`${entryLabel} must be inside moduleRoot`);
|
|
198
|
+
}
|
|
199
|
+
const watchTargets = new Set([moduleRoot]);
|
|
200
|
+
for (const pathInput of opts.watchPaths ?? []) {
|
|
201
|
+
watchTargets.add(toAbsolutePath(pathInput, "watchPaths[]"));
|
|
202
|
+
}
|
|
203
|
+
const debounceMs = ensurePositiveInt("debounceMs", opts.debounceMs ?? DEFAULT_DEBOUNCE_MS);
|
|
204
|
+
const log = makeLogSink(opts.log);
|
|
205
|
+
const onError = opts.onError;
|
|
206
|
+
const targetLabel = reloadAdapter.targetLabel;
|
|
207
|
+
const hostNodeModulesPath = findNearestNodeModules(moduleRoot);
|
|
208
|
+
let sessionRoot = null;
|
|
209
|
+
const watchers = new Map();
|
|
210
|
+
let running = false;
|
|
211
|
+
let revision = 0;
|
|
212
|
+
let pendingChangePath;
|
|
213
|
+
let debounceTimer = null;
|
|
214
|
+
let refreshTimer = null;
|
|
215
|
+
let reloadChain = Promise.resolve(false);
|
|
216
|
+
function getSessionRoot() {
|
|
217
|
+
if (sessionRoot === null) {
|
|
218
|
+
sessionRoot = mkdtempSync(join(tmpdir(), "rezi-hsr-"));
|
|
219
|
+
}
|
|
220
|
+
return sessionRoot;
|
|
221
|
+
}
|
|
222
|
+
function cleanupSessionRoot() {
|
|
223
|
+
if (sessionRoot === null)
|
|
224
|
+
return;
|
|
225
|
+
rmSync(sessionRoot, { recursive: true, force: true });
|
|
226
|
+
sessionRoot = null;
|
|
227
|
+
}
|
|
228
|
+
function clearDebounce() {
|
|
229
|
+
if (debounceTimer === null)
|
|
230
|
+
return;
|
|
231
|
+
clearTimeout(debounceTimer);
|
|
232
|
+
debounceTimer = null;
|
|
233
|
+
}
|
|
234
|
+
function clearRefresh() {
|
|
235
|
+
if (refreshTimer === null)
|
|
236
|
+
return;
|
|
237
|
+
clearTimeout(refreshTimer);
|
|
238
|
+
refreshTimer = null;
|
|
239
|
+
}
|
|
240
|
+
function closeAllWatchers() {
|
|
241
|
+
for (const watcher of watchers.values()) {
|
|
242
|
+
try {
|
|
243
|
+
watcher.close();
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
// ignore watcher close races
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
watchers.clear();
|
|
250
|
+
}
|
|
251
|
+
function emitError(error, context) {
|
|
252
|
+
onError?.(error, context);
|
|
253
|
+
}
|
|
254
|
+
function copyFilter(pathToCheck) {
|
|
255
|
+
return !containsIgnoredDir(pathToCheck);
|
|
256
|
+
}
|
|
257
|
+
async function importLatestModule() {
|
|
258
|
+
const activeSessionRoot = getSessionRoot();
|
|
259
|
+
revision++;
|
|
260
|
+
const revisionDir = join(activeSessionRoot, `rev-${String(revision)}`);
|
|
261
|
+
await cp(moduleRoot, revisionDir, { recursive: true, filter: copyFilter });
|
|
262
|
+
if (hostNodeModulesPath) {
|
|
263
|
+
const snapshotNodeModules = join(revisionDir, "node_modules");
|
|
264
|
+
try {
|
|
265
|
+
symlinkSync(hostNodeModulesPath, snapshotNodeModules, "junction");
|
|
266
|
+
}
|
|
267
|
+
catch {
|
|
268
|
+
// Best-effort: if symlink creation fails, reload may still work for relative imports.
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
const relEntry = relative(moduleRoot, entryPath);
|
|
272
|
+
const snapshotEntry = join(revisionDir, relEntry);
|
|
273
|
+
const moduleUrl = `${pathToFileURL(snapshotEntry).href}?rezi_hsr_rev=${String(revision)}`;
|
|
274
|
+
const moduleNs = await import(moduleUrl);
|
|
275
|
+
const staleRevision = revision - PRESERVED_SNAPSHOT_REVISIONS;
|
|
276
|
+
if (staleRevision > 0) {
|
|
277
|
+
const staleDir = join(activeSessionRoot, `rev-${String(staleRevision)}`);
|
|
278
|
+
rmSync(staleDir, { recursive: true, force: true });
|
|
279
|
+
}
|
|
280
|
+
return moduleNs;
|
|
281
|
+
}
|
|
282
|
+
function queueReload(phase) {
|
|
283
|
+
const changedPath = pendingChangePath;
|
|
284
|
+
pendingChangePath = undefined;
|
|
285
|
+
const op = reloadChain.then(async () => {
|
|
286
|
+
if (!running)
|
|
287
|
+
return false;
|
|
288
|
+
try {
|
|
289
|
+
const moduleNs = await importLatestModule();
|
|
290
|
+
if (!running)
|
|
291
|
+
return false;
|
|
292
|
+
reloadAdapter.applyReload(moduleNs);
|
|
293
|
+
log({
|
|
294
|
+
level: "info",
|
|
295
|
+
message: phase === "manual"
|
|
296
|
+
? `HSR manual ${targetLabel} reload applied`
|
|
297
|
+
: `HSR file change ${targetLabel} reload applied`,
|
|
298
|
+
...(changedPath === undefined ? {} : { changedPath }),
|
|
299
|
+
});
|
|
300
|
+
return true;
|
|
301
|
+
}
|
|
302
|
+
catch (error) {
|
|
303
|
+
emitError(error, { phase: "reload", ...(changedPath ? { changedPath } : {}) });
|
|
304
|
+
log({
|
|
305
|
+
level: "error",
|
|
306
|
+
message: `HSR reload failed; keeping previous ${targetLabel}`,
|
|
307
|
+
...(changedPath === undefined ? {} : { changedPath }),
|
|
308
|
+
});
|
|
309
|
+
return false;
|
|
310
|
+
}
|
|
311
|
+
});
|
|
312
|
+
reloadChain = op.catch(() => false);
|
|
313
|
+
return op;
|
|
314
|
+
}
|
|
315
|
+
function scheduleWatchRefresh() {
|
|
316
|
+
if (!running || refreshTimer !== null)
|
|
317
|
+
return;
|
|
318
|
+
refreshTimer = setTimeout(() => {
|
|
319
|
+
refreshTimer = null;
|
|
320
|
+
refreshWatchers();
|
|
321
|
+
}, WATCH_REFRESH_DELAY_MS);
|
|
322
|
+
}
|
|
323
|
+
function shouldReloadForPath(absPath) {
|
|
324
|
+
if (shouldTrackPath(absPath))
|
|
325
|
+
return true;
|
|
326
|
+
if (isWithinOrEqual(moduleRoot, absPath))
|
|
327
|
+
return true;
|
|
328
|
+
for (const target of watchTargets) {
|
|
329
|
+
if (isWithinOrEqual(target, absPath))
|
|
330
|
+
return true;
|
|
331
|
+
}
|
|
332
|
+
return false;
|
|
333
|
+
}
|
|
334
|
+
function onWatchEvent(watchDir, eventType, filename) {
|
|
335
|
+
if (!running)
|
|
336
|
+
return;
|
|
337
|
+
const changedName = filename === null || filename === undefined
|
|
338
|
+
? null
|
|
339
|
+
: typeof filename === "string"
|
|
340
|
+
? filename
|
|
341
|
+
: filename.toString("utf8");
|
|
342
|
+
const resolvedPath = changedName === null ? watchDir : resolve(watchDir, changedName);
|
|
343
|
+
if (!shouldReloadForPath(resolvedPath))
|
|
344
|
+
return;
|
|
345
|
+
pendingChangePath = resolvedPath;
|
|
346
|
+
clearDebounce();
|
|
347
|
+
debounceTimer = setTimeout(() => {
|
|
348
|
+
debounceTimer = null;
|
|
349
|
+
void queueReload("watch");
|
|
350
|
+
}, debounceMs);
|
|
351
|
+
if (eventType === "rename") {
|
|
352
|
+
scheduleWatchRefresh();
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
function refreshWatchers() {
|
|
356
|
+
if (!running)
|
|
357
|
+
return;
|
|
358
|
+
const desiredDirs = new Set();
|
|
359
|
+
for (const target of watchTargets) {
|
|
360
|
+
const root = toWatchDirectory(target);
|
|
361
|
+
if (containsIgnoredDir(root))
|
|
362
|
+
continue;
|
|
363
|
+
const dirs = collectWatchDirectories(root);
|
|
364
|
+
for (const dir of dirs) {
|
|
365
|
+
desiredDirs.add(dir);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
for (const watchedDir of watchers.keys()) {
|
|
369
|
+
if (desiredDirs.has(watchedDir))
|
|
370
|
+
continue;
|
|
371
|
+
const watcher = watchers.get(watchedDir);
|
|
372
|
+
watchers.delete(watchedDir);
|
|
373
|
+
try {
|
|
374
|
+
watcher?.close();
|
|
375
|
+
}
|
|
376
|
+
catch {
|
|
377
|
+
// ignore watcher close races
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
for (const dir of desiredDirs) {
|
|
381
|
+
if (watchers.has(dir))
|
|
382
|
+
continue;
|
|
383
|
+
try {
|
|
384
|
+
const watcher = watch(dir, { persistent: true }, (eventType, filename) => {
|
|
385
|
+
onWatchEvent(dir, eventType, filename ?? null);
|
|
386
|
+
});
|
|
387
|
+
watcher.on("error", (error) => {
|
|
388
|
+
emitError(error, { phase: "watch", changedPath: dir });
|
|
389
|
+
log({ level: "warn", message: "HSR watcher reported an error", changedPath: dir });
|
|
390
|
+
scheduleWatchRefresh();
|
|
391
|
+
});
|
|
392
|
+
watchers.set(dir, watcher);
|
|
393
|
+
}
|
|
394
|
+
catch (error) {
|
|
395
|
+
emitError(error, { phase: "watch", changedPath: dir });
|
|
396
|
+
log({ level: "warn", message: "HSR failed to watch path", changedPath: dir });
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
async function start() {
|
|
401
|
+
if (running)
|
|
402
|
+
return;
|
|
403
|
+
running = true;
|
|
404
|
+
refreshWatchers();
|
|
405
|
+
log({ level: "info", message: "HSR watcher started" });
|
|
406
|
+
}
|
|
407
|
+
async function reloadNow() {
|
|
408
|
+
if (!running)
|
|
409
|
+
return false;
|
|
410
|
+
clearDebounce();
|
|
411
|
+
return queueReload("manual");
|
|
412
|
+
}
|
|
413
|
+
async function stop() {
|
|
414
|
+
if (!running) {
|
|
415
|
+
cleanupSessionRoot();
|
|
416
|
+
return;
|
|
417
|
+
}
|
|
418
|
+
running = false;
|
|
419
|
+
clearDebounce();
|
|
420
|
+
clearRefresh();
|
|
421
|
+
closeAllWatchers();
|
|
422
|
+
try {
|
|
423
|
+
await reloadChain;
|
|
424
|
+
}
|
|
425
|
+
catch {
|
|
426
|
+
// ignore pending reload failures during shutdown
|
|
427
|
+
}
|
|
428
|
+
cleanupSessionRoot();
|
|
429
|
+
log({ level: "info", message: "HSR watcher stopped" });
|
|
430
|
+
}
|
|
431
|
+
return Object.freeze({
|
|
432
|
+
start,
|
|
433
|
+
reloadNow,
|
|
434
|
+
stop,
|
|
435
|
+
isRunning: () => running,
|
|
436
|
+
});
|
|
437
|
+
}
|
|
438
|
+
//# sourceMappingURL=hotStateReload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hotStateReload.js","sourceRoot":"","sources":["../../src/dev/hotStateReload.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { type App, type AppConfig, type Theme, type ThemeDefinition } from "@rezi-ui/core";
|
|
2
2
|
import { type NodeBackend, type NodeBackendConfig } from "./backend/nodeBackend.js";
|
|
3
|
+
import { createHotStateReload } from "./dev/hotStateReload.js";
|
|
3
4
|
import { createReproRecorder } from "./repro/index.js";
|
|
4
5
|
export type { NodeBackendConfig };
|
|
5
6
|
export type { NodeBackend };
|
|
7
|
+
export type { HotStateReloadController, HotStateReloadErrorContext, HotStateReloadLogEvent, HotStateReloadOptions, HotStateReloadRoutesOptions, HotStateReloadViewOptions, } from "./dev/hotStateReload.js";
|
|
6
8
|
export type { CreateReproRecorderOptions, ReproRecorder, ReproRecorderBackendCapsOverrides, ReproRecorderBounds, ReproRecorderBuildResult, } from "./repro/index.js";
|
|
9
|
+
export { createHotStateReload };
|
|
7
10
|
export { createReproRecorder };
|
|
8
11
|
export { loadImage } from "./image.js";
|
|
12
|
+
export { createNodeTailSource } from "./streams/tail.js";
|
|
9
13
|
export type NodeAppConfig = Readonly<AppConfig & Omit<NodeBackendConfig, "fpsCap" | "maxEventBytes" | "useDrawlistV2">>;
|
|
10
14
|
export type CreateNodeAppOptions<S> = Readonly<{
|
|
11
15
|
initialState: S;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,eAAe,EAIrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,CAAC;AAC5B,YAAY,EACV,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,0BAA0B,EAC1B,aAAa,EACb,iCAAiC,EACjC,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAIzD,MAAM,MAAM,aAAa,GAAG,QAAQ,CAClC,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,QAAQ,GAAG,eAAe,GAAG,eAAe,CAAC,CAClF,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,QAAQ,CAAC;IAC7C,YAAY,EAAE,CAAC,CAAC;IAChB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC;CACjC,CAAC,CAAC;AAEH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAC7B,QAAQ,CAAC;IACP,gEAAgE;IAChE,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC,CAAC;AAuJL,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAkB1E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,iBAAsB,GAAG,WAAW,CAE7E"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
import { createApp, defaultTheme, } from "@rezi-ui/core";
|
|
1
|
+
import { createApp, defaultTheme, setDefaultTailSourceFactory, } from "@rezi-ui/core";
|
|
2
2
|
import { createNodeBackendInternal, } from "./backend/nodeBackend.js";
|
|
3
|
+
import { createHotStateReload } from "./dev/hotStateReload.js";
|
|
3
4
|
import { createReproRecorder } from "./repro/index.js";
|
|
5
|
+
import { createNodeTailSource } from "./streams/tail.js";
|
|
6
|
+
export { createHotStateReload };
|
|
4
7
|
export { createReproRecorder };
|
|
5
8
|
export { loadImage } from "./image.js";
|
|
9
|
+
export { createNodeTailSource } from "./streams/tail.js";
|
|
10
|
+
setDefaultTailSourceFactory(createNodeTailSource);
|
|
6
11
|
function isFiniteNumber(value) {
|
|
7
12
|
return typeof value === "number" && Number.isFinite(value);
|
|
8
13
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,SAAS,EACT,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tail.d.ts","sourceRoot":"","sources":["../../src/streams/tail.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,iBAAiB,EAAE,MAAM,eAAe,CAAC;AA2CnE;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,CAAC,MAAM,CAmF1D,CAAC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { open, stat } from "node:fs/promises";
|
|
2
|
+
const DEFAULT_POLL_MS = 200;
|
|
3
|
+
const READ_CHUNK_BYTES = 64 * 1024;
|
|
4
|
+
function normalizePositiveInteger(value, fallback) {
|
|
5
|
+
if (!Number.isFinite(value) || value <= 0)
|
|
6
|
+
return fallback;
|
|
7
|
+
return Math.floor(value);
|
|
8
|
+
}
|
|
9
|
+
function isNodeErrorWithCode(error) {
|
|
10
|
+
if (!error || typeof error !== "object")
|
|
11
|
+
return false;
|
|
12
|
+
const code = error.code;
|
|
13
|
+
return typeof code === "string";
|
|
14
|
+
}
|
|
15
|
+
async function readUtf8Slice(filePath, start, end) {
|
|
16
|
+
if (end <= start)
|
|
17
|
+
return "";
|
|
18
|
+
const handle = await open(filePath, "r");
|
|
19
|
+
let offset = start;
|
|
20
|
+
let output = "";
|
|
21
|
+
try {
|
|
22
|
+
while (offset < end) {
|
|
23
|
+
const bytesToRead = Math.min(READ_CHUNK_BYTES, end - offset);
|
|
24
|
+
const buffer = Buffer.allocUnsafe(bytesToRead);
|
|
25
|
+
const { bytesRead } = await handle.read(buffer, 0, bytesToRead, offset);
|
|
26
|
+
if (bytesRead <= 0)
|
|
27
|
+
break;
|
|
28
|
+
output += buffer.toString("utf8", 0, bytesRead);
|
|
29
|
+
offset += bytesRead;
|
|
30
|
+
}
|
|
31
|
+
return output;
|
|
32
|
+
}
|
|
33
|
+
finally {
|
|
34
|
+
await handle.close();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Node.js tail source factory for `useTail`.
|
|
39
|
+
*/
|
|
40
|
+
export const createNodeTailSource = (filePath, options) => {
|
|
41
|
+
const pollMs = normalizePositiveInteger(options.pollMs, DEFAULT_POLL_MS);
|
|
42
|
+
const fromEnd = options.fromEnd;
|
|
43
|
+
let closed = false;
|
|
44
|
+
let sleepState = { timer: null, resolve: null };
|
|
45
|
+
const wakeSleep = () => {
|
|
46
|
+
if (sleepState.timer !== null) {
|
|
47
|
+
clearTimeout(sleepState.timer);
|
|
48
|
+
}
|
|
49
|
+
if (sleepState.resolve) {
|
|
50
|
+
sleepState.resolve();
|
|
51
|
+
}
|
|
52
|
+
sleepState = { timer: null, resolve: null };
|
|
53
|
+
};
|
|
54
|
+
const sleep = async (ms) => {
|
|
55
|
+
if (ms <= 0)
|
|
56
|
+
return;
|
|
57
|
+
await new Promise((resolve) => {
|
|
58
|
+
const timer = setTimeout(() => {
|
|
59
|
+
sleepState = { timer: null, resolve: null };
|
|
60
|
+
resolve();
|
|
61
|
+
}, ms);
|
|
62
|
+
sleepState = { timer, resolve };
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
async function* iterator() {
|
|
66
|
+
let initialized = false;
|
|
67
|
+
let offset = 0;
|
|
68
|
+
let carry = "";
|
|
69
|
+
while (!closed) {
|
|
70
|
+
let fileSize;
|
|
71
|
+
try {
|
|
72
|
+
const stats = await stat(filePath);
|
|
73
|
+
fileSize = Number(stats.size);
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
if (isNodeErrorWithCode(error) && error.code === "ENOENT") {
|
|
77
|
+
await sleep(pollMs);
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
throw error;
|
|
81
|
+
}
|
|
82
|
+
if (!initialized) {
|
|
83
|
+
initialized = true;
|
|
84
|
+
offset = fromEnd ? fileSize : 0;
|
|
85
|
+
}
|
|
86
|
+
if (fileSize < offset) {
|
|
87
|
+
// File was truncated/rotated.
|
|
88
|
+
offset = 0;
|
|
89
|
+
carry = "";
|
|
90
|
+
}
|
|
91
|
+
if (fileSize > offset) {
|
|
92
|
+
const delta = await readUtf8Slice(filePath, offset, fileSize);
|
|
93
|
+
offset = fileSize;
|
|
94
|
+
const segments = `${carry}${delta}`.split(/\r?\n/);
|
|
95
|
+
carry = segments.pop() ?? "";
|
|
96
|
+
for (const line of segments) {
|
|
97
|
+
if (closed)
|
|
98
|
+
return;
|
|
99
|
+
yield line;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
await sleep(pollMs);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
[Symbol.asyncIterator]: iterator,
|
|
107
|
+
close: () => {
|
|
108
|
+
closed = true;
|
|
109
|
+
wakeSleep();
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=tail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tail.js","sourceRoot":"","sources":["../../src/streams/tail.ts"],"names":[],"mappings":"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"}
|