lang-json 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
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
+ });