@glitchproof/form-field-generator 1.0.0 → 1.0.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/core/convert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAU1C,eAAO,MAAM,OAAO,GAAI,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxD,OAAO,MAAM,EACb,UAAS,OAAwB,wBAyElC,CAAC"}
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/core/convert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAU1C,eAAO,MAAM,OAAO,GAAI,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxD,OAAO,MAAM,EACb,UAAS,OAAwB,wBA8ElC,CAAC"}
@@ -31,6 +31,7 @@ export const convert = (field, context = defaultContext) => {
31
31
  subGroup.KEY = key;
32
32
  if (path)
33
33
  subGroup.PATH = createIndexFormatter(`${path}.${key}`);
34
+ subGroup.ELEMENT_AT = createIndexFormatter(`${path}.${key}.#`);
34
35
  acc[accessorName] = subGroup;
35
36
  acc[`${convertedName}_FIELD`] = createIndexFormatter(`${path}.${key}`);
36
37
  return acc;
@@ -46,6 +47,8 @@ export const convert = (field, context = defaultContext) => {
46
47
  subGroup.PATH = isListed(subGroupPath)
47
48
  ? createIndexFormatter(subGroupPath)
48
49
  : subGroupPath;
50
+ if (isListed(subGroupPath))
51
+ subGroup.AT = createIndexFormatter(subGroupPath);
49
52
  acc[accessorName] = subGroup;
50
53
  return acc;
51
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/core/convert.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/core/convert.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { GenerateFields } from './type.js';
2
- export declare const generateFields: <const Fields extends Object.DICT>(fields: Fields) => GenerateFields<Fields>;
1
+ import type { DICT, GenerateFields } from './type.js';
2
+ export declare const generateFields: <const Fields extends DICT>(fields: Fields) => GenerateFields<Fields>;
3
3
  export default generateFields;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAIhD,eAAO,MAAM,cAAc,GAAI,KAAK,CAAC,MAAM,SAAS,MAAM,CAAC,IAAI,EAC7D,QAAQ,MAAM,KACb,cAAc,CAAC,MAAM,CAA8C,CAAC;AAEvE,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAItD,eAAO,MAAM,cAAc,GAAI,KAAK,CAAC,MAAM,SAAS,IAAI,EACtD,QAAQ,MAAM,KACb,cAAc,CAAC,MAAM,CAA8C,CAAC;AAEvE,eAAe,cAAc,CAAC"}
package/dist/type.d.ts CHANGED
@@ -1,61 +1,58 @@
1
1
  export type Context = {
2
2
  path: string;
3
3
  };
4
- type FieldsGroup<Field extends Object.DICT_NESTED_VALUES,
5
- /**
6
- * The path of the deeply nested fields.
7
- * Example: first layer name => name,
8
- * second layer {city: { name: "nameOfCity" }} => city.nameOfCity ,
9
- * third layer is a array version {country: { name: "nameOfCountry", cities: [{ name: "nameOfCity" }] }} => country.nameOfCountry.cities.${number}.nameOfCity as a function with deeply listed counted arguments
10
- */
11
- Path extends string,
12
- /**
13
- * The name of the key of the field.
14
- * Example: 'name' => 'NAME'
15
- * Example: '{city: { name: "nameOfCity" }} => 'city'
16
- * Example: '{cities: [{ name: "nameOfCity" }] }} => 'cities'
17
- * Example: '{cities: [{ name: "nameOfCity", someProperty: { name: "nameOfProperty" } }] }} => nameOfProperty
18
- */
19
- FieldName extends string> = {
20
- /**
21
- * The key of the object field to use it's parent object name.
22
- * Example: '{city: { KEY: "city", name: "nameOfCity" }}
23
- */
4
+ type ArrayNumberPattern = `.${number}`;
5
+ type DICT_VALUE = string | readonly {
6
+ readonly [key: string]: DICT_VALUE;
7
+ }[] | {
8
+ readonly [key: string]: DICT_VALUE;
9
+ };
10
+ type DICT_OBJECT_VALUE = {
11
+ readonly [key: string]: DICT_VALUE;
12
+ };
13
+ type DICT_ARRAY_VALUE = readonly {
14
+ readonly [key: string]: DICT_VALUE;
15
+ }[];
16
+ type DICT_NESTED_VALUES = DICT_ARRAY_VALUE | DICT_OBJECT_VALUE;
17
+ export type DICT = Record<string, DICT_VALUE>;
18
+ type CamelToSnakeCase<S extends string> = S extends `${infer T}${infer U}` ? `${T extends Capitalize<T> ? '_' : ''}${Lowercase<T>}${CamelToSnakeCase<U>}` : S;
19
+ type BuildTuple<Type, Length extends number, Acc extends Type[] = []> = Acc['length'] extends Length ? Acc : BuildTuple<Type, Length, [...Acc, Type]>;
20
+ type CountOccurrences<S extends string, Acc extends unknown[] = []> = S extends `${ArrayNumberPattern}${infer Rest}` ? CountOccurrences<Rest, [...Acc, 0]> : S extends `${infer _}${infer Rest}` ? CountOccurrences<Rest, Acc> : Acc['length'];
21
+ type ExtendObjectWithCondition<Condition extends boolean, Obj> = Condition extends true ? Obj : {};
22
+ type CountArrayIndices<Path extends string> = CountOccurrences<Path>;
23
+ type TO_NAME<KEY> = Uppercase<CamelToSnakeCase<KEY & string>>;
24
+ type TO_FIELD_NAME<KEY> = `${TO_NAME<KEY>}_FIELD`;
25
+ type TO_OBJECT_FIELD_NAME<KEY> = `$${TO_NAME<KEY>}`;
26
+ type ListFieldAccessor<Path extends string> = (...args: BuildTuple<number, CountArrayIndices<Path>>) => Path;
27
+ type SubArrayElement<Arr extends DICT_NESTED_VALUES> = Arr extends readonly (infer Obj)[] ? Obj : never;
28
+ type PathGenerator<Path extends string> = CountArrayIndices<Path> extends 0 ? Path : ListFieldAccessor<Path>;
29
+ type ObjectFieldNameGenerator<Key extends string, Field extends DICT_OBJECT_VALUE> = Field[Key] extends string ? TO_FIELD_NAME<Key> : TO_OBJECT_FIELD_NAME<Key>;
30
+ type IsListedBefore<Path extends string> = CountArrayIndices<Path> extends 0 ? false : true;
31
+ type ExceptNumber<Key, Result> = Key extends `${number}` ? never : Result;
32
+ type FeatureFieldsForArrayFields<Path extends string> = {
33
+ ELEMENT_AT: ListFieldAccessor<Path>;
34
+ };
35
+ type FeatureFieldsForArraySubFields<Path extends string> = {
36
+ AT: ListFieldAccessor<Path>;
37
+ };
38
+ type FieldsGroup<Field extends DICT_NESTED_VALUES, Path extends string, FieldName extends string> = {
24
39
  readonly KEY: FieldName;
25
- /**
26
- * The path of the deeply nested fields.
27
- * If Path is listed it generate function for naming
28
- * Example { country: { place: { name: "nameOfPlace" } } } => { $COUNTRY: { PATH: () => `country`, NAME: 'nameOfCountry', $PLACE: { PATH: 'country.place', NAME: 'nameOfPlace' } } }
29
- * Example {country: { name: "nameOfCountry", city: { name: "nameOfCity" } }} to { $COUNTRY: { PATH: () => `country.${number}`, NAME: 'nameOfCountry', $CITIES: { PATH: () => `path.to.country.cities`, NAME: 'nameOfCity', $CITY: { PATH: () => `path.to.country.cities.${number}`, NAME: 'nameOfCity' } } } }
30
- */
31
- readonly PATH: Utils.PathGenerator<Path>;
40
+ readonly PATH: PathGenerator<Path>;
32
41
  } & {
33
- [KEY in keyof Field as Field[KEY] extends string ? Utils.TO_NAME<KEY> : never]: Field[KEY];
42
+ [KEY in keyof Field as Field[KEY] extends string ? TO_NAME<KEY> : never]: Field[KEY];
34
43
  } & {
35
- [KEY in keyof Utils.SubArrayElement<Field> as Utils.ObjectFieldNameGenerator<KEY & string,
36
- /**
37
- * The type of the sub array element for get inside object
38
- */
39
- Utils.SubArrayElement<Field>> /**
40
- * If the sub array element is an object, generate the fields for the object.
41
- * Otherwise generate the fields path for the array.
42
- */]: Utils.SubArrayElement<Field>[KEY] extends Object.DICT_NESTED_VALUES ? FieldsGroup<Utils.SubArrayElement<Field>[KEY], `${Path}.${number}.${KEY & string}`, KEY & string> : Utils.ListFieldAccessor<`${Path}.${number}.${KEY & string}`>;
44
+ [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}`>;
43
45
  } & {
44
- [KEY in keyof Field as Field[KEY] extends Object.DICT_NESTED_VALUES ? Utils.ExceptNumber<KEY, Utils.TO_OBJECT_FIELD_NAME<KEY>> : never /**
45
- * If the key is an object, generate the fields for the object.
46
- */]: Field[KEY] extends Object.DICT_OBJECT_VALUE ? FieldsGroup<Field[KEY], `${Path}.${KEY & string}`, KEY & string> : Field[KEY] extends Object.DICT_ARRAY_VALUE ? FieldsGroup<Field[KEY], `${Path}.${KEY & string}`, KEY & string> : never;
46
+ [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
47
  } & {
48
- [KEY in keyof Field as Field[KEY] extends string ? Utils.TO_FIELD_NAME<KEY> : never /**
49
- * If the path is listed before, generate the fields for the array.
50
- * else generate the fields path for the object.
51
- */]: Utils.IsListedBefore<Path> extends true ? Utils.ListFieldAccessor<`${Path}.${Field[KEY] & string}`> : `${Path}.${Field[KEY] & string}`;
52
- };
53
- export type GenerateFields<Fields extends Object.DICT> = {
54
- [KEY in keyof Fields as Fields[KEY] extends string ? Utils.TO_FIELD_NAME<KEY> : never]: Fields[KEY];
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>, 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];
55
52
  } & {
56
- [KEY in keyof Fields as Fields[KEY] extends string ? Utils.TO_NAME<KEY> : never]: Fields[KEY];
53
+ [KEY in keyof Fields as Fields[KEY] extends string ? TO_NAME<KEY> : never]: Fields[KEY];
57
54
  } & {
58
- [KEY in keyof Fields as Fields[KEY] extends Object.DICT_NESTED_VALUES ? Utils.TO_OBJECT_FIELD_NAME<KEY> : never]: Fields[KEY] extends Object.DICT_NESTED_VALUES ? FieldsGroup<Fields[KEY], KEY & string, KEY & string> : never;
55
+ [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;
59
56
  };
60
57
  export {};
61
58
  //# sourceMappingURL=type.d.ts.map
@@ -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,46 +1,46 @@
1
- {
2
- "name": "@glitchproof/form-field-generator",
3
- "version": "1.0.0",
4
- "description": "> Type-safe field path generation for nested objects and arrays",
5
- "scripts": {
6
- "build": "tsc",
7
- "ci": "bun run build && bun format:check && bun test",
8
- "format": "prettier --write .",
9
- "format:src": "prettier --write src/**/*.ts",
10
- "format:check": "prettier --write --check .",
11
- "format:check:src": "prettier --check src/**/*.ts",
12
- "test": "vitest run",
13
- "local:release": "changeset version && changeset publish",
14
- "prepublishOnly": "bun ci",
15
- "changeset": "changeset",
16
- "version-packages": "changeset version",
17
- "release": "changeset publish"
18
- },
19
- "keywords": [
20
- "react hook form",
21
- "field-name-generator",
22
- "fields generator"
23
- ],
24
- "author": "GlitchTruth",
25
- "repository": {
26
- "type": "git",
27
- "url": "git+https://github.com/RashadNazarzade/generate-fields.git"
28
- },
29
- "files": [
30
- "dist"
31
- ],
32
- "type": "module",
33
- "main": "dist/index.js",
34
- "license": "MIT",
35
- "devDependencies": {
36
- "@changesets/cli": "^2.29.7",
37
- "prettier": "^3.6.2",
38
- "typescript": "^5.9.3",
39
- "vitest": "^4.0.10"
40
- },
41
- "types": "./dist/index.d.ts",
42
- "bugs": {
43
- "url": "https://github.com/RashadNazarzade/generate-fields/issues"
44
- },
45
- "homepage": "https://github.com/RashadNazarzade/generate-fields#readme"
46
- }
1
+ {
2
+ "name": "@glitchproof/form-field-generator",
3
+ "version": "1.0.2",
4
+ "description": "> Type-safe field path generation for nested objects and arrays",
5
+ "scripts": {
6
+ "build": "tsc",
7
+ "ci": "bun run build && bun format:check && bun test",
8
+ "format": "prettier --write .",
9
+ "format:src": "prettier --write src/**/*.ts",
10
+ "format:check": "prettier --write --check .",
11
+ "format:check:src": "prettier --check src/**/*.ts",
12
+ "test": "vitest run",
13
+ "local:release": "changeset version && changeset publish",
14
+ "prepublishOnly": "bun ci",
15
+ "changeset": "changeset",
16
+ "version-packages": "changeset version",
17
+ "release": "changeset publish"
18
+ },
19
+ "keywords": [
20
+ "react hook form",
21
+ "field-name-generator",
22
+ "fields generator"
23
+ ],
24
+ "author": "GlitchTruth",
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "git+https://github.com/RashadNazarzade/field-generator.git"
28
+ },
29
+ "files": [
30
+ "dist"
31
+ ],
32
+ "type": "module",
33
+ "main": "dist/index.js",
34
+ "license": "MIT",
35
+ "devDependencies": {
36
+ "@changesets/cli": "^2.29.7",
37
+ "prettier": "^3.6.2",
38
+ "typescript": "^5.9.3",
39
+ "vitest": "^4.0.10"
40
+ },
41
+ "types": "./dist/index.d.ts",
42
+ "bugs": {
43
+ "url": "https://github.com/RashadNazarzade/field-generator/issues"
44
+ },
45
+ "homepage": "https://github.com/RashadNazarzade/field-generator#readme"
46
+ }