@simplysm/core-node 13.0.76 → 13.0.78
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 +353 -44
- package/dist/features/fs-watcher.d.ts.map +1 -1
- package/dist/features/fs-watcher.js +2 -2
- package/dist/features/fs-watcher.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/utils/fs.d.ts +30 -30
- package/dist/utils/fs.d.ts.map +1 -1
- package/dist/utils/fs.js +101 -99
- package/dist/utils/fs.js.map +1 -1
- package/dist/utils/path.d.ts +19 -19
- package/dist/utils/path.d.ts.map +1 -1
- package/dist/utils/path.js +17 -17
- package/dist/utils/path.js.map +1 -1
- package/dist/worker/create-worker.d.ts +1 -1
- package/dist/worker/create-worker.d.ts.map +1 -1
- package/dist/worker/create-worker.js +8 -8
- package/dist/worker/create-worker.js.map +1 -1
- package/dist/worker/types.d.ts +2 -2
- package/dist/worker/types.d.ts.map +1 -1
- package/dist/worker/worker.js +4 -4
- package/dist/worker/worker.js.map +1 -1
- package/package.json +2 -2
- package/src/features/fs-watcher.ts +2 -2
- package/src/index.ts +2 -2
- package/src/utils/fs.ts +570 -562
- package/src/utils/path.ts +24 -24
- package/src/worker/create-worker.ts +9 -9
- package/src/worker/types.ts +6 -6
- package/src/worker/worker.ts +4 -4
- package/tests/utils/fs.spec.ts +123 -123
- package/tests/utils/path.spec.ts +55 -55
package/dist/utils/path.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
declare const NORM: unique symbol;
|
|
2
2
|
/**
|
|
3
3
|
* Brand type representing a normalized path.
|
|
4
|
-
* Can only be created through
|
|
4
|
+
* Can only be created through norm().
|
|
5
5
|
*/
|
|
6
6
|
export type NormPath = string & {
|
|
7
7
|
[NORM]: never;
|
|
@@ -10,50 +10,50 @@ export type NormPath = string & {
|
|
|
10
10
|
* Converts to POSIX-style path (backslash → forward slash).
|
|
11
11
|
*
|
|
12
12
|
* @example
|
|
13
|
-
*
|
|
14
|
-
*
|
|
13
|
+
* posix("C:\\Users\\test"); // "C:/Users/test"
|
|
14
|
+
* posix("src", "index.ts"); // "src/index.ts"
|
|
15
15
|
*/
|
|
16
|
-
export declare function
|
|
16
|
+
export declare function posix(...args: string[]): string;
|
|
17
17
|
/**
|
|
18
18
|
* Changes the directory of a file path.
|
|
19
19
|
*
|
|
20
20
|
* @example
|
|
21
|
-
*
|
|
21
|
+
* changeFileDirectory("/a/b/c.txt", "/a", "/x");
|
|
22
22
|
* // → "/x/b/c.txt"
|
|
23
23
|
*
|
|
24
24
|
* @throws Error if the file is not inside fromDirectory
|
|
25
25
|
*/
|
|
26
|
-
export declare function
|
|
26
|
+
export declare function changeFileDirectory(filePath: string, fromDirectory: string, toDirectory: string): string;
|
|
27
27
|
/**
|
|
28
28
|
* Returns the filename (basename) without extension.
|
|
29
29
|
*
|
|
30
30
|
* @example
|
|
31
|
-
*
|
|
32
|
-
*
|
|
31
|
+
* basenameWithoutExt("file.txt"); // "file"
|
|
32
|
+
* basenameWithoutExt("/path/to/file.spec.ts"); // "file.spec"
|
|
33
33
|
*/
|
|
34
|
-
export declare function
|
|
34
|
+
export declare function basenameWithoutExt(filePath: string): string;
|
|
35
35
|
/**
|
|
36
36
|
* Checks if childPath is a child path of parentPath.
|
|
37
37
|
* Returns false if the paths are the same.
|
|
38
38
|
*
|
|
39
|
-
* Paths are internally normalized using `
|
|
39
|
+
* Paths are internally normalized using `norm()` and compared using
|
|
40
40
|
* platform-specific path separators (Windows: `\`, Unix: `/`).
|
|
41
41
|
*
|
|
42
42
|
* @example
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
43
|
+
* isChildPath("/a/b/c", "/a/b"); // true
|
|
44
|
+
* isChildPath("/a/b", "/a/b/c"); // false
|
|
45
|
+
* isChildPath("/a/b", "/a/b"); // false (same path)
|
|
46
46
|
*/
|
|
47
|
-
export declare function
|
|
47
|
+
export declare function isChildPath(childPath: string, parentPath: string): boolean;
|
|
48
48
|
/**
|
|
49
49
|
* Normalizes the path and returns it as NormPath.
|
|
50
50
|
* Converts to absolute path and normalizes using platform-specific separators.
|
|
51
51
|
*
|
|
52
52
|
* @example
|
|
53
|
-
*
|
|
54
|
-
*
|
|
53
|
+
* norm("/some/path"); // NormPath
|
|
54
|
+
* norm("relative", "path"); // NormPath (converted to absolute path)
|
|
55
55
|
*/
|
|
56
|
-
export declare function
|
|
56
|
+
export declare function norm(...paths: string[]): NormPath;
|
|
57
57
|
/**
|
|
58
58
|
* Filters files based on a list of target paths.
|
|
59
59
|
* Includes files that match or are children of a target path.
|
|
@@ -67,9 +67,9 @@ export declare function pathNorm(...paths: string[]): NormPath;
|
|
|
67
67
|
*
|
|
68
68
|
* @example
|
|
69
69
|
* const files = ["/proj/src/a.ts", "/proj/src/b.ts", "/proj/tests/c.ts"];
|
|
70
|
-
*
|
|
70
|
+
* filterByTargets(files, ["src"], "/proj");
|
|
71
71
|
* // → ["/proj/src/a.ts", "/proj/src/b.ts"]
|
|
72
72
|
*/
|
|
73
|
-
export declare function
|
|
73
|
+
export declare function filterByTargets(files: string[], targets: string[], cwd: string): string[];
|
|
74
74
|
export {};
|
|
75
75
|
//# sourceMappingURL=path.d.ts.map
|
package/dist/utils/path.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["..\\..\\src\\utils\\path.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,IAAI,eAAqB,CAAC;AAEhC;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAC9B,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAMF;;;;;;GAMG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["..\\..\\src\\utils\\path.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,IAAI,eAAqB,CAAC;AAEhC;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAC9B,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAMF;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAG/C;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,GAClB,MAAM,CAaR;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAe1E;AAED;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,CAEjD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CASzF"}
|
package/dist/utils/path.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import path from "path";
|
|
2
2
|
import { ArgumentError } from "@simplysm/core-common";
|
|
3
3
|
const NORM = /* @__PURE__ */ Symbol("NormPath");
|
|
4
|
-
function
|
|
4
|
+
function posix(...args) {
|
|
5
5
|
const resolvedPath = path.join(...args);
|
|
6
6
|
return resolvedPath.replace(/\\/g, "/");
|
|
7
7
|
}
|
|
8
|
-
function
|
|
8
|
+
function changeFileDirectory(filePath, fromDirectory, toDirectory) {
|
|
9
9
|
if (filePath === fromDirectory) {
|
|
10
10
|
return toDirectory;
|
|
11
11
|
}
|
|
12
|
-
if (!
|
|
12
|
+
if (!isChildPath(filePath, fromDirectory)) {
|
|
13
13
|
throw new ArgumentError(`'${filePath}' is not inside ${fromDirectory}.`, {
|
|
14
14
|
filePath,
|
|
15
15
|
fromDirectory
|
|
@@ -17,37 +17,37 @@ function pathChangeFileDirectory(filePath, fromDirectory, toDirectory) {
|
|
|
17
17
|
}
|
|
18
18
|
return path.resolve(toDirectory, path.relative(fromDirectory, filePath));
|
|
19
19
|
}
|
|
20
|
-
function
|
|
20
|
+
function basenameWithoutExt(filePath) {
|
|
21
21
|
return path.basename(filePath, path.extname(filePath));
|
|
22
22
|
}
|
|
23
|
-
function
|
|
24
|
-
const normalizedChild =
|
|
25
|
-
const normalizedParent =
|
|
23
|
+
function isChildPath(childPath, parentPath) {
|
|
24
|
+
const normalizedChild = norm(childPath);
|
|
25
|
+
const normalizedParent = norm(parentPath);
|
|
26
26
|
if (normalizedChild === normalizedParent) {
|
|
27
27
|
return false;
|
|
28
28
|
}
|
|
29
29
|
const parentWithSep = normalizedParent.endsWith(path.sep) ? normalizedParent : normalizedParent + path.sep;
|
|
30
30
|
return normalizedChild.startsWith(parentWithSep);
|
|
31
31
|
}
|
|
32
|
-
function
|
|
32
|
+
function norm(...paths) {
|
|
33
33
|
return path.resolve(...paths);
|
|
34
34
|
}
|
|
35
|
-
function
|
|
35
|
+
function filterByTargets(files, targets, cwd) {
|
|
36
36
|
if (targets.length === 0) return files;
|
|
37
|
-
const normalizedTargets = targets.map((t) =>
|
|
37
|
+
const normalizedTargets = targets.map((t) => posix(t));
|
|
38
38
|
return files.filter((file) => {
|
|
39
|
-
const relativePath =
|
|
39
|
+
const relativePath = posix(path.relative(cwd, file));
|
|
40
40
|
return normalizedTargets.some(
|
|
41
41
|
(target) => relativePath === target || relativePath.startsWith(target + "/")
|
|
42
42
|
);
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
45
|
export {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
46
|
+
basenameWithoutExt,
|
|
47
|
+
changeFileDirectory,
|
|
48
|
+
filterByTargets,
|
|
49
|
+
isChildPath,
|
|
50
|
+
norm,
|
|
51
|
+
posix
|
|
52
52
|
};
|
|
53
53
|
//# sourceMappingURL=path.js.map
|
package/dist/utils/path.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/path.ts"],
|
|
4
|
-
"mappings": "AAAA,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAI9B,MAAM,OAAO,uBAAO,UAAU;AAqBvB,SAAS,
|
|
4
|
+
"mappings": "AAAA,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAI9B,MAAM,OAAO,uBAAO,UAAU;AAqBvB,SAAS,SAAS,MAAwB;AAC/C,QAAM,eAAe,KAAK,KAAK,GAAG,IAAI;AACtC,SAAO,aAAa,QAAQ,OAAO,GAAG;AACxC;AAWO,SAAS,oBACd,UACA,eACA,aACQ;AACR,MAAI,aAAa,eAAe;AAC9B,WAAO;AAAA,EACT;AAEA,MAAI,CAAC,YAAY,UAAU,aAAa,GAAG;AACzC,UAAM,IAAI,cAAc,IAAI,QAAQ,mBAAmB,aAAa,KAAK;AAAA,MACvE;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SAAO,KAAK,QAAQ,aAAa,KAAK,SAAS,eAAe,QAAQ,CAAC;AACzE;AASO,SAAS,mBAAmB,UAA0B;AAC3D,SAAO,KAAK,SAAS,UAAU,KAAK,QAAQ,QAAQ,CAAC;AACvD;AAcO,SAAS,YAAY,WAAmB,YAA6B;AAC1E,QAAM,kBAAkB,KAAK,SAAS;AACtC,QAAM,mBAAmB,KAAK,UAAU;AAGxC,MAAI,oBAAoB,kBAAkB;AACxC,WAAO;AAAA,EACT;AAGA,QAAM,gBAAgB,iBAAiB,SAAS,KAAK,GAAG,IACpD,mBACA,mBAAmB,KAAK;AAE5B,SAAO,gBAAgB,WAAW,aAAa;AACjD;AAUO,SAAS,QAAQ,OAA2B;AACjD,SAAO,KAAK,QAAQ,GAAG,KAAK;AAC9B;AAkBO,SAAS,gBAAgB,OAAiB,SAAmB,KAAuB;AACzF,MAAI,QAAQ,WAAW,EAAG,QAAO;AACjC,QAAM,oBAAoB,QAAQ,IAAI,CAAC,MAAM,MAAM,CAAC,CAAC;AACrD,SAAO,MAAM,OAAO,CAAC,SAAS;AAC5B,UAAM,eAAe,MAAM,KAAK,SAAS,KAAK,IAAI,CAAC;AACnD,WAAO,kBAAkB;AAAA,MACvB,CAAC,WAAW,iBAAiB,UAAU,aAAa,WAAW,SAAS,GAAG;AAAA,IAC7E;AAAA,EACF,CAAC;AACH;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* export default sender;
|
|
17
17
|
*/
|
|
18
18
|
export declare function createWorker<TMethods extends Record<string, (...args: any[]) => unknown>, TEvents extends Record<string, unknown> = Record<string, never>>(methods: TMethods): {
|
|
19
|
-
send<
|
|
19
|
+
send<TEventName extends keyof TEvents & string>(event: TEventName, data?: TEvents[TEventName]): void;
|
|
20
20
|
__methods: TMethods;
|
|
21
21
|
__events: TEvents;
|
|
22
22
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-worker.d.ts","sourceRoot":"","sources":["..\\..\\src\\worker\\create-worker.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,EAC5D,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAE/D,OAAO,EAAE,QAAQ,GAChB;IACD,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"create-worker.d.ts","sourceRoot":"","sources":["..\\..\\src\\worker\\create-worker.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,EAC5D,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAE/D,OAAO,EAAE,QAAQ,GAChB;IACD,IAAI,CAAC,UAAU,SAAS,MAAM,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IACrG,SAAS,EAAE,QAAQ,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB,CA0GA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { parentPort } from "worker_threads";
|
|
2
|
-
import { SdError,
|
|
2
|
+
import { SdError, transfer } from "@simplysm/core-common";
|
|
3
3
|
function createWorker(methods) {
|
|
4
4
|
if (parentPort === null) {
|
|
5
5
|
throw new SdError("This script must be executed in a worker thread (parentPort required).");
|
|
@@ -8,7 +8,7 @@ function createWorker(methods) {
|
|
|
8
8
|
process.stdout.write = (chunk, encodingOrCallback, callback) => {
|
|
9
9
|
const body = typeof chunk === "string" ? chunk : new TextDecoder().decode(chunk);
|
|
10
10
|
const response = { type: "log", body };
|
|
11
|
-
const serialized =
|
|
11
|
+
const serialized = transfer.encode(response);
|
|
12
12
|
port.postMessage(serialized.result, serialized.transferList);
|
|
13
13
|
const cb = typeof encodingOrCallback === "function" ? encodingOrCallback : callback;
|
|
14
14
|
if (cb) {
|
|
@@ -17,7 +17,7 @@ function createWorker(methods) {
|
|
|
17
17
|
return true;
|
|
18
18
|
};
|
|
19
19
|
port.on("message", async (serializedRequest) => {
|
|
20
|
-
const decoded =
|
|
20
|
+
const decoded = transfer.decode(serializedRequest);
|
|
21
21
|
if (decoded == null || typeof decoded !== "object" || !("id" in decoded) || !("method" in decoded) || !("params" in decoded)) {
|
|
22
22
|
let decodedStr;
|
|
23
23
|
try {
|
|
@@ -30,7 +30,7 @@ function createWorker(methods) {
|
|
|
30
30
|
request: { id: "unknown", method: "unknown", params: [] },
|
|
31
31
|
body: new SdError(`Invalid worker request format: ${decodedStr}`)
|
|
32
32
|
};
|
|
33
|
-
const serialized =
|
|
33
|
+
const serialized = transfer.encode(errorResponse);
|
|
34
34
|
port.postMessage(serialized.result, serialized.transferList);
|
|
35
35
|
return;
|
|
36
36
|
}
|
|
@@ -42,7 +42,7 @@ function createWorker(methods) {
|
|
|
42
42
|
type: "error",
|
|
43
43
|
body: new SdError(`Unknown method: ${request.method}`)
|
|
44
44
|
};
|
|
45
|
-
const serialized =
|
|
45
|
+
const serialized = transfer.encode(response);
|
|
46
46
|
port.postMessage(serialized.result, serialized.transferList);
|
|
47
47
|
return;
|
|
48
48
|
}
|
|
@@ -53,7 +53,7 @@ function createWorker(methods) {
|
|
|
53
53
|
type: "return",
|
|
54
54
|
body: result
|
|
55
55
|
};
|
|
56
|
-
const serialized =
|
|
56
|
+
const serialized = transfer.encode(response);
|
|
57
57
|
port.postMessage(serialized.result, serialized.transferList);
|
|
58
58
|
} catch (err) {
|
|
59
59
|
const response = {
|
|
@@ -61,7 +61,7 @@ function createWorker(methods) {
|
|
|
61
61
|
type: "error",
|
|
62
62
|
body: err instanceof Error ? err : new Error(String(err))
|
|
63
63
|
};
|
|
64
|
-
const serialized =
|
|
64
|
+
const serialized = transfer.encode(response);
|
|
65
65
|
port.postMessage(serialized.result, serialized.transferList);
|
|
66
66
|
}
|
|
67
67
|
});
|
|
@@ -74,7 +74,7 @@ function createWorker(methods) {
|
|
|
74
74
|
event,
|
|
75
75
|
body: data
|
|
76
76
|
};
|
|
77
|
-
const serialized =
|
|
77
|
+
const serialized = transfer.encode(response);
|
|
78
78
|
port.postMessage(serialized.result, serialized.transferList);
|
|
79
79
|
}
|
|
80
80
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/worker/create-worker.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,kBAAkB;AAC3B,SAAS,SAAS,
|
|
4
|
+
"mappings": "AAAA,SAAS,kBAAkB;AAC3B,SAAS,SAAS,gBAAgB;AAsB3B,SAAS,aAId,SAKA;AACA,MAAI,eAAe,MAAM;AACvB,UAAM,IAAI,QAAQ,wEAAwE;AAAA,EAC5F;AAEA,QAAM,OAAO;AAIb,UAAQ,OAAO,QAAQ,CACrB,OACA,oBACA,aACY;AACZ,UAAM,OAAO,OAAO,UAAU,WAAW,QAAQ,IAAI,YAAY,EAAE,OAAO,KAAK;AAC/E,UAAM,WAA2B,EAAE,MAAM,OAAO,KAAK;AACrD,UAAM,aAAa,SAAS,OAAO,QAAQ;AAC3C,SAAK,YAAY,WAAW,QAAQ,WAAW,YAAY;AAE3D,UAAM,KAAK,OAAO,uBAAuB,aAAa,qBAAqB;AAC3E,QAAI,IAAI;AACN,qBAAe,MAAM,GAAG,CAAC;AAAA,IAC3B;AAEA,WAAO;AAAA,EACT;AAEA,OAAK,GAAG,WAAW,OAAO,sBAA+B;AACvD,UAAM,UAAU,SAAS,OAAO,iBAAiB;AAGjD,QACE,WAAW,QACX,OAAO,YAAY,YACnB,EAAE,QAAQ,YACV,EAAE,YAAY,YACd,EAAE,YAAY,UACd;AACA,UAAI;AACJ,UAAI;AACF,qBAAa,KAAK,UAAU,OAAO;AAAA,MACrC,QAAQ;AACN,qBAAa,OAAO,OAAO;AAAA,MAC7B;AACA,YAAM,gBAAgC;AAAA,QACpC,MAAM;AAAA,QACN,SAAS,EAAE,IAAI,WAAW,QAAQ,WAAW,QAAQ,CAAC,EAAE;AAAA,QACxD,MAAM,IAAI,QAAQ,kCAAkC,UAAU,EAAE;AAAA,MAClE;AACA,YAAM,aAAa,SAAS,OAAO,aAAa;AAChD,WAAK,YAAY,WAAW,QAAQ,WAAW,YAAY;AAC3D;AAAA,IACF;AACA,UAAM,UAAU;AAEhB,UAAM,WAAW,QAAQ,QAAQ,MAAM;AAEvC,QAAI,YAAY,MAAM;AACpB,YAAM,WAA2B;AAAA,QAC/B;AAAA,QACA,MAAM;AAAA,QACN,MAAM,IAAI,QAAQ,mBAAmB,QAAQ,MAAM,EAAE;AAAA,MACvD;AAEA,YAAM,aAAa,SAAS,OAAO,QAAQ;AAC3C,WAAK,YAAY,WAAW,QAAQ,WAAW,YAAY;AAC3D;AAAA,IACF;AAEA,QAAI;AACF,YAAM,SAAS,MAAM,SAAS,GAAG,QAAQ,MAAM;AAE/C,YAAM,WAA2B;AAAA,QAC/B;AAAA,QACA,MAAM;AAAA,QACN,MAAM;AAAA,MACR;AAEA,YAAM,aAAa,SAAS,OAAO,QAAQ;AAC3C,WAAK,YAAY,WAAW,QAAQ,WAAW,YAAY;AAAA,IAC7D,SAAS,KAAK;AACZ,YAAM,WAA2B;AAAA,QAC/B;AAAA,QACA,MAAM;AAAA,QACN,MAAM,eAAe,QAAQ,MAAM,IAAI,MAAM,OAAO,GAAG,CAAC;AAAA,MAC1D;AAEA,YAAM,aAAa,SAAS,OAAO,QAAQ;AAC3C,WAAK,YAAY,WAAW,QAAQ,WAAW,YAAY;AAAA,IAC7D;AAAA,EACF,CAAC;AAED,SAAO;AAAA,IACL,WAAW;AAAA,IACX,UAAU,CAAC;AAAA,IACX,KAAuC,OAAU,MAAmB;AAClE,YAAM,WAA2B;AAAA,QAC/B,MAAM;AAAA,QACN;AAAA,QACA,MAAM;AAAA,MACR;AAEA,YAAM,aAAa,SAAS,OAAO,QAAQ;AAC3C,WAAK,YAAY,WAAW,QAAQ,WAAW,YAAY;AAAA,IAC7D;AAAA,EACF;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/worker/types.d.ts
CHANGED
|
@@ -27,11 +27,11 @@ export type WorkerProxy<TModule extends WorkerModule> = PromisifyMethods<TModule
|
|
|
27
27
|
/**
|
|
28
28
|
* Registers a worker event listener.
|
|
29
29
|
*/
|
|
30
|
-
on<
|
|
30
|
+
on<TEventName extends keyof TModule["default"]["__events"] & string>(event: TEventName, listener: (data: TModule["default"]["__events"][TEventName]) => void): void;
|
|
31
31
|
/**
|
|
32
32
|
* Unregisters a worker event listener.
|
|
33
33
|
*/
|
|
34
|
-
off<
|
|
34
|
+
off<TEventName extends keyof TModule["default"]["__events"] & string>(event: TEventName, listener: (data: TModule["default"]["__events"][TEventName]) => void): void;
|
|
35
35
|
/**
|
|
36
36
|
* Terminates the worker.
|
|
37
37
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["..\\..\\src\\worker\\types.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,CAAC;QACvD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,CAAC,QAAQ,IAAI;KACtC,CAAC,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,GACpE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GACnC,KAAK;CACV,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,YAAY,IAAI,gBAAgB,CACtE,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAChC,GAAG;IACF;;OAEG;IACH,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["..\\..\\src\\worker\\types.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,CAAC;QACvD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,CAAC,QAAQ,IAAI;KACtC,CAAC,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,GACpE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GACnC,KAAK;CACV,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,YAAY,IAAI,gBAAgB,CACtE,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAChC,GAAG;IACF;;OAEG;IACH,EAAE,CAAC,UAAU,SAAS,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,GAAG,MAAM,EACjE,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,GACnE,IAAI,CAAC;IAER;;OAEG;IACH,GAAG,CAAC,UAAU,SAAS,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,GAAG,MAAM,EAClE,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,GACnE,IAAI,CAAC;IAER;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB;IACE,OAAO,EAAE,aAAa,CAAC;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GACD;IACE,OAAO,EAAE,aAAa,CAAC;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,KAAK,CAAC;CACb,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GACD;IACE,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd,CAAC"}
|
package/dist/worker/worker.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventEmitter,
|
|
1
|
+
import { EventEmitter, transfer, Uuid } from "@simplysm/core-common";
|
|
2
2
|
import consola from "consola";
|
|
3
3
|
import path from "path";
|
|
4
4
|
import { fileURLToPath } from "url";
|
|
@@ -52,7 +52,7 @@ class WorkerInternal extends EventEmitter {
|
|
|
52
52
|
this._rejectAllPending(err);
|
|
53
53
|
});
|
|
54
54
|
this._worker.on("message", (serializedResponse) => {
|
|
55
|
-
const decoded =
|
|
55
|
+
const decoded = transfer.decode(serializedResponse);
|
|
56
56
|
if (decoded == null || typeof decoded !== "object" || !("type" in decoded)) {
|
|
57
57
|
logger.warn("Invalid response format from worker:", decoded);
|
|
58
58
|
return;
|
|
@@ -92,12 +92,12 @@ class WorkerInternal extends EventEmitter {
|
|
|
92
92
|
call(method, params) {
|
|
93
93
|
return new Promise((resolve, reject) => {
|
|
94
94
|
const request = {
|
|
95
|
-
id: Uuid.
|
|
95
|
+
id: Uuid.generate().toString(),
|
|
96
96
|
method,
|
|
97
97
|
params
|
|
98
98
|
};
|
|
99
99
|
this._pendingRequests.set(request.id, { method, resolve, reject });
|
|
100
|
-
const serialized =
|
|
100
|
+
const serialized = transfer.encode(request);
|
|
101
101
|
this._worker.postMessage(serialized.result, serialized.transferList);
|
|
102
102
|
});
|
|
103
103
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/worker/worker.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,cAAc,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simplysm/core-node",
|
|
3
|
-
"version": "13.0.
|
|
3
|
+
"version": "13.0.78",
|
|
4
4
|
"description": "Simplysm package - Core module (node)",
|
|
5
5
|
"author": "simplysm",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -24,6 +24,6 @@
|
|
|
24
24
|
"glob": "^13.0.6",
|
|
25
25
|
"minimatch": "^10.2.4",
|
|
26
26
|
"tsx": "^4.21.0",
|
|
27
|
-
"@simplysm/core-common": "13.0.
|
|
27
|
+
"@simplysm/core-common": "13.0.78"
|
|
28
28
|
}
|
|
29
29
|
}
|
|
@@ -4,7 +4,7 @@ import consola from "consola";
|
|
|
4
4
|
import type { EventName } from "chokidar/handler.js";
|
|
5
5
|
import { Minimatch } from "minimatch";
|
|
6
6
|
import path from "path";
|
|
7
|
-
import { type NormPath,
|
|
7
|
+
import { type NormPath, norm } from "../utils/path";
|
|
8
8
|
|
|
9
9
|
//#region Helpers
|
|
10
10
|
|
|
@@ -200,7 +200,7 @@ export class FsWatcher {
|
|
|
200
200
|
|
|
201
201
|
const changeInfos = Array.from(currChangeInfoMap.entries()).map(
|
|
202
202
|
([changedPath, evt]): FsWatcherChangeInfo => ({
|
|
203
|
-
path:
|
|
203
|
+
path: norm(changedPath),
|
|
204
204
|
event: evt as FsWatcherEvent,
|
|
205
205
|
}),
|
|
206
206
|
);
|
package/src/index.ts
CHANGED