lang-json 1.0.0 → 1.0.1

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 (40) hide show
  1. package/babel.config.js +8 -0
  2. package/coverage/clover.xml +6 -0
  3. package/coverage/coverage-final.json +1 -0
  4. package/coverage/lcov-report/base.css +224 -0
  5. package/coverage/lcov-report/block-navigation.js +87 -0
  6. package/coverage/lcov-report/favicon.png +0 -0
  7. package/coverage/lcov-report/index.html +101 -0
  8. package/coverage/lcov-report/prettify.css +1 -0
  9. package/coverage/lcov-report/prettify.js +2 -0
  10. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  11. package/coverage/lcov-report/sorter.js +196 -0
  12. package/dist/esm/src/index.d.ts +18 -0
  13. package/dist/esm/src/index.js +415 -0
  14. package/dist/esm/src/index.js.map +1 -0
  15. package/dist/esm/src/modules/is-this/index.d.ts +136 -0
  16. package/dist/esm/src/modules/is-this/index.js +484 -0
  17. package/dist/esm/src/modules/is-this/index.js.map +1 -0
  18. package/dist/esm/tests/helpers.test.d.ts +1 -0
  19. package/dist/esm/tests/helpers.test.js +220 -0
  20. package/dist/esm/tests/helpers.test.js.map +1 -0
  21. package/dist/esm/tests/index.test.d.ts +1 -0
  22. package/dist/esm/tests/index.test.js +537 -0
  23. package/dist/esm/tests/index.test.js.map +1 -0
  24. package/jest.config.ts +212 -0
  25. package/package.json +19 -9
  26. package/src/index.ts +450 -296
  27. package/src/modules/is-this/index.ts +682 -0
  28. package/tests/helpers.test.ts +259 -0
  29. package/tests/index.test.ts +681 -0
  30. package/tsconfig.json +15 -16
  31. package/dist/esm/dump.js +0 -2
  32. package/dist/esm/dump.js.map +0 -1
  33. package/dist/esm/example.d.ts +0 -13
  34. package/dist/esm/example.js +0 -93
  35. package/dist/esm/example.js.map +0 -1
  36. package/dist/esm/index.d.ts +0 -36
  37. package/dist/esm/index.js +0 -326
  38. package/dist/esm/index.js.map +0 -1
  39. package/src/example.ts +0 -116
  40. /package/{dist/esm/dump.d.ts → coverage/lcov.info} +0 -0
