@simplysm/core-common 13.0.0-beta.6 → 13.0.0-beta.7

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.
Files changed (65) hide show
  1. package/package.json +6 -3
  2. package/.cache/typecheck-browser.tsbuildinfo +0 -1
  3. package/.cache/typecheck-node.tsbuildinfo +0 -1
  4. package/.cache/typecheck-tests-browser.tsbuildinfo +0 -1
  5. package/.cache/typecheck-tests-node.tsbuildinfo +0 -1
  6. package/src/common.types.ts +0 -91
  7. package/src/env.ts +0 -11
  8. package/src/errors/argument-error.ts +0 -40
  9. package/src/errors/not-implemented-error.ts +0 -32
  10. package/src/errors/sd-error.ts +0 -53
  11. package/src/errors/timeout-error.ts +0 -36
  12. package/src/extensions/arr-ext.helpers.ts +0 -53
  13. package/src/extensions/arr-ext.ts +0 -777
  14. package/src/extensions/arr-ext.types.ts +0 -258
  15. package/src/extensions/map-ext.ts +0 -86
  16. package/src/extensions/set-ext.ts +0 -68
  17. package/src/features/debounce-queue.ts +0 -116
  18. package/src/features/event-emitter.ts +0 -112
  19. package/src/features/serial-queue.ts +0 -94
  20. package/src/globals.ts +0 -12
  21. package/src/index.ts +0 -55
  22. package/src/types/date-only.ts +0 -329
  23. package/src/types/date-time.ts +0 -294
  24. package/src/types/lazy-gc-map.ts +0 -244
  25. package/src/types/time.ts +0 -210
  26. package/src/types/uuid.ts +0 -113
  27. package/src/utils/bytes.ts +0 -160
  28. package/src/utils/date-format.ts +0 -239
  29. package/src/utils/json.ts +0 -230
  30. package/src/utils/num.ts +0 -97
  31. package/src/utils/obj.ts +0 -956
  32. package/src/utils/path.ts +0 -40
  33. package/src/utils/primitive.ts +0 -33
  34. package/src/utils/str.ts +0 -252
  35. package/src/utils/template-strings.ts +0 -132
  36. package/src/utils/transferable.ts +0 -269
  37. package/src/utils/wait.ts +0 -40
  38. package/src/utils/xml.ts +0 -105
  39. package/src/zip/sd-zip.ts +0 -218
  40. package/tests/errors/errors.spec.ts +0 -196
  41. package/tests/extensions/array-extension.spec.ts +0 -790
  42. package/tests/extensions/map-extension.spec.ts +0 -147
  43. package/tests/extensions/set-extension.spec.ts +0 -74
  44. package/tests/types/date-only.spec.ts +0 -636
  45. package/tests/types/date-time.spec.ts +0 -391
  46. package/tests/types/lazy-gc-map.spec.ts +0 -692
  47. package/tests/types/time.spec.ts +0 -559
  48. package/tests/types/types.spec.ts +0 -55
  49. package/tests/types/uuid.spec.ts +0 -91
  50. package/tests/utils/bytes-utils.spec.ts +0 -230
  51. package/tests/utils/date-format.spec.ts +0 -371
  52. package/tests/utils/debounce-queue.spec.ts +0 -272
  53. package/tests/utils/json.spec.ts +0 -475
  54. package/tests/utils/number.spec.ts +0 -184
  55. package/tests/utils/object.spec.ts +0 -827
  56. package/tests/utils/path.spec.ts +0 -78
  57. package/tests/utils/primitive.spec.ts +0 -55
  58. package/tests/utils/sd-event-emitter.spec.ts +0 -216
  59. package/tests/utils/serial-queue.spec.ts +0 -365
  60. package/tests/utils/string.spec.ts +0 -294
  61. package/tests/utils/template-strings.spec.ts +0 -96
  62. package/tests/utils/transferable.spec.ts +0 -698
  63. package/tests/utils/wait.spec.ts +0 -145
  64. package/tests/utils/xml.spec.ts +0 -146
  65. 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
- });