@simplysm/core-node 13.0.100 → 14.0.4
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 +93 -79
- package/dist/features/fs-watcher.d.ts +21 -21
- package/dist/features/fs-watcher.d.ts.map +1 -1
- package/dist/features/fs-watcher.js +176 -114
- package/dist/features/fs-watcher.js.map +1 -6
- package/dist/index.js +6 -7
- package/dist/index.js.map +1 -6
- package/dist/utils/fs.d.ts +96 -96
- package/dist/utils/fs.d.ts.map +1 -1
- package/dist/utils/fs.js +437 -272
- package/dist/utils/fs.js.map +1 -6
- package/dist/utils/path.d.ts +22 -22
- package/dist/utils/path.js +103 -45
- package/dist/utils/path.js.map +1 -6
- package/dist/worker/create-worker.d.ts +3 -3
- package/dist/worker/create-worker.js +106 -81
- package/dist/worker/create-worker.js.map +1 -6
- package/dist/worker/types.d.ts +14 -14
- package/dist/worker/types.js +4 -1
- package/dist/worker/types.js.map +1 -6
- package/dist/worker/worker.d.ts +5 -5
- package/dist/worker/worker.js +168 -132
- package/dist/worker/worker.js.map +1 -6
- package/docs/fs-watcher.md +107 -0
- package/docs/fsx.md +287 -0
- package/docs/pathx.md +115 -0
- package/docs/worker.md +117 -62
- package/lib/worker-dev-proxy.js +15 -0
- package/package.json +9 -6
- package/src/features/fs-watcher.ts +53 -42
- package/src/index.ts +3 -3
- package/src/utils/fs.ts +111 -120
- package/src/utils/path.ts +26 -26
- package/src/worker/create-worker.ts +10 -10
- package/src/worker/types.ts +14 -14
- package/src/worker/worker.ts +29 -29
- package/docs/features.md +0 -91
- package/docs/fs.md +0 -309
- package/docs/path.md +0 -120
- package/tests/utils/fs-watcher.spec.ts +0 -286
- package/tests/utils/fs.spec.ts +0 -705
- package/tests/utils/path.spec.ts +0 -179
- package/tests/worker/fixtures/test-worker.ts +0 -35
- package/tests/worker/sd-worker.spec.ts +0 -174
package/dist/utils/fs.js.map
CHANGED
|
@@ -1,6 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/fs.ts"],
|
|
4
|
-
"mappings": "AAAA,OAAO,UAAU;AACjB,OAAO,QAAQ;AACf,OAAO,QAAQ;AACf,SAAS,QAAQ,SAA2B,YAAY,mBAAmB;AAC3E,SAAS,MAAM,eAAe;AAC9B,OAAO;AAQA,SAAS,WAAW,YAA6B;AACtD,SAAO,GAAG,WAAW,UAAU;AACjC;AAMA,eAAsB,OAAO,YAAsC;AACjE,MAAI;AACF,UAAM,GAAG,SAAS,OAAO,UAAU;AACnC,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAUO,SAAS,UAAU,YAA0B;AAClD,MAAI;AACF,OAAG,UAAU,YAAY,EAAE,WAAW,KAAK,CAAC;AAAA,EAC9C,SAAS,KAAK;AACZ,UAAM,IAAI,QAAQ,KAAK,UAAU;AAAA,EACnC;AACF;AAMA,eAAsB,MAAM,YAAmC;AAC7D,MAAI;AACF,UAAM,GAAG,SAAS,MAAM,YAAY,EAAE,WAAW,KAAK,CAAC;AAAA,EACzD,SAAS,KAAK;AACZ,UAAM,IAAI,QAAQ,KAAK,UAAU;AAAA,EACnC;AACF;AAWO,SAAS,OAAO,YAA0B;AAC/C,MAAI;AACF,OAAG,OAAO,YAAY,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AAAA,EACxD,SAAS,KAAK;AACZ,UAAM,IAAI,QAAQ,KAAK,UAAU;AAAA,EACnC;AACF;AAOA,eAAsB,GAAG,YAAmC;AAC1D,MAAI;AACF,UAAM,GAAG,SAAS,GAAG,YAAY;AAAA,MAC/B,WAAW;AAAA,MACX,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,IACd,CAAC;AAAA,EACH,SAAS,KAAK;AACZ,UAAM,IAAI,QAAQ,KAAK,UAAU;AAAA,EACnC;AACF;AAWA,SAAS,mBACP,YACA,YACA,UACA,QACa;AACb,QAAM,UAAuB,CAAC;AAC9B,aAAW,aAAa,UAAU;AAChC,QAAI,WAAW,UAAa,CAAC,OAAO,SAAS,GAAG;AAC9C;AAAA,IACF;AACA,UAAM,oBAAoB,KAAK,SAAS,YAAY,SAAS;AAC7D,UAAM,kBAAkB,KAAK,QAAQ,YAAY,iBAAiB;AAClE,YAAQ,KAAK,EAAE,YAAY,WAAW,YAAY,gBAAgB,CAAC;AAAA,EACrE;AACA,SAAO;AACT;AAgBO,SAAS,SACd,YACA,YACA,QACM;AACN,MAAI,CAAC,WAAW,UAAU,GAAG;AAC3B;AAAA,EACF;AAEA,MAAI;AACJ,MAAI;AACF,YAAQ,GAAG,UAAU,UAAU;AAAA,EACjC,SAAS,KAAK;AACZ,UAAM,IAAI,QAAQ,KAAK,UAAU;AAAA,EACnC;AAEA,MAAI,MAAM,YAAY,GAAG;AACvB,cAAU,UAAU;AACpB,UAAM,WAAW,SAAS,KAAK,QAAQ,YAAY,GAAG,GAAG,EAAE,KAAK,KAAK,CAAC;AACtE,eAAW,SAAS,mBAAmB,YAAY,YAAY,UAAU,MAAM,GAAG;AAChF,eAAS,MAAM,YAAY,MAAM,YAAY,MAAM;AAAA,IACrD;AAAA,EACF,OAAO;AACL,cAAU,KAAK,QAAQ,UAAU,CAAC;AAElC,QAAI;AACF,SAAG,aAAa,YAAY,UAAU;AAAA,IACxC,SAAS,KAAK;AACZ,YAAM,IAAI,QAAQ,KAAK,UAAU;AAAA,IACnC;AAAA,EACF;AACF;AAgBA,eAAsB,KACpB,YACA,YACA,QACe;AACf,MAAI,CAAE,MAAM,OAAO,UAAU,GAAI;AAC/B;AAAA,EACF;AAEA,MAAI;AACJ,MAAI;AACF,YAAQ,MAAM,GAAG,SAAS,MAAM,UAAU;AAAA,EAC5C,SAAS,KAAK;AACZ,UAAM,IAAI,QAAQ,KAAK,UAAU;AAAA,EACnC;AAEA,MAAI,MAAM,YAAY,GAAG;AACvB,UAAM,MAAM,UAAU;AACtB,UAAM,WAAW,MAAM,KAAK,KAAK,QAAQ,YAAY,GAAG,GAAG,EAAE,KAAK,KAAK,CAAC;AACxE,UAAM,mBAAmB,YAAY,YAAY,UAAU,MAAM,EAC9D,cAAc,OAAO,UAAU;AAC9B,YAAM,KAAK,MAAM,YAAY,MAAM,YAAY,MAAM;AAAA,IACvD,CAAC;AAAA,EACL,OAAO;AACL,UAAM,MAAM,KAAK,QAAQ,UAAU,CAAC;AAEpC,QAAI;AACF,YAAM,GAAG,SAAS,SAAS,YAAY,UAAU;AAAA,IACnD,SAAS,KAAK;AACZ,YAAM,IAAI,QAAQ,KAAK,UAAU;AAAA,IACnC;AAAA,EACF;AACF;AAUO,SAAS,SAAS,YAA4B;AACnD,MAAI;AACF,WAAO,GAAG,aAAa,YAAY,OAAO;AAAA,EAC5C,SAAS,KAAK;AACZ,UAAM,IAAI,QAAQ,KAAK,UAAU;AAAA,EACnC;AACF;AAMA,eAAsB,KAAK,YAAqC;AAC9D,MAAI;AACF,WAAO,MAAM,GAAG,SAAS,SAAS,YAAY,OAAO;AAAA,EACvD,SAAS,KAAK;AACZ,UAAM,IAAI,QAAQ,KAAK,UAAU;AAAA,EACnC;AACF;AAMO,SAAS,eAAe,YAA4B;AACzD,MAAI;AACF,WAAO,GAAG,aAAa,UAAU;AAAA,EACnC,SAAS,KAAK;AACZ,UAAM,IAAI,QAAQ,KAAK,UAAU;AAAA,EACnC;AACF;AAMA,eAAsB,WAAW,YAAqC;AACpE,MAAI;AACF,WAAO,MAAM,GAAG,SAAS,SAAS,UAAU;AAAA,EAC9C,SAAS,KAAK;AACZ,UAAM,IAAI,QAAQ,KAAK,UAAU;AAAA,EACnC;AACF;AAMO,SAAS,aAA8B,YAA2B;AACvE,QAAM,WAAW,SAAS,UAAU;AACpC,MAAI;AACF,WAAO,KAAK,MAAM,QAAQ;AAAA,EAC5B,SAAS,KAAK;AACZ,UAAM,UAAU,SAAS,SAAS,MAAM,SAAS,MAAM,GAAG,GAAG,IAAI,mBAAmB;AACpF,UAAM,IAAI,QAAQ,KAAK,aAAa,GAAG,MAAM,OAAO;AAAA,EACtD;AACF;AAMA,eAAsB,SAA0B,YAAoC;AAClF,QAAM,WAAW,MAAM,KAAK,UAAU;AACtC,MAAI;AACF,WAAO,KAAK,MAAa,QAAQ;AAAA,EACnC,SAAS,KAAK;AACZ,UAAM,UAAU,SAAS,SAAS,MAAM,SAAS,MAAM,GAAG,GAAG,IAAI,mBAAmB;AACpF,UAAM,IAAI,QAAQ,KAAK,aAAa,GAAG,MAAM,OAAO;AAAA,EACtD;AACF;AAWO,SAAS,UAAU,YAAoB,MAAiC;AAC7E,YAAU,KAAK,QAAQ,UAAU,CAAC;AAElC,MAAI;AACF,OAAG,cAAc,YAAY,MAAM,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,SAAS,KAAK;AACZ,UAAM,IAAI,QAAQ,KAAK,UAAU;AAAA,EACnC;AACF;AAOA,eAAsB,MAAM,YAAoB,MAA0C;AACxF,QAAM,MAAM,KAAK,QAAQ,UAAU,CAAC;AAEpC,MAAI;AACF,UAAM,GAAG,SAAS,UAAU,YAAY,MAAM,EAAE,OAAO,KAAK,CAAC;AAAA,EAC/D,SAAS,KAAK;AACZ,UAAM,IAAI,QAAQ,KAAK,UAAU;AAAA,EACnC;AACF;AAQO,SAAS,cACd,YACA,MACA,SAIM;AACN,QAAM,UAAU,KAAK,UAAU,MAAM,OAAO;AAC5C,YAAU,YAAY,OAAO;AAC/B;AAQA,eAAsB,UACpB,YACA,MACA,SAIe;AACf,QAAM,UAAU,KAAK,UAAU,MAAM,OAAO;AAC5C,QAAM,MAAM,YAAY,OAAO;AACjC;AAUO,SAAS,YAAY,YAA8B;AACxD,MAAI;AACF,WAAO,GAAG,YAAY,UAAU;AAAA,EAClC,SAAS,KAAK;AACZ,UAAM,IAAI,QAAQ,KAAK,UAAU;AAAA,EACnC;AACF;AAMA,eAAsB,QAAQ,YAAuC;AACnE,MAAI;AACF,WAAO,MAAM,GAAG,SAAS,QAAQ,UAAU;AAAA,EAC7C,SAAS,KAAK;AACZ,UAAM,IAAI,QAAQ,KAAK,UAAU;AAAA,EACnC;AACF;AAUO,SAAS,SAAS,YAA8B;AACrD,MAAI;AACF,WAAO,GAAG,SAAS,UAAU;AAAA,EAC/B,SAAS,KAAK;AACZ,UAAM,IAAI,QAAQ,KAAK,UAAU;AAAA,EACnC;AACF;AAMA,eAAsB,KAAK,YAAuC;AAChE,MAAI;AACF,WAAO,MAAM,GAAG,SAAS,KAAK,UAAU;AAAA,EAC1C,SAAS,KAAK;AACZ,UAAM,IAAI,QAAQ,KAAK,UAAU;AAAA,EACnC;AACF;AAMO,SAAS,UAAU,YAA8B;AACtD,MAAI;AACF,WAAO,GAAG,UAAU,UAAU;AAAA,EAChC,SAAS,KAAK;AACZ,UAAM,IAAI,QAAQ,KAAK,UAAU;AAAA,EACnC;AACF;AAMA,eAAsB,MAAM,YAAuC;AACjE,MAAI;AACF,WAAO,MAAM,GAAG,SAAS,MAAM,UAAU;AAAA,EAC3C,SAAS,KAAK;AACZ,UAAM,IAAI,QAAQ,KAAK,UAAU;AAAA,EACnC;AACF;AAYO,SAAS,SAAS,SAAiB,SAAiC;AACzE,SAAO,YAAY,QAAQ,QAAQ,OAAO,GAAG,GAAG,WAAW,CAAC,CAAC,EAAE;AAAA,IAAI,CAAC,SAClE,KAAK,QAAQ,KAAK,SAAS,CAAC;AAAA,EAC9B;AACF;AAQA,eAAsB,KAAK,SAAiB,SAA0C;AACpF,UAAQ,MAAM,QAAQ,QAAQ,QAAQ,OAAO,GAAG,GAAG,WAAW,CAAC,CAAC,GAAG;AAAA,IAAI,CAAC,SACtE,KAAK,QAAQ,KAAK,SAAS,CAAC;AAAA,EAC9B;AACF;AAUA,eAAsB,oBAAoB,SAAgC;AACxE,MAAI,CAAE,MAAM,OAAO,OAAO,EAAI;AAE9B,QAAM,aAAa,MAAM,QAAQ,OAAO;AACxC,MAAI,WAAW;AAEf,aAAW,aAAa,YAAY;AAClC,UAAM,YAAY,KAAK,QAAQ,SAAS,SAAS;AACjD,SAAK,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG;AAC1C,YAAM,oBAAoB,SAAS;AAAA,IACrC,OAAO;AACL,iBAAW;AAAA,IACb;AAAA,EACF;AAGA,MAAI,SAAU;AAGd,OAAK,MAAM,QAAQ,OAAO,GAAG,WAAW,GAAG;AACzC,UAAM,GAAG,OAAO;AAAA,EAClB;AACF;AAWO,SAAS,4BACd,WACA,UACA,UACU;AACV,QAAM,cAAwB,CAAC;AAE/B,MAAI,UAAU;AACd,SAAO,SAAS;AACd,UAAM,YAAY,KAAK,QAAQ,SAAS,SAAS;AACjD,UAAM,cAAc,SAAS,SAAS;AACtC,gBAAY,KAAK,GAAG,WAAW;AAE/B,QAAI,YAAY,SAAU;AAE1B,UAAM,OAAO,KAAK,QAAQ,OAAO;AACjC,QAAI,SAAS,QAAS;AACtB,cAAU;AAAA,EACZ;AAEA,SAAO;AACT;AAWA,eAAsB,wBACpB,WACA,UACA,UACmB;AACnB,QAAM,cAAwB,CAAC;AAE/B,MAAI,UAAU;AACd,SAAO,SAAS;AACd,UAAM,YAAY,KAAK,QAAQ,SAAS,SAAS;AACjD,UAAM,cAAc,MAAM,KAAK,SAAS;AACxC,gBAAY,KAAK,GAAG,WAAW;AAE/B,QAAI,YAAY,SAAU;AAE1B,UAAM,OAAO,KAAK,QAAQ,OAAO;AACjC,QAAI,SAAS,QAAS;AACtB,cAAU;AAAA,EACZ;AAEA,SAAO;AACT;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["..\\..\\src\\utils\\fs.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/path.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
declare const NORM: unique symbol;
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
3
|
+
* 정규화된 경로를 나타내는 브랜드 타입.
|
|
4
|
+
* norm()을 통해서만 생성할 수 있다.
|
|
5
5
|
*/
|
|
6
6
|
export type NormPath = string & {
|
|
7
7
|
[NORM]: never;
|
|
8
8
|
};
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* POSIX 스타일 경로로 변환한다 (백슬래시 → 슬래시).
|
|
11
11
|
*
|
|
12
12
|
* @example
|
|
13
13
|
* posix("C:\\Users\\test"); // "C:/Users/test"
|
|
@@ -15,17 +15,17 @@ export type NormPath = string & {
|
|
|
15
15
|
*/
|
|
16
16
|
export declare function posix(...args: string[]): string;
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
18
|
+
* 파일 경로의 디렉토리를 변경한다.
|
|
19
19
|
*
|
|
20
20
|
* @example
|
|
21
21
|
* changeFileDirectory("/a/b/c.txt", "/a", "/x");
|
|
22
22
|
* // → "/x/b/c.txt"
|
|
23
23
|
*
|
|
24
|
-
* @throws
|
|
24
|
+
* @throws 파일이 fromDirectory 내부에 없는 경우 에러 발생
|
|
25
25
|
*/
|
|
26
26
|
export declare function changeFileDirectory(filePath: string, fromDirectory: string, toDirectory: string): string;
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
28
|
+
* 확장자를 제외한 파일명(basename)을 반환한다.
|
|
29
29
|
*
|
|
30
30
|
* @example
|
|
31
31
|
* basenameWithoutExt("file.txt"); // "file"
|
|
@@ -33,37 +33,37 @@ export declare function changeFileDirectory(filePath: string, fromDirectory: str
|
|
|
33
33
|
*/
|
|
34
34
|
export declare function basenameWithoutExt(filePath: string): string;
|
|
35
35
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
36
|
+
* childPath가 parentPath의 하위 경로인지 확인한다.
|
|
37
|
+
* 동일한 경로이면 false를 반환한다.
|
|
38
38
|
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
39
|
+
* 경로는 내부적으로 `norm()`을 사용하여 정규화되며,
|
|
40
|
+
* 플랫폼별 경로 구분자(Windows: `\`, Unix: `/`)를 사용하여 비교한다.
|
|
41
41
|
*
|
|
42
42
|
* @example
|
|
43
43
|
* isChildPath("/a/b/c", "/a/b"); // true
|
|
44
44
|
* isChildPath("/a/b", "/a/b/c"); // false
|
|
45
|
-
* isChildPath("/a/b", "/a/b"); // false (
|
|
45
|
+
* isChildPath("/a/b", "/a/b"); // false (동일 경로)
|
|
46
46
|
*/
|
|
47
47
|
export declare function isChildPath(childPath: string, parentPath: string): boolean;
|
|
48
48
|
/**
|
|
49
|
-
*
|
|
50
|
-
*
|
|
49
|
+
* 경로를 정규화하여 NormPath로 반환한다.
|
|
50
|
+
* 절대 경로로 변환하고 플랫폼별 구분자로 정규화한다.
|
|
51
51
|
*
|
|
52
52
|
* @example
|
|
53
53
|
* norm("/some/path"); // NormPath
|
|
54
|
-
* norm("relative", "path"); // NormPath (
|
|
54
|
+
* norm("relative", "path"); // NormPath (절대 경로로 변환됨)
|
|
55
55
|
*/
|
|
56
56
|
export declare function norm(...paths: string[]): NormPath;
|
|
57
57
|
/**
|
|
58
|
-
*
|
|
59
|
-
*
|
|
58
|
+
* 대상 경로 목록을 기반으로 파일을 필터링한다.
|
|
59
|
+
* 대상 경로와 일치하거나 하위에 있는 파일을 포함한다.
|
|
60
60
|
*
|
|
61
|
-
* @param files -
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
* @param targets -
|
|
65
|
-
* @param cwd -
|
|
66
|
-
* @returns
|
|
61
|
+
* @param files - 필터링할 파일 경로.
|
|
62
|
+
* **주의**: cwd 하위의 절대 경로여야 한다.
|
|
63
|
+
* cwd 외부의 경로는 상대 경로(../)로 변환되어 처리된다.
|
|
64
|
+
* @param targets - 대상 경로 (cwd 기준 상대 경로, POSIX 스타일 권장)
|
|
65
|
+
* @param cwd - 현재 작업 디렉토리 (절대 경로)
|
|
66
|
+
* @returns targets가 비어있으면 files를 그대로 반환; 그렇지 않으면 대상 경로 하위의 파일만 반환
|
|
67
67
|
*
|
|
68
68
|
* @example
|
|
69
69
|
* const files = ["/proj/src/a.ts", "/proj/src/b.ts", "/proj/tests/c.ts"];
|
package/dist/utils/path.js
CHANGED
|
@@ -1,53 +1,111 @@
|
|
|
1
1
|
import path from "path";
|
|
2
2
|
import { ArgumentError } from "@simplysm/core-common";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
//#region Types
|
|
4
|
+
const NORM = Symbol("NormPath");
|
|
5
|
+
//#endregion
|
|
6
|
+
//#region 함수
|
|
7
|
+
/**
|
|
8
|
+
* POSIX 스타일 경로로 변환한다 (백슬래시 → 슬래시).
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* posix("C:\\Users\\test"); // "C:/Users/test"
|
|
12
|
+
* posix("src", "index.ts"); // "src/index.ts"
|
|
13
|
+
*/
|
|
14
|
+
export function posix(...args) {
|
|
15
|
+
const resolvedPath = path.join(...args);
|
|
16
|
+
return resolvedPath.replace(/\\/g, "/");
|
|
7
17
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
/**
|
|
19
|
+
* 파일 경로의 디렉토리를 변경한다.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* changeFileDirectory("/a/b/c.txt", "/a", "/x");
|
|
23
|
+
* // → "/x/b/c.txt"
|
|
24
|
+
*
|
|
25
|
+
* @throws 파일이 fromDirectory 내부에 없는 경우 에러 발생
|
|
26
|
+
*/
|
|
27
|
+
export function changeFileDirectory(filePath, fromDirectory, toDirectory) {
|
|
28
|
+
if (filePath === fromDirectory) {
|
|
29
|
+
return toDirectory;
|
|
30
|
+
}
|
|
31
|
+
if (!isChildPath(filePath, fromDirectory)) {
|
|
32
|
+
throw new ArgumentError(`'${filePath}'은(는) ${fromDirectory} 내부에 없습니다.`, {
|
|
33
|
+
filePath,
|
|
34
|
+
fromDirectory,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return path.resolve(toDirectory, path.relative(fromDirectory, filePath));
|
|
19
38
|
}
|
|
20
|
-
|
|
21
|
-
|
|
39
|
+
/**
|
|
40
|
+
* 확장자를 제외한 파일명(basename)을 반환한다.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* basenameWithoutExt("file.txt"); // "file"
|
|
44
|
+
* basenameWithoutExt("/path/to/file.spec.ts"); // "file.spec"
|
|
45
|
+
*/
|
|
46
|
+
export function basenameWithoutExt(filePath) {
|
|
47
|
+
return path.basename(filePath, path.extname(filePath));
|
|
22
48
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
49
|
+
/**
|
|
50
|
+
* childPath가 parentPath의 하위 경로인지 확인한다.
|
|
51
|
+
* 동일한 경로이면 false를 반환한다.
|
|
52
|
+
*
|
|
53
|
+
* 경로는 내부적으로 `norm()`을 사용하여 정규화되며,
|
|
54
|
+
* 플랫폼별 경로 구분자(Windows: `\`, Unix: `/`)를 사용하여 비교한다.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* isChildPath("/a/b/c", "/a/b"); // true
|
|
58
|
+
* isChildPath("/a/b", "/a/b/c"); // false
|
|
59
|
+
* isChildPath("/a/b", "/a/b"); // false (동일 경로)
|
|
60
|
+
*/
|
|
61
|
+
export function isChildPath(childPath, parentPath) {
|
|
62
|
+
const normalizedChild = norm(childPath);
|
|
63
|
+
const normalizedParent = norm(parentPath);
|
|
64
|
+
// 동일 경로는 false 반환
|
|
65
|
+
if (normalizedChild === normalizedParent) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
// 부모 경로 + 구분자로 시작하는지 확인
|
|
69
|
+
const parentWithSep = normalizedParent.endsWith(path.sep)
|
|
70
|
+
? normalizedParent
|
|
71
|
+
: normalizedParent + path.sep;
|
|
72
|
+
return normalizedChild.startsWith(parentWithSep);
|
|
31
73
|
}
|
|
32
|
-
|
|
33
|
-
|
|
74
|
+
/**
|
|
75
|
+
* 경로를 정규화하여 NormPath로 반환한다.
|
|
76
|
+
* 절대 경로로 변환하고 플랫폼별 구분자로 정규화한다.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* norm("/some/path"); // NormPath
|
|
80
|
+
* norm("relative", "path"); // NormPath (절대 경로로 변환됨)
|
|
81
|
+
*/
|
|
82
|
+
export function norm(...paths) {
|
|
83
|
+
return path.resolve(...paths);
|
|
34
84
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
85
|
+
/**
|
|
86
|
+
* 대상 경로 목록을 기반으로 파일을 필터링한다.
|
|
87
|
+
* 대상 경로와 일치하거나 하위에 있는 파일을 포함한다.
|
|
88
|
+
*
|
|
89
|
+
* @param files - 필터링할 파일 경로.
|
|
90
|
+
* **주의**: cwd 하위의 절대 경로여야 한다.
|
|
91
|
+
* cwd 외부의 경로는 상대 경로(../)로 변환되어 처리된다.
|
|
92
|
+
* @param targets - 대상 경로 (cwd 기준 상대 경로, POSIX 스타일 권장)
|
|
93
|
+
* @param cwd - 현재 작업 디렉토리 (절대 경로)
|
|
94
|
+
* @returns targets가 비어있으면 files를 그대로 반환; 그렇지 않으면 대상 경로 하위의 파일만 반환
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* const files = ["/proj/src/a.ts", "/proj/src/b.ts", "/proj/tests/c.ts"];
|
|
98
|
+
* filterByTargets(files, ["src"], "/proj");
|
|
99
|
+
* // → ["/proj/src/a.ts", "/proj/src/b.ts"]
|
|
100
|
+
*/
|
|
101
|
+
export function filterByTargets(files, targets, cwd) {
|
|
102
|
+
if (targets.length === 0)
|
|
103
|
+
return files;
|
|
104
|
+
const normalizedTargets = targets.map((t) => posix(t));
|
|
105
|
+
return files.filter((file) => {
|
|
106
|
+
const relativePath = posix(path.relative(cwd, file));
|
|
107
|
+
return normalizedTargets.some((target) => relativePath === target || relativePath.startsWith(target + "/"));
|
|
108
|
+
});
|
|
44
109
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
changeFileDirectory,
|
|
48
|
-
filterByTargets,
|
|
49
|
-
isChildPath,
|
|
50
|
-
norm,
|
|
51
|
-
posix
|
|
52
|
-
};
|
|
53
|
-
//# sourceMappingURL=path.js.map
|
|
110
|
+
//#endregion
|
|
111
|
+
//# sourceMappingURL=path.js.map
|
package/dist/utils/path.js.map
CHANGED
|
@@ -1,6 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/path.ts"],
|
|
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
|
-
"names": []
|
|
6
|
-
}
|
|
1
|
+
{"version":3,"file":"path.js","sourceRoot":"","sources":["..\\..\\src\\utils\\path.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,eAAe;AAEf,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAUhC,YAAY;AAEZ,YAAY;AAEZ;;;;;;GAMG;AACH,MAAM,UAAU,KAAK,CAAC,GAAG,IAAc;IACrC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACxC,OAAO,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,aAAqB,EACrB,WAAmB;IAEnB,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC/B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,aAAa,CAAC,IAAI,QAAQ,SAAS,aAAa,YAAY,EAAE;YACtE,QAAQ;YACR,aAAa;SACd,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,UAAkB;IAC/D,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAE1C,kBAAkB;IAClB,IAAI,eAAe,KAAK,gBAAgB,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wBAAwB;IACxB,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;QACvD,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC;IAEhC,OAAO,eAAe,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,IAAI,CAAC,GAAG,KAAe;IACrC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAa,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,eAAe,CAAC,KAAe,EAAE,OAAiB,EAAE,GAAW;IAC7E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QACrD,OAAO,iBAAiB,CAAC,IAAI,CAC3B,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,KAAK,MAAM,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,CAC7E,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,YAAY"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Worker
|
|
2
|
+
* Worker thread에서 사용하기 위한 워커 팩토리.
|
|
3
3
|
*
|
|
4
4
|
* @example
|
|
5
|
-
* //
|
|
5
|
+
* // 이벤트 없는 워커
|
|
6
6
|
* export default createWorker({
|
|
7
7
|
* add: (a: number, b: number) => a + b,
|
|
8
8
|
* });
|
|
9
9
|
*
|
|
10
|
-
* //
|
|
10
|
+
* // 이벤트가 있는 워커
|
|
11
11
|
* interface MyEvents { progress: number; }
|
|
12
12
|
* const methods = {
|
|
13
13
|
* calc: (x: number) => { sender.send("progress", 50); return x * 2; },
|
|
@@ -1,85 +1,110 @@
|
|
|
1
1
|
import { parentPort } from "worker_threads";
|
|
2
2
|
import { SdError, transfer } from "@simplysm/core-common";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
3
|
+
//#region createWorker
|
|
4
|
+
/**
|
|
5
|
+
* Worker thread에서 사용하기 위한 워커 팩토리.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* // 이벤트 없는 워커
|
|
9
|
+
* export default createWorker({
|
|
10
|
+
* add: (a: number, b: number) => a + b,
|
|
11
|
+
* });
|
|
12
|
+
*
|
|
13
|
+
* // 이벤트가 있는 워커
|
|
14
|
+
* interface MyEvents { progress: number; }
|
|
15
|
+
* const methods = {
|
|
16
|
+
* calc: (x: number) => { sender.send("progress", 50); return x * 2; },
|
|
17
|
+
* };
|
|
18
|
+
* const sender = createWorker<typeof methods, MyEvents>(methods);
|
|
19
|
+
* export default sender;
|
|
20
|
+
*/
|
|
21
|
+
export function createWorker(methods) {
|
|
22
|
+
if (parentPort === null) {
|
|
23
|
+
throw new SdError("이 스크립트는 worker thread에서 실행되어야 합니다 (parentPort 필요).");
|
|
16
24
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
25
|
+
const port = parentPort;
|
|
26
|
+
// Worker thread의 stdout은 메인 스레드로 자동 전달되지 않음
|
|
27
|
+
// stdout.write를 가로채서 메시지 프로토콜을 통해 메인 스레드로 전달
|
|
28
|
+
process.stdout.write = (chunk, encodingOrCallback, callback) => {
|
|
29
|
+
const body = typeof chunk === "string" ? chunk : new TextDecoder().decode(chunk);
|
|
30
|
+
const response = { type: "log", body };
|
|
31
|
+
const serialized = transfer.encode(response);
|
|
32
|
+
port.postMessage(serialized.result, serialized.transferList);
|
|
33
|
+
const cb = typeof encodingOrCallback === "function" ? encodingOrCallback : callback;
|
|
34
|
+
if (cb != null) {
|
|
35
|
+
queueMicrotask(() => cb());
|
|
36
|
+
}
|
|
37
|
+
return true;
|
|
38
|
+
};
|
|
39
|
+
port.on("message", async (serializedRequest) => {
|
|
40
|
+
const decoded = transfer.decode(serializedRequest);
|
|
41
|
+
// 요청 구조 검증
|
|
42
|
+
if (decoded == null ||
|
|
43
|
+
typeof decoded !== "object" ||
|
|
44
|
+
!("id" in decoded) ||
|
|
45
|
+
!("method" in decoded) ||
|
|
46
|
+
!("params" in decoded)) {
|
|
47
|
+
let decodedStr;
|
|
48
|
+
try {
|
|
49
|
+
decodedStr = JSON.stringify(decoded);
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
decodedStr = String(decoded);
|
|
53
|
+
}
|
|
54
|
+
const errorResponse = {
|
|
55
|
+
type: "error",
|
|
56
|
+
request: { id: "unknown", method: "unknown", params: [] },
|
|
57
|
+
body: new SdError(`잘못된 워커 요청 형식: ${decodedStr}`),
|
|
58
|
+
};
|
|
59
|
+
const serialized = transfer.encode(errorResponse);
|
|
60
|
+
port.postMessage(serialized.result, serialized.transferList);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const request = decoded;
|
|
64
|
+
const methodFn = methods[request.method];
|
|
65
|
+
if (methodFn == null) {
|
|
66
|
+
const response = {
|
|
67
|
+
request,
|
|
68
|
+
type: "error",
|
|
69
|
+
body: new SdError(`알 수 없는 메서드: ${request.method}`),
|
|
70
|
+
};
|
|
71
|
+
const serialized = transfer.encode(response);
|
|
72
|
+
port.postMessage(serialized.result, serialized.transferList);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
try {
|
|
76
|
+
const result = await methodFn(...request.params);
|
|
77
|
+
const response = {
|
|
78
|
+
request,
|
|
79
|
+
type: "return",
|
|
80
|
+
body: result,
|
|
81
|
+
};
|
|
82
|
+
const serialized = transfer.encode(response);
|
|
83
|
+
port.postMessage(serialized.result, serialized.transferList);
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
const response = {
|
|
87
|
+
request,
|
|
88
|
+
type: "error",
|
|
89
|
+
body: err instanceof Error ? err : new Error(String(err)),
|
|
90
|
+
};
|
|
91
|
+
const serialized = transfer.encode(response);
|
|
92
|
+
port.postMessage(serialized.result, serialized.transferList);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
return {
|
|
96
|
+
__methods: methods,
|
|
97
|
+
__events: {},
|
|
98
|
+
send(event, data) {
|
|
99
|
+
const response = {
|
|
100
|
+
type: "event",
|
|
101
|
+
event,
|
|
102
|
+
body: data,
|
|
103
|
+
};
|
|
104
|
+
const serialized = transfer.encode(response);
|
|
105
|
+
port.postMessage(serialized.result, serialized.transferList);
|
|
106
|
+
},
|
|
107
|
+
};
|
|
81
108
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
};
|
|
85
|
-
//# sourceMappingURL=create-worker.js.map
|
|
109
|
+
//#endregion
|
|
110
|
+
//# sourceMappingURL=create-worker.js.map
|
|
@@ -1,6 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/worker/create-worker.ts"],
|
|
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
|
-
"names": []
|
|
6
|
-
}
|
|
1
|
+
{"version":3,"file":"create-worker.js","sourceRoot":"","sources":["..\\..\\src\\worker\\create-worker.ts"],"names":[],"mappings":"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"}
|
package/dist/worker/types.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* `createWorker()`가 반환하는 워커 모듈의 타입 구조.
|
|
3
|
+
* `Worker.create<typeof import("./worker")>()`에서 타입 추론에 사용된다.
|
|
4
4
|
*
|
|
5
|
-
* @see createWorker -
|
|
6
|
-
* @see Worker.create -
|
|
5
|
+
* @see createWorker - 워커 모듈 생성
|
|
6
|
+
* @see Worker.create - 워커 프록시 생성
|
|
7
7
|
*/
|
|
8
8
|
export interface WorkerModule {
|
|
9
9
|
default: {
|
|
@@ -12,33 +12,33 @@ export interface WorkerModule {
|
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
15
|
+
* 메서드 반환값을 Promise로 감싸는 매핑 타입.
|
|
16
|
+
* 워커 메서드는 postMessage 기반으로 동작하여 항상 비동기이므로,
|
|
17
|
+
* 동기 메서드 타입도 `Promise<Awaited<R>>`로 변환된다.
|
|
18
18
|
*/
|
|
19
19
|
export type PromisifyMethods<TMethods> = {
|
|
20
20
|
[K in keyof TMethods]: TMethods[K] extends (...args: infer P) => infer R ? (...args: P) => Promise<Awaited<R>> : never;
|
|
21
21
|
};
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
23
|
+
* Worker.create()가 반환하는 프록시 타입.
|
|
24
|
+
* Promise화된 메서드 + on() + terminate()을 제공한다.
|
|
25
25
|
*/
|
|
26
26
|
export type WorkerProxy<TModule extends WorkerModule> = PromisifyMethods<TModule["default"]["__methods"]> & {
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
28
|
+
* 워커 이벤트 리스너를 등록한다.
|
|
29
29
|
*/
|
|
30
30
|
on<TEventName extends keyof TModule["default"]["__events"] & string>(event: TEventName, listener: (data: TModule["default"]["__events"][TEventName]) => void): void;
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
32
|
+
* 워커 이벤트 리스너를 해제한다.
|
|
33
33
|
*/
|
|
34
34
|
off<TEventName extends keyof TModule["default"]["__events"] & string>(event: TEventName, listener: (data: TModule["default"]["__events"][TEventName]) => void): void;
|
|
35
35
|
/**
|
|
36
|
-
*
|
|
36
|
+
* 워커를 종료한다.
|
|
37
37
|
*/
|
|
38
38
|
terminate(): Promise<void>;
|
|
39
39
|
};
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
41
|
+
* 내부 워커 요청 메시지.
|
|
42
42
|
*/
|
|
43
43
|
export interface WorkerRequest {
|
|
44
44
|
id: string;
|
|
@@ -46,7 +46,7 @@ export interface WorkerRequest {
|
|
|
46
46
|
params: unknown[];
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
49
|
-
*
|
|
49
|
+
* 내부 워커 응답 메시지.
|
|
50
50
|
*/
|
|
51
51
|
export type WorkerResponse = {
|
|
52
52
|
request: WorkerRequest;
|
package/dist/worker/types.js
CHANGED