@@ -0,0 +1,259 @@
1
+ import LangJSON from "../src/index";
2
+
3
+ describe("LangJSON Helpers", () => {
4
+ const langJson = new LangJSON();
5
+
6
+ // String Helpers
7
+ test("uppercase", () => {
8
+ const template = "{{#uppercase 'hello'}}";
9
+ const result = langJson.applyTemplate(template, {});
10
+ expect(result).toBe("HELLO");
11
+ });
12
+
13
+ test("lowercase", () => {
14
+ const template = "{{#lowercase 'HELLO'}}";
15
+ const result = langJson.applyTemplate(template, {});
16
+ expect(result).toBe("hello");
17
+ });
18
+
19
+ test("capitalize", () => {
20
+ const template = "{{#capitalize 'hello'}}";
21
+ const result = langJson.applyTemplate(template, {});
22
+ expect(result).toBe("Hello");
23
+ });
24
+
25
+ test("trim", () => {
26
+ const template = "{{#trim ' hello '}}";
27
+ const result = langJson.applyTemplate(template, {});
28
+ expect(result).toBe("hello");
29
+ });
30
+
31
+ test("concat", () => {
32
+ const template = "{{#concat 'Hello' ' ' 'World'}}";
33
+ const result = langJson.applyTemplate(template, {});
34
+ expect(result).toBe("Hello World");
35
+ });
36
+
37
+ test("replace", () => {
38
+ const template = "{{#replace 'hello world' 'world' 'jest'}}";
39
+ const result = langJson.applyTemplate(template, {});
40
+ expect(result).toBe("hello jest");
41
+ });
42
+
43
+ test("split", () => {
44
+ const template = "{{#split 'a,b,c' ','}}";
45
+ const result = langJson.applyTemplate(template, {});
46
+ expect(result).toEqual(["a", "b", "c"]);
47
+ });
48
+
49
+ test("join", () => {
50
+ const template = "{{#join (split 'a,b,c' ',') '-'}}";
51
+ const result = langJson.applyTemplate(template, {});
52
+ expect(result).toBe("a-b-c");
53
+ });
54
+
55
+ test("reverseString", () => {
56
+ const template = "{{#reverseString 'jest'}}";
57
+ const result = langJson.applyTemplate(template, {});
58
+ expect(result).toBe("tsej");
59
+ });
60
+
61
+ test("toTitleCase", () => {
62
+ const template = "{{#toTitleCase 'hello world'}}";
63
+ const result = langJson.applyTemplate(template, {});
64
+ expect(result).toBe("Hello World");
65
+ });
66
+
67
+ // Mathematical Helpers
68
+ test("add", () => {
69
+ const template = "{{#add 1 2}}";
70
+ const result = langJson.applyTemplate(template, {});
71
+ expect(result).toBe(3);
72
+ });
73
+
74
+ test("subtract", () => {
75
+ const template = "{{#subtract 5 3}}";
76
+ const result = langJson.applyTemplate(template, {});
77
+ expect(result).toBe(2);
78
+ });
79
+
80
+ test("multiply", () => {
81
+ const template = "{{#multiply 2 3}}";
82
+ const result = langJson.applyTemplate(template, {});
83
+ expect(result).toBe(6);
84
+ });
85
+
86
+ test("divide", () => {
87
+ const template = "{{#divide 6 3}}";
88
+ const result = langJson.applyTemplate(template, {});
89
+ expect(result).toBe(2);
90
+ });
91
+
92
+ test("modulo", () => {
93
+ const template = "{{#modulo 5 2}}";
94
+ const result = langJson.applyTemplate(template, {});
95
+ expect(result).toBe(1);
96
+ });
97
+
98
+ test("max", () => {
99
+ const template = "{{#max 1 2 3 4}}";
100
+ const result = langJson.applyTemplate(template, {});
101
+ expect(result).toBe(4);
102
+ });
103
+
104
+ test("min", () => {
105
+ const template = "{{#min 1 2 3 4}}";
106
+ const result = langJson.applyTemplate(template, {});
107
+ expect(result).toBe(1);
108
+ });
109
+
110
+ test("round", () => {
111
+ const template = "{{#round 4.7}}";
112
+ const result = langJson.applyTemplate(template, {});
113
+ expect(result).toBe(5);
114
+ });
115
+
116
+ test("floor", () => {
117
+ const template = "{{#floor 4.7}}";
118
+ const result = langJson.applyTemplate(template, {});
119
+ expect(result).toBe(4);
120
+ });
121
+
122
+ test("ceil", () => {
123
+ const template = "{{#ceil 4.1}}";
124
+ const result = langJson.applyTemplate(template, {});
125
+ expect(result).toBe(5);
126
+ });
127
+
128
+ // Logical Helpers
129
+ test("if", () => {
130
+ const template = "{{#if true 'yes' 'no'}}";
131
+ const result = langJson.applyTemplate(template, {});
132
+ expect(result).toBe("yes");
133
+ });
134
+
135
+ test("and", () => {
136
+ const template = "{{#and true true}}";
137
+ const result = langJson.applyTemplate(template, {});
138
+ expect(result).toBe(true);
139
+ });
140
+
141
+ test("or", () => {
142
+ const template = "{{#or false true}}";
143
+ const result = langJson.applyTemplate(template, {});
144
+ expect(result).toBe(true);
145
+ });
146
+
147
+ test("not", () => {
148
+ const template = "{{#not false}}";
149
+ const result = langJson.applyTemplate(template, {});
150
+ expect(result).toBe(true);
151
+ });
152
+
153
+ // Array Helpers
154
+ test("arrayLength", () => {
155
+ const template = "{{#arrayLength (split '1,2,3' ',')}}";
156
+ const result = langJson.applyTemplate(template, {});
157
+ expect(result).toBe(3);
158
+ });
159
+
160
+ test("arrayIncludes", () => {
161
+ const template = "{{#arrayIncludes (split '1,2,3' ',') '2'}}";
162
+ const result = langJson.applyTemplate(template, {});
163
+ expect(result).toBe(true);
164
+ });
165
+
166
+ test("arrayJoin", () => {
167
+ const template = "{{#arrayJoin (split '1,2,3' ',') '-'}}";
168
+ const result = langJson.applyTemplate(template, {});
169
+ expect(result).toBe("1-2-3");
170
+ });
171
+
172
+ test("uniqueArray", () => {
173
+ const template = "{{#uniqueArray (split '1,1,2,3' ',')}}";
174
+ const result = langJson.applyTemplate(template, {});
175
+ expect(result).toEqual(["1", "2", "3"]);
176
+ });
177
+
178
+ test("shuffleArray", () => {
179
+ const template = "{{#shuffleArray (split '1,2,3' ',')}}";
180
+ const result = langJson.applyTemplate(template, {});
181
+ expect(result.sort()).toEqual(["1", "2", "3"]);
182
+ });
183
+
184
+ // Object Helpers
185
+ test("objectKeys", () => {
186
+ const template = "{{#objectKeys data}}";
187
+ const result = langJson.applyTemplate(template, {
188
+ data: { a: 1, b: 2 },
189
+ });
190
+ expect(result).toEqual(["a", "b"]);
191
+ });
192
+
193
+ test("objectValues", () => {
194
+ const template = "{{#objectValues data}}";
195
+ const result = langJson.applyTemplate(template, {
196
+ data: { a: 1, b: 2 },
197
+ });
198
+ expect(result).toEqual([1, 2]);
199
+ });
200
+
201
+ test("mergeObjects", () => {
202
+ const template = "{{#mergeObjects data}}";
203
+ const result = langJson.applyTemplate(template, {
204
+ data: { a: 1, b: 2 },
205
+ });
206
+ expect(result).toEqual({ a: 1, b: 2 });
207
+ });
208
+
209
+ // Date Helpers
210
+ test("getCurrentDate", () => {
211
+ const template = "{{#getCurrentDate}}";
212
+ const result = langJson.applyTemplate(template, {});
213
+ const currentDate = new Date().toISOString().split("T")[0];
214
+ expect(result).toBe(currentDate);
215
+ });
216
+
217
+ test("getCurrentTime", () => {
218
+ const template = "{{#getCurrentTime}}";
219
+ const result = langJson.applyTemplate(template, {});
220
+ const currentTime = new Date().toLocaleTimeString();
221
+ expect(result).toBe(currentTime);
222
+ });
223
+
224
+ // Miscellaneous Helpers
225
+ test("jsonStringify", () => {
226
+ const template = "{{#jsonStringify data}}";
227
+ const result = langJson.applyTemplate(template, {
228
+ data: { a: 1, b: 2 },
229
+ });
230
+ expect(result).toBe('{"a":1,"b":2}');
231
+ });
232
+
233
+ test("deepEqual", () => {
234
+ const template = "{{#deepEqual { a: 1 } { a: 1 }}}";
235
+ const result = langJson.applyTemplate(template, {});
236
+ expect(result).toBe(true);
237
+ });
238
+
239
+ test("delay", async () => {
240
+ const template = "{{#delay 100}}";
241
+ const start = Date.now();
242
+ await langJson.applyTemplate(template, {});
243
+ const end = Date.now();
244
+ expect(end - start).toBeGreaterThanOrEqual(100);
245
+ });
246
+
247
+ // Additional Helpers
248
+ test("camelToSnake", () => {
249
+ const template = "{{#camelToSnake 'camelCase'}}";
250
+ const result = langJson.applyTemplate(template, {});
251
+ expect(result).toBe("camel_case");
252
+ });
253
+
254
+ test("snakeToCamel", () => {
255
+ const template = "{{#snakeToCamel 'snake_case'}}";
256
+ const result = langJson.applyTemplate(template, {});
257
+ expect(result).toBe("snakeCase");
258
+ });
259
+ });