@glitchproof/form-field-generator 1.0.4 → 1.0.6

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/README.md CHANGED
@@ -358,7 +358,7 @@ Arrays need dynamic indices. Functions provide type-safe, flexible access: `ITEM
358
358
 
359
359
  - **Zero runtime overhead** - pure type-level transformations
360
360
  - **Tree-shakeable** - dead code elimination works perfectly
361
- - **No dependencies** - ~2KB gzipped
361
+ - **No dependencies** - ~10KB gzipped
362
362
  - **Fast TypeScript compilation** - efficient recursive types
363
363
 
364
364
  ## Patterns & Best Practices
package/dist/type.d.ts CHANGED
@@ -30,28 +30,32 @@ type ObjectFieldNameGenerator<Key extends string, Field extends DICT_OBJECT_VALU
30
30
  type IsListedBefore<Path extends string> = CountArrayIndices<Path> extends 0 ? false : true;
31
31
  type ExceptNumber<Key, Result> = Key extends `${number}` ? never : Result;
32
32
  type FeatureFieldsForArrayFields<Path extends string> = {
33
- ELEMENT_AT: ListFieldAccessor<Path>;
33
+ ELEMENT_AT: ListFieldAccessor<`${Path}.${number}`>;
34
34
  };
35
35
  type FeatureFieldsForArraySubFields<Path extends string> = {
36
36
  AT: ListFieldAccessor<Path>;
37
37
  };
38
- type FieldsGroup<Field extends DICT_NESTED_VALUES, Path extends string, FieldName extends string> = {
39
- readonly KEY: FieldName;
40
- readonly PATH: PathGenerator<Path>;
41
- } & {
38
+ type FieldsNameGenerator<Field extends DICT_NESTED_VALUES> = {
42
39
  [KEY in keyof Field as Field[KEY] extends string ? TO_NAME<KEY> : never]: Field[KEY];
43
- } & {
40
+ } & ExtendObjectWithCondition<SubArrayElement<Field> extends never ? false : true, {
41
+ [KEY in keyof SubArrayElement<Field> as SubArrayElement<Field>[KEY] extends string ? TO_NAME<KEY> : never]: SubArrayElement<Field>[KEY];
42
+ }>;
43
+ type FieldsFieldGenerator<Field extends DICT_NESTED_VALUES, Path extends string = ''> = {
44
+ [KEY in keyof Field as Field[KEY] extends string ? TO_FIELD_NAME<KEY> : never]: Path extends '' ? Field[KEY] : IsListedBefore<Path> extends true ? ListFieldAccessor<`${Path}.${Field[KEY] & string}`> : `${Path}.${Field[KEY] & string}`;
45
+ };
46
+ type GenerateFieldsFromArrays<Field extends DICT_NESTED_VALUES, Path extends string> = {
44
47
  [KEY in keyof SubArrayElement<Field> as ObjectFieldNameGenerator<KEY & string, SubArrayElement<Field>>]: SubArrayElement<Field>[KEY] extends DICT_NESTED_VALUES ? FieldsGroup<SubArrayElement<Field>[KEY], `${Path}.${number}.${KEY & string}`, KEY & string> : ListFieldAccessor<`${Path}.${number}.${KEY & string}`>;
45
- } & {
48
+ };
49
+ type GenerateFieldsFromObjects<Field extends DICT_NESTED_VALUES, Path extends string> = {
46
50
  [KEY in keyof Field as Field[KEY] extends DICT_NESTED_VALUES ? ExceptNumber<KEY, TO_OBJECT_FIELD_NAME<KEY>> : never]: Field[KEY] extends DICT_OBJECT_VALUE ? FieldsGroup<Field[KEY], `${Path}.${KEY & string}`, KEY & string> : Field[KEY] extends DICT_ARRAY_VALUE ? FieldsGroup<Field[KEY], `${Path}.${KEY & string}`, KEY & string> : never;
47
- } & {
48
- [KEY in keyof Field as Field[KEY] extends string ? TO_FIELD_NAME<KEY> : never]: IsListedBefore<Path> extends true ? ListFieldAccessor<`${Path}.${Field[KEY] & string}`> : `${Path}.${Field[KEY] & string}`;
49
- } & ExtendObjectWithCondition<IsListedBefore<Path> extends true ? SubArrayElement<Field> extends never ? true : false : false, FeatureFieldsForArraySubFields<Path>> & ExtendObjectWithCondition<SubArrayElement<Field> extends never ? false : true, FeatureFieldsForArrayFields<`${Path}.${number}`>>;
50
- export type GenerateFields<Fields extends DICT> = {
51
- [KEY in keyof Fields as Fields[KEY] extends string ? TO_FIELD_NAME<KEY> : never]: Fields[KEY];
52
- } & {
53
- [KEY in keyof Fields as Fields[KEY] extends string ? TO_NAME<KEY> : never]: Fields[KEY];
54
- } & {
51
+ };
52
+ type AddonOnlyArraysFields<Field extends DICT_NESTED_VALUES, Obj> = ExtendObjectWithCondition<SubArrayElement<Field> extends never ? false : true, Obj>;
53
+ type AddonOnlyFieldsThatListedBefore<Field extends DICT_NESTED_VALUES, Path extends string, Obj> = ExtendObjectWithCondition<IsListedBefore<Path> extends true ? SubArrayElement<Field> extends never ? true : false : false, Obj>;
54
+ type FieldsGroup<Field extends DICT_NESTED_VALUES, Path extends string, FieldName extends string> = {
55
+ readonly KEY: FieldName;
56
+ readonly PATH: PathGenerator<Path>;
57
+ } & FieldsNameGenerator<Field> & GenerateFieldsFromArrays<Field, Path> & GenerateFieldsFromObjects<Field, Path> & FieldsFieldGenerator<Field, Path> & AddonOnlyFieldsThatListedBefore<Field, Path, FeatureFieldsForArraySubFields<Path>> & AddonOnlyArraysFields<Field, FeatureFieldsForArrayFields<Path>>;
58
+ export type GenerateFields<Fields extends DICT> = FieldsFieldGenerator<Fields> & FieldsNameGenerator<Fields> & {
55
59
  [KEY in keyof Fields as Fields[KEY] extends DICT_NESTED_VALUES ? TO_OBJECT_FIELD_NAME<KEY> : never]: Fields[KEY] extends DICT_NESTED_VALUES ? FieldsGroup<Fields[KEY], KEY & string, KEY & string> : never;
56
60
  };
57
61
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glitchproof/form-field-generator",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "> Type-safe field path generation for nested objects and arrays",
5
5
  "scripts": {
6
6
  "build": "tsc",
@@ -27,7 +27,8 @@
27
27
  "url": "git+https://github.com/RashadNazarzade/field-generator.git"
28
28
  },
29
29
  "files": [
30
- "dist"
30
+ "dist",
31
+ "!dist/__test__"
31
32
  ],
32
33
  "type": "module",
33
34
  "main": "dist/index.js",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=convert.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"convert.test.d.ts","sourceRoot":"","sources":["../../src/__test__/convert.test.ts"],"names":[],"mappings":""}
@@ -1,429 +0,0 @@
1
- import { test, expect, describe } from 'vitest';
2
- import { convert } from '../core/convert.js';
3
- describe('convert', () => {
4
- test('should convert a dictionary to a fields object', () => {
5
- const fields = convert({ name: 'name', age: 'age' });
6
- expect(fields).toEqual({
7
- NAME_FIELD: 'name',
8
- AGE_FIELD: 'age',
9
- NAME: 'name',
10
- AGE: 'age',
11
- });
12
- });
13
- test('should convert a nested dictionary to a fields object ', () => {
14
- const fields = convert({
15
- name: 'name',
16
- age: 'age',
17
- address: { street: 'street', city: 'city', state: 'state', zip: 'zip' },
18
- });
19
- expect(fields).toEqual({
20
- AGE: 'age',
21
- NAME: 'name',
22
- AGE_FIELD: 'age',
23
- NAME_FIELD: 'name',
24
- $ADDRESS: {
25
- KEY: 'address',
26
- STREET: 'street',
27
- STREET_FIELD: 'address.street',
28
- CITY: 'city',
29
- CITY_FIELD: 'address.city',
30
- STATE: 'state',
31
- STATE_FIELD: 'address.state',
32
- ZIP: 'zip',
33
- ZIP_FIELD: 'address.zip',
34
- },
35
- });
36
- });
37
- test('should convert a list to fields object', () => {
38
- const fields = convert({
39
- name: 'name',
40
- age: 'age',
41
- address: { street: 'street', city: 'city', state: 'state', zip: 'zip' },
42
- routes: [
43
- {
44
- name: 'name',
45
- age: 'age',
46
- innerRoutes: [{ name: 'name', age: 'age' }],
47
- },
48
- ],
49
- });
50
- expect(fields).toMatchObject({
51
- AGE: 'age',
52
- NAME: 'name',
53
- AGE_FIELD: 'age',
54
- NAME_FIELD: 'name',
55
- $ADDRESS: {
56
- KEY: 'address',
57
- STREET: 'street',
58
- STREET_FIELD: 'address.street',
59
- CITY: 'city',
60
- CITY_FIELD: 'address.city',
61
- STATE: 'state',
62
- STATE_FIELD: 'address.state',
63
- ZIP: 'zip',
64
- ZIP_FIELD: 'address.zip',
65
- },
66
- $ROUTES: {
67
- KEY: 'routes',
68
- NAME: 'name',
69
- AGE: 'age',
70
- NAME_FIELD: expect.any(Function),
71
- AGE_FIELD: expect.any(Function),
72
- $INNER_ROUTES: {
73
- KEY: 'innerRoutes',
74
- PATH: expect.any(Function),
75
- NAME: 'name',
76
- AGE: 'age',
77
- NAME_FIELD: expect.any(Function),
78
- AGE_FIELD: expect.any(Function),
79
- },
80
- },
81
- });
82
- });
83
- test('should convert a inner object of list to fields object', () => {
84
- const fields = convert({
85
- routes: [
86
- {
87
- places: {
88
- place1: 'place1',
89
- place2: 'place2',
90
- },
91
- },
92
- ],
93
- });
94
- expect(fields).toMatchObject({
95
- ROUTES_FIELD: () => { },
96
- $ROUTES: {
97
- KEY: 'routes',
98
- $PLACES: {
99
- KEY: 'places',
100
- PATH: () => { },
101
- PLACE1: 'place1',
102
- PLACE2: 'place2',
103
- PLACE1_FIELD: () => { },
104
- PLACE2_FIELD: () => { },
105
- },
106
- },
107
- });
108
- });
109
- test('should convert empty object', () => {
110
- const fields = convert({});
111
- expect(fields).toEqual({});
112
- });
113
- test('should convert object with single string field', () => {
114
- const fields = convert({ name: 'name' });
115
- expect(fields).toEqual({
116
- NAME: 'name',
117
- NAME_FIELD: 'name',
118
- });
119
- });
120
- test('should convert object with camelCase keys', () => {
121
- const fields = convert({
122
- firstName: 'firstName',
123
- lastName: 'lastName',
124
- userAge: 'userAge',
125
- });
126
- expect(fields).toEqual({
127
- FIRST_NAME: 'firstName',
128
- FIRST_NAME_FIELD: 'firstName',
129
- LAST_NAME: 'lastName',
130
- LAST_NAME_FIELD: 'lastName',
131
- USER_AGE: 'userAge',
132
- USER_AGE_FIELD: 'userAge',
133
- });
134
- });
135
- test('should convert object with array at top level', () => {
136
- const fields = convert([
137
- {
138
- id: 'id',
139
- name: 'name',
140
- },
141
- ]);
142
- expect(fields).toMatchObject({
143
- ID: 'id',
144
- NAME: 'name',
145
- ID_FIELD: () => { },
146
- NAME_FIELD: () => { },
147
- });
148
- expect(fields.ID_FIELD()).toBe('.id');
149
- expect(fields.NAME_FIELD()).toBe('.name');
150
- });
151
- test('should convert array with nested arrays (multi-level lists)', () => {
152
- const fields = convert({
153
- matrix: [
154
- [
155
- {
156
- value: 'value',
157
- },
158
- ],
159
- ],
160
- });
161
- expect(fields).toMatchObject({
162
- $MATRIX: {
163
- KEY: 'matrix',
164
- },
165
- });
166
- expect(fields.MATRIX_FIELD()).toBe('.matrix');
167
- });
168
- test('should convert object with nested object containing array', () => {
169
- const fields = convert({
170
- user: {
171
- name: 'name',
172
- tags: [{ value: 'value' }],
173
- },
174
- });
175
- expect(fields).toMatchObject({
176
- $USER: {
177
- KEY: 'user',
178
- NAME: 'name',
179
- NAME_FIELD: 'user.name',
180
- $TAGS: {
181
- KEY: 'tags',
182
- VALUE: 'value',
183
- },
184
- },
185
- });
186
- expect(fields.$USER.TAGS_FIELD()).toBe('user.tags');
187
- expect(typeof fields.$USER.$TAGS.PATH).toBe('function');
188
- expect(fields.$USER.$TAGS.VALUE_FIELD(0)).toBe('user.tags.0.value');
189
- });
190
- test('should convert object with multiple arrays at same level', () => {
191
- const fields = convert({
192
- users: [{ name: 'name' }],
193
- posts: [{ title: 'title' }],
194
- comments: [{ text: 'text' }],
195
- });
196
- expect(fields).toMatchObject({
197
- $USERS: {
198
- KEY: 'users',
199
- NAME: 'name',
200
- },
201
- $POSTS: {
202
- KEY: 'posts',
203
- TITLE: 'title',
204
- },
205
- $COMMENTS: {
206
- KEY: 'comments',
207
- TEXT: 'text',
208
- },
209
- });
210
- expect(fields.USERS_FIELD()).toBe('.users');
211
- expect(fields.POSTS_FIELD()).toBe('.posts');
212
- expect(fields.COMMENTS_FIELD()).toBe('.comments');
213
- expect(fields.$USERS.NAME_FIELD(0)).toBe('users.0.name');
214
- expect(fields.$POSTS.TITLE_FIELD(1)).toBe('posts.1.title');
215
- expect(fields.$COMMENTS.TEXT_FIELD(2)).toBe('comments.2.text');
216
- });
217
- test('should convert deeply nested object structure', () => {
218
- const fields = convert({
219
- level1: {
220
- level2: {
221
- level3: {
222
- level4: {
223
- value: 'value',
224
- },
225
- },
226
- },
227
- },
228
- });
229
- expect(fields).toMatchObject({
230
- $LEVEL1: {
231
- KEY: 'level1',
232
- $LEVEL2: {
233
- KEY: 'level2',
234
- $LEVEL3: {
235
- KEY: 'level3',
236
- $LEVEL4: {
237
- KEY: 'level4',
238
- VALUE: 'value',
239
- VALUE_FIELD: 'level1.level2.level3.level4.value',
240
- },
241
- },
242
- },
243
- },
244
- });
245
- expect(fields.$LEVEL1.$LEVEL2.PATH).toBe('level1.level2');
246
- expect(fields.$LEVEL1.$LEVEL2.$LEVEL3.PATH).toBe('level1.level2.level3');
247
- expect(fields.$LEVEL1.$LEVEL2.$LEVEL3.$LEVEL4.PATH).toBe('level1.level2.level3.level4');
248
- expect(fields.$LEVEL1.$LEVEL2.$LEVEL3.$LEVEL4.VALUE_FIELD).toBe('level1.level2.level3.level4.value');
249
- });
250
- test('should convert array with deeply nested structure', () => {
251
- const fields = convert({
252
- items: [
253
- {
254
- metadata: {
255
- tags: [{ name: 'name', value: 'value' }],
256
- },
257
- },
258
- ],
259
- });
260
- expect(fields).toMatchObject({
261
- $ITEMS: {
262
- KEY: 'items',
263
- $METADATA: {
264
- KEY: 'metadata',
265
- $TAGS: {
266
- KEY: 'tags',
267
- NAME: 'name',
268
- VALUE: 'value',
269
- },
270
- },
271
- },
272
- });
273
- expect(fields.ITEMS_FIELD()).toBe('.items');
274
- expect(fields.$ITEMS.$METADATA.$TAGS.NAME_FIELD(0, 1)).toBe('items.0.metadata.tags.1.name');
275
- expect(fields.$ITEMS.$METADATA.$TAGS.VALUE_FIELD(0, 1)).toBe('items.0.metadata.tags.1.value');
276
- });
277
- test('should convert object with array containing objects with arrays', () => {
278
- const fields = convert({
279
- orders: [
280
- {
281
- id: 'id',
282
- items: [{ productId: 'productId', quantity: 'quantity' }],
283
- },
284
- ],
285
- });
286
- expect(fields).toMatchObject({
287
- $ORDERS: {
288
- KEY: 'orders',
289
- ID: 'id',
290
- $ITEMS: {
291
- KEY: 'items',
292
- PRODUCT_ID: 'productId',
293
- QUANTITY: 'quantity',
294
- },
295
- },
296
- });
297
- expect(fields.ORDERS_FIELD()).toBe('.orders');
298
- expect(fields.$ORDERS.ID_FIELD(0)).toBe('orders.0.id');
299
- expect(fields.$ORDERS.ITEMS_FIELD(0)).toBe('orders.0.items');
300
- expect(fields.$ORDERS.$ITEMS.PRODUCT_ID_FIELD(0, 1)).toBe('orders.0.items.1.productId');
301
- expect(fields.$ORDERS.$ITEMS.QUANTITY_FIELD(0, 1)).toBe('orders.0.items.1.quantity');
302
- });
303
- test('should convert object with mixed nested objects and arrays', () => {
304
- const fields = convert({
305
- user: {
306
- profile: {
307
- firstName: 'firstName',
308
- lastName: 'lastName',
309
- },
310
- addresses: [{ street: 'street', city: 'city' }],
311
- contacts: [
312
- {
313
- type: 'type',
314
- phones: [{ number: 'number' }],
315
- },
316
- ],
317
- },
318
- });
319
- expect(fields).toMatchObject({
320
- $USER: {
321
- KEY: 'user',
322
- $PROFILE: {
323
- KEY: 'profile',
324
- FIRST_NAME: 'firstName',
325
- FIRST_NAME_FIELD: 'user.profile.firstName',
326
- LAST_NAME: 'lastName',
327
- LAST_NAME_FIELD: 'user.profile.lastName',
328
- },
329
- $ADDRESSES: {
330
- KEY: 'addresses',
331
- STREET: 'street',
332
- CITY: 'city',
333
- },
334
- $CONTACTS: {
335
- KEY: 'contacts',
336
- TYPE: 'type',
337
- $PHONES: {
338
- KEY: 'phones',
339
- NUMBER: 'number',
340
- },
341
- },
342
- },
343
- });
344
- expect(fields.$USER.$ADDRESSES.PATH()).toBe('user.addresses');
345
- expect(fields.$USER.$ADDRESSES.STREET_FIELD(0)).toBe('user.addresses.0.street');
346
- expect(fields.$USER.$ADDRESSES.CITY_FIELD(0)).toBe('user.addresses.0.city');
347
- expect(fields.$USER.CONTACTS_FIELD()).toBe('user.contacts');
348
- expect(fields.$USER.$CONTACTS.TYPE_FIELD(0)).toBe('user.contacts.0.type');
349
- expect(fields.$USER.$CONTACTS.PHONES_FIELD(0)).toBe('user.contacts.0.phones');
350
- expect(fields.$USER.$CONTACTS.$PHONES.PATH(0)).toBe('user.contacts.0.phones');
351
- expect(fields.$USER.$CONTACTS.$PHONES.NUMBER_FIELD(0, 1)).toBe('user.contacts.0.phones.1.number');
352
- });
353
- test('should convert object with array of primitives (strings)', () => {
354
- const fields = convert({
355
- tags: [{ value: 'value' }],
356
- });
357
- expect(fields).toMatchObject({
358
- $TAGS: {
359
- KEY: 'tags',
360
- VALUE: 'value',
361
- },
362
- });
363
- expect(fields.TAGS_FIELD()).toBe('.tags');
364
- expect(fields.$TAGS.VALUE_FIELD(0)).toBe('tags.0.value');
365
- });
366
- test('should convert object with complex multi-level array nesting', () => {
367
- const fields = convert({
368
- data: [
369
- {
370
- rows: [
371
- {
372
- cells: [{ content: 'content' }],
373
- },
374
- ],
375
- },
376
- ],
377
- });
378
- expect(fields).toMatchObject({
379
- $DATA: {
380
- KEY: 'data',
381
- $ROWS: {
382
- KEY: 'rows',
383
- $CELLS: {
384
- KEY: 'cells',
385
- CONTENT: 'content',
386
- },
387
- },
388
- },
389
- });
390
- expect(fields.DATA_FIELD()).toBe('.data');
391
- expect(fields.$DATA.ROWS_FIELD(0)).toBe('data.0.rows');
392
- expect(fields.$DATA.$ROWS.CELLS_FIELD(0, 1)).toBe('data.0.rows.1.cells');
393
- expect(fields.$DATA.$ROWS.$CELLS.CONTENT_FIELD(0, 1, 2)).toBe('data.0.rows.1.cells.2.content');
394
- });
395
- test('should convert object with nested path structure', () => {
396
- const fields = convert({
397
- api: {
398
- endpoints: [
399
- {
400
- method: 'method',
401
- path: 'path',
402
- params: [{ name: 'name' }],
403
- },
404
- ],
405
- },
406
- });
407
- expect(fields).toMatchObject({
408
- $API: {
409
- KEY: 'api',
410
- $ENDPOINTS: {
411
- KEY: 'endpoints',
412
- METHOD: 'method',
413
- $PARAMS: {
414
- KEY: 'params',
415
- NAME: 'name',
416
- },
417
- },
418
- },
419
- });
420
- expect(fields.$API.$ENDPOINTS).toHaveProperty('PATH');
421
- expect(fields.$API.$ENDPOINTS.PATH).toBeDefined();
422
- expect(fields.$API.ENDPOINTS_FIELD()).toBe('api.endpoints');
423
- expect(fields.$API.$ENDPOINTS.METHOD_FIELD(0)).toBe('api.endpoints.0.method');
424
- expect(fields.$API.$ENDPOINTS.PATH_FIELD(0)).toBe('api.endpoints.0.path');
425
- expect(fields.$API.$ENDPOINTS.PARAMS_FIELD(0)).toBe('api.endpoints.0.params');
426
- expect(fields.$API.$ENDPOINTS.$PARAMS.NAME_FIELD(0, 1)).toBe('api.endpoints.0.params.1.name');
427
- });
428
- });
429
- //# sourceMappingURL=convert.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"convert.test.js","sourceRoot":"","sources":["../../src/__test__/convert.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=create-index-formatter.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-index-formatter.test.d.ts","sourceRoot":"","sources":["../../src/__test__/create-index-formatter.test.ts"],"names":[],"mappings":""}
@@ -1,17 +0,0 @@
1
- import { test, expect, describe } from 'vitest';
2
- import { createIndexFormatter } from '../utils/create-index-formatter.js';
3
- describe('createIndexFormatter', () => {
4
- test('should throw an error if the formatter is not called with the correct number of arguments', () => {
5
- const formatter = createIndexFormatter('users.#.name');
6
- expect(() => formatter(0, 1)).toThrow('Formatter Mismatch: Template requires 1 arguments, but received 2.');
7
- });
8
- test('should create an index formatter', () => {
9
- const formatter = createIndexFormatter('users.#.name');
10
- expect(formatter(0)).toBe('users.0.name');
11
- });
12
- test('should create an index formatter with multiple arguments', () => {
13
- const formatter = createIndexFormatter('users.#.id.#.name');
14
- expect(formatter(0, 1)).toBe('users.0.id.1.name');
15
- });
16
- });
17
- //# sourceMappingURL=create-index-formatter.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-index-formatter.test.js","sourceRoot":"","sources":["../../src/__test__/create-index-formatter.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,IAAI,CAAC,2FAA2F,EAAE,GAAG,EAAE;QACrG,MAAM,SAAS,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;QACvD,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CACnC,oEAAoE,CACrE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC5C,MAAM,SAAS,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;QACvD,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0DAA0D,EAAE,GAAG,EAAE;QACpE,MAAM,SAAS,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;QAC5D,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=is-list.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"is-list.test.d.ts","sourceRoot":"","sources":["../../src/__test__/is-list.test.ts"],"names":[],"mappings":""}
@@ -1,13 +0,0 @@
1
- import { test, expect, describe } from 'vitest';
2
- import { isListed } from '../utils/is-list.js';
3
- describe('isListed', () => {
4
- test('should return true if the path is listed', () => {
5
- const path = 'users.#.name';
6
- expect(isListed(path)).toBe(true);
7
- });
8
- test('should return false if the path is not listed', () => {
9
- const path = 'users.name';
10
- expect(isListed(path)).toBe(false);
11
- });
12
- });
13
- //# sourceMappingURL=is-list.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"is-list.test.js","sourceRoot":"","sources":["../../src/__test__/is-list.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACpD,MAAM,IAAI,GAAG,cAAc,CAAC;QAC5B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACzD,MAAM,IAAI,GAAG,YAAY,CAAC;QAC1B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=to-snake-case.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"to-snake-case.test.d.ts","sourceRoot":"","sources":["../../src/__test__/to-snake-case.test.ts"],"names":[],"mappings":""}
@@ -1,14 +0,0 @@
1
- import { test, expect, describe } from 'vitest';
2
- import { toSnakeCase } from '../utils/to-snake-case.js';
3
- describe('toSnakeCase', () => {
4
- test('should convert camelCase to snake_case', () => {
5
- expect(toSnakeCase('camelCase')).toBe('camel_case');
6
- });
7
- test('should convert PascalCase to snake_case', () => {
8
- expect(toSnakeCase('PascalCase')).toBe('pascal_case');
9
- });
10
- test('should convert snake_case to snake_case', () => {
11
- expect(toSnakeCase('snake_case')).toBe('snake_case');
12
- });
13
- });
14
- //# sourceMappingURL=to-snake-case.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"to-snake-case.test.js","sourceRoot":"","sources":["../../src/__test__/to-snake-case.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}