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