@simplysm/core-common 13.0.0-beta.2 → 13.0.0-beta.21
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/common.types.js +4 -4
- package/dist/errors/argument-error.js +1 -1
- package/dist/errors/not-implemented-error.js +1 -1
- package/dist/errors/timeout-error.js +1 -1
- package/dist/extensions/arr-ext.helpers.js +4 -4
- package/dist/extensions/arr-ext.js +9 -9
- package/dist/features/debounce-queue.js +2 -2
- package/dist/features/serial-queue.js +3 -3
- package/dist/index.js +30 -30
- package/dist/types/date-only.js +2 -2
- package/dist/types/date-time.js +2 -2
- package/dist/types/time.js +2 -2
- package/dist/types/uuid.js +1 -1
- package/dist/utils/bytes.js +1 -1
- package/dist/utils/json.js +8 -8
- package/dist/utils/obj.js +5 -5
- package/dist/utils/primitive.js +5 -5
- package/dist/utils/transferable.js +4 -4
- package/dist/utils/wait.js +1 -1
- package/package.json +7 -4
- package/.cache/typecheck-browser.tsbuildinfo +0 -1
- package/.cache/typecheck-node.tsbuildinfo +0 -1
- package/.cache/typecheck-tests-browser.tsbuildinfo +0 -1
- package/.cache/typecheck-tests-node.tsbuildinfo +0 -1
- package/src/common.types.ts +0 -91
- package/src/env.ts +0 -11
- package/src/errors/argument-error.ts +0 -40
- package/src/errors/not-implemented-error.ts +0 -32
- package/src/errors/sd-error.ts +0 -53
- package/src/errors/timeout-error.ts +0 -36
- package/src/extensions/arr-ext.helpers.ts +0 -53
- package/src/extensions/arr-ext.ts +0 -777
- package/src/extensions/arr-ext.types.ts +0 -258
- package/src/extensions/map-ext.ts +0 -86
- package/src/extensions/set-ext.ts +0 -68
- package/src/features/debounce-queue.ts +0 -116
- package/src/features/event-emitter.ts +0 -112
- package/src/features/serial-queue.ts +0 -94
- package/src/globals.ts +0 -12
- package/src/index.ts +0 -55
- package/src/types/date-only.ts +0 -329
- package/src/types/date-time.ts +0 -294
- package/src/types/lazy-gc-map.ts +0 -244
- package/src/types/time.ts +0 -210
- package/src/types/uuid.ts +0 -113
- package/src/utils/bytes.ts +0 -160
- package/src/utils/date-format.ts +0 -239
- package/src/utils/json.ts +0 -230
- package/src/utils/num.ts +0 -97
- package/src/utils/obj.ts +0 -956
- package/src/utils/path.ts +0 -40
- package/src/utils/primitive.ts +0 -33
- package/src/utils/str.ts +0 -252
- package/src/utils/template-strings.ts +0 -132
- package/src/utils/transferable.ts +0 -269
- package/src/utils/wait.ts +0 -40
- package/src/utils/xml.ts +0 -105
- package/src/zip/sd-zip.ts +0 -218
- package/tests/errors/errors.spec.ts +0 -196
- package/tests/extensions/array-extension.spec.ts +0 -790
- package/tests/extensions/map-extension.spec.ts +0 -147
- package/tests/extensions/set-extension.spec.ts +0 -74
- package/tests/types/date-only.spec.ts +0 -636
- package/tests/types/date-time.spec.ts +0 -391
- package/tests/types/lazy-gc-map.spec.ts +0 -692
- package/tests/types/time.spec.ts +0 -559
- package/tests/types/types.spec.ts +0 -55
- package/tests/types/uuid.spec.ts +0 -91
- package/tests/utils/bytes-utils.spec.ts +0 -230
- package/tests/utils/date-format.spec.ts +0 -371
- package/tests/utils/debounce-queue.spec.ts +0 -272
- package/tests/utils/json.spec.ts +0 -475
- package/tests/utils/number.spec.ts +0 -184
- package/tests/utils/object.spec.ts +0 -827
- package/tests/utils/path.spec.ts +0 -78
- package/tests/utils/primitive.spec.ts +0 -55
- package/tests/utils/sd-event-emitter.spec.ts +0 -216
- package/tests/utils/serial-queue.spec.ts +0 -365
- package/tests/utils/string.spec.ts +0 -294
- package/tests/utils/template-strings.spec.ts +0 -96
- package/tests/utils/transferable.spec.ts +0 -698
- package/tests/utils/wait.spec.ts +0 -145
- package/tests/utils/xml.spec.ts +0 -146
- package/tests/zip/sd-zip.spec.ts +0 -234
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from "vitest";
|
|
2
|
-
import { SdError, ArgumentError, NotImplementedError, TimeoutError } from "@simplysm/core-common";
|
|
3
|
-
|
|
4
|
-
describe("Errors", () => {
|
|
5
|
-
//#region SdError
|
|
6
|
-
|
|
7
|
-
describe("SdError", () => {
|
|
8
|
-
it("메시지로 생성한다", () => {
|
|
9
|
-
const error = new SdError("test message");
|
|
10
|
-
|
|
11
|
-
expect(error.message).toBe("test message");
|
|
12
|
-
expect(error.name).toBe("SdError");
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
it("cause와 함께 생성한다", () => {
|
|
16
|
-
const cause = new Error("original error");
|
|
17
|
-
const error = new SdError(cause, "wrapped message");
|
|
18
|
-
|
|
19
|
-
// 메시지는 "wrapped message => original error" 형식으로 결합됨
|
|
20
|
-
expect(error.message).toContain("wrapped message");
|
|
21
|
-
expect(error.message).toContain("original error");
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
it("cause 메시지를 통합한다", () => {
|
|
25
|
-
const cause = new Error("cause message");
|
|
26
|
-
const error = new SdError(cause, "main message");
|
|
27
|
-
|
|
28
|
-
expect(error.message).toContain("main message");
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
it("다단계 cause 체인을 처리한다", () => {
|
|
32
|
-
const root = new Error("root error");
|
|
33
|
-
const middle = new SdError(root, "middle error");
|
|
34
|
-
const top = new SdError(middle, "top error");
|
|
35
|
-
|
|
36
|
-
expect(top.message).toContain("top error");
|
|
37
|
-
expect(top.message).toContain("middle error");
|
|
38
|
-
expect(top.message).toContain("root error");
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
it("cause의 스택을 현재 스택에 통합한다", () => {
|
|
42
|
-
const cause = new Error("cause error");
|
|
43
|
-
const error = new SdError(cause, "main error");
|
|
44
|
-
|
|
45
|
-
expect(error.stack).toContain("---- cause stack ----");
|
|
46
|
-
expect(error.stack).toContain(cause.stack);
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
it("non-Error 객체를 cause로 전달하면 String()으로 변환한다", () => {
|
|
50
|
-
// 숫자
|
|
51
|
-
const errorFromNumber = new SdError(42, "number cause");
|
|
52
|
-
expect(errorFromNumber.message).toContain("42");
|
|
53
|
-
|
|
54
|
-
// 객체
|
|
55
|
-
const errorFromObject = new SdError({ code: 500, reason: "server error" }, "object cause");
|
|
56
|
-
expect(errorFromObject.message).toContain("object cause");
|
|
57
|
-
|
|
58
|
-
// null/undefined
|
|
59
|
-
const errorFromNull = new SdError(null, "null cause");
|
|
60
|
-
expect(errorFromNull.message).toContain("null cause");
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
//#endregion
|
|
65
|
-
|
|
66
|
-
//#region ArgumentError
|
|
67
|
-
|
|
68
|
-
describe("ArgumentError", () => {
|
|
69
|
-
it("메시지로 생성한다", () => {
|
|
70
|
-
const error = new ArgumentError("invalid argument");
|
|
71
|
-
|
|
72
|
-
expect(error.message).toBe("invalid argument");
|
|
73
|
-
expect(error.name).toBe("ArgumentError");
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
it("argObj와 함께 생성한다", () => {
|
|
77
|
-
const error = new ArgumentError("invalid argument", { param: "value", expected: "string" });
|
|
78
|
-
|
|
79
|
-
// YAML 형식으로 argObj가 메시지에 포함됨
|
|
80
|
-
expect(error.message).toContain("invalid argument");
|
|
81
|
-
expect(error.message).toContain("param");
|
|
82
|
-
expect(error.message).toContain("value");
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
it("메시지 없이 argObj만으로 생성한다", () => {
|
|
86
|
-
const error = new ArgumentError({ key: "value" });
|
|
87
|
-
|
|
88
|
-
expect(error.message).toContain("인수가 잘못되었습니다");
|
|
89
|
-
expect(error.message).toContain("key");
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
//#endregion
|
|
94
|
-
|
|
95
|
-
//#region NotImplementedError
|
|
96
|
-
|
|
97
|
-
describe("NotImplementedError", () => {
|
|
98
|
-
it("기본 메시지로 생성한다", () => {
|
|
99
|
-
const error = new NotImplementedError();
|
|
100
|
-
|
|
101
|
-
expect(error.name).toBe("NotImplementedError");
|
|
102
|
-
expect(error.message).toBe("구현되어 있지 않습니다");
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
it("커스텀 메시지로 생성한다", () => {
|
|
106
|
-
const error = new NotImplementedError("custom message");
|
|
107
|
-
|
|
108
|
-
// "구현되어 있지 않습니다: custom message" 형식
|
|
109
|
-
expect(error.message).toContain("구현되어 있지 않습니다");
|
|
110
|
-
expect(error.message).toContain("custom message");
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
//#endregion
|
|
115
|
-
|
|
116
|
-
//#region TimeoutError
|
|
117
|
-
|
|
118
|
-
describe("TimeoutError", () => {
|
|
119
|
-
it("기본 메시지로 생성한다", () => {
|
|
120
|
-
const error = new TimeoutError();
|
|
121
|
-
|
|
122
|
-
expect(error.name).toBe("TimeoutError");
|
|
123
|
-
expect(error.message).toContain("대기 시간이 초과되었습니다");
|
|
124
|
-
});
|
|
125
|
-
|
|
126
|
-
it("시도 횟수와 함께 생성한다", () => {
|
|
127
|
-
const error = new TimeoutError(5);
|
|
128
|
-
|
|
129
|
-
expect(error.message).toContain("5회");
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
it("시도 횟수와 커스텀 메시지로 생성한다", () => {
|
|
133
|
-
const error = new TimeoutError(3, "custom timeout");
|
|
134
|
-
|
|
135
|
-
expect(error.message).toContain("3회");
|
|
136
|
-
expect(error.message).toContain("custom timeout");
|
|
137
|
-
});
|
|
138
|
-
});
|
|
139
|
-
|
|
140
|
-
//#endregion
|
|
141
|
-
|
|
142
|
-
//#region Error inheritance
|
|
143
|
-
|
|
144
|
-
describe("Error 상속", () => {
|
|
145
|
-
it("SdError는 Error를 상속한다", () => {
|
|
146
|
-
const error = new SdError("test");
|
|
147
|
-
|
|
148
|
-
expect(error).toBeInstanceOf(Error);
|
|
149
|
-
expect(error).toBeInstanceOf(SdError);
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
it("ArgumentError는 SdError를 상속한다", () => {
|
|
153
|
-
const error = new ArgumentError("test");
|
|
154
|
-
|
|
155
|
-
expect(error).toBeInstanceOf(Error);
|
|
156
|
-
expect(error).toBeInstanceOf(SdError);
|
|
157
|
-
expect(error).toBeInstanceOf(ArgumentError);
|
|
158
|
-
});
|
|
159
|
-
|
|
160
|
-
it("NotImplementedError는 SdError를 상속한다", () => {
|
|
161
|
-
const error = new NotImplementedError();
|
|
162
|
-
|
|
163
|
-
expect(error).toBeInstanceOf(Error);
|
|
164
|
-
expect(error).toBeInstanceOf(SdError);
|
|
165
|
-
expect(error).toBeInstanceOf(NotImplementedError);
|
|
166
|
-
});
|
|
167
|
-
|
|
168
|
-
it("TimeoutError는 SdError를 상속한다", () => {
|
|
169
|
-
const error = new TimeoutError();
|
|
170
|
-
|
|
171
|
-
expect(error).toBeInstanceOf(Error);
|
|
172
|
-
expect(error).toBeInstanceOf(SdError);
|
|
173
|
-
expect(error).toBeInstanceOf(TimeoutError);
|
|
174
|
-
});
|
|
175
|
-
});
|
|
176
|
-
|
|
177
|
-
//#endregion
|
|
178
|
-
|
|
179
|
-
//#region Stack trace
|
|
180
|
-
|
|
181
|
-
describe("Stack trace", () => {
|
|
182
|
-
it("모든 에러가 스택 트레이스를 가진다", () => {
|
|
183
|
-
const sdError = new SdError("test");
|
|
184
|
-
const argError = new ArgumentError("test");
|
|
185
|
-
const notImplError = new NotImplementedError();
|
|
186
|
-
const timeoutError = new TimeoutError();
|
|
187
|
-
|
|
188
|
-
expect(sdError.stack).toBeDefined();
|
|
189
|
-
expect(argError.stack).toBeDefined();
|
|
190
|
-
expect(notImplError.stack).toBeDefined();
|
|
191
|
-
expect(timeoutError.stack).toBeDefined();
|
|
192
|
-
});
|
|
193
|
-
});
|
|
194
|
-
|
|
195
|
-
//#endregion
|
|
196
|
-
});
|