@tanstack/form-core 0.12.0 → 0.13.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 (50) hide show
  1. package/dist/cjs/FieldApi.cjs +300 -0
  2. package/dist/cjs/FieldApi.cjs.map +1 -0
  3. package/dist/{mjs/FieldApi.d.ts → cjs/FieldApi.d.cts} +0 -1
  4. package/dist/cjs/FormApi.cjs +438 -0
  5. package/dist/cjs/FormApi.cjs.map +1 -0
  6. package/dist/cjs/index.cjs +15 -923
  7. package/dist/cjs/index.cjs.map +1 -1
  8. package/dist/cjs/mergeForm.cjs +32 -0
  9. package/dist/cjs/mergeForm.cjs.map +1 -0
  10. package/dist/cjs/utils.cjs +168 -0
  11. package/dist/cjs/utils.cjs.map +1 -0
  12. package/dist/{cjs → esm}/FieldApi.d.ts +0 -1
  13. package/dist/esm/FieldApi.js +300 -0
  14. package/dist/esm/FieldApi.js.map +1 -0
  15. package/dist/esm/FormApi.js +438 -0
  16. package/dist/esm/FormApi.js.map +1 -0
  17. package/dist/esm/index.js +18 -0
  18. package/dist/esm/index.js.map +1 -0
  19. package/dist/esm/mergeForm.js +32 -0
  20. package/dist/esm/mergeForm.js.map +1 -0
  21. package/dist/esm/utils.js +168 -0
  22. package/dist/esm/utils.js.map +1 -0
  23. package/package.json +11 -11
  24. package/dist/cjs/index.js +0 -926
  25. package/dist/cjs/tests/FieldApi.spec.d.ts +0 -1
  26. package/dist/cjs/tests/FieldApi.test-d.d.ts +0 -1
  27. package/dist/cjs/tests/FormApi.spec.d.ts +0 -1
  28. package/dist/cjs/tests/mutateMergeDeep.spec.d.ts +0 -1
  29. package/dist/cjs/tests/utils.d.ts +0 -1
  30. package/dist/cjs/tests/utils.spec.d.ts +0 -1
  31. package/dist/mjs/index.d.mts +0 -5
  32. package/dist/mjs/index.d.ts +0 -5
  33. package/dist/mjs/index.js +0 -926
  34. package/dist/mjs/index.mjs +0 -926
  35. package/dist/mjs/index.mjs.map +0 -1
  36. package/dist/mjs/tests/FieldApi.spec.d.ts +0 -1
  37. package/dist/mjs/tests/FieldApi.test-d.d.ts +0 -1
  38. package/dist/mjs/tests/FormApi.spec.d.ts +0 -1
  39. package/dist/mjs/tests/mutateMergeDeep.spec.d.ts +0 -1
  40. package/dist/mjs/tests/utils.d.ts +0 -1
  41. package/dist/mjs/tests/utils.spec.d.ts +0 -1
  42. /package/dist/cjs/{FormApi.d.ts → FormApi.d.cts} +0 -0
  43. /package/dist/cjs/{mergeForm.d.ts → mergeForm.d.cts} +0 -0
  44. /package/dist/cjs/{types.d.ts → types.d.cts} +0 -0
  45. /package/dist/cjs/{utils.d.ts → utils.d.cts} +0 -0
  46. /package/dist/{mjs → esm}/FormApi.d.ts +0 -0
  47. /package/dist/{cjs → esm}/index.d.ts +0 -0
  48. /package/dist/{mjs → esm}/mergeForm.d.ts +0 -0
  49. /package/dist/{mjs → esm}/types.d.ts +0 -0
  50. /package/dist/{mjs → esm}/utils.d.ts +0 -0
@@ -0,0 +1,168 @@
1
+ function functionalUpdate(updater, input) {
2
+ return typeof updater === "function" ? updater(input) : updater;
3
+ }
4
+ function getBy(obj, path) {
5
+ const pathObj = makePathArray(path);
6
+ return pathObj.reduce((current, pathPart) => {
7
+ if (typeof current !== "undefined") {
8
+ return current[pathPart];
9
+ }
10
+ return void 0;
11
+ }, obj);
12
+ }
13
+ function setBy(obj, _path, updater) {
14
+ const path = makePathArray(_path);
15
+ function doSet(parent) {
16
+ if (!path.length) {
17
+ return functionalUpdate(updater, parent);
18
+ }
19
+ const key = path.shift();
20
+ if (typeof key === "string") {
21
+ if (typeof parent === "object") {
22
+ return {
23
+ ...parent,
24
+ [key]: doSet(parent[key])
25
+ };
26
+ }
27
+ return {
28
+ [key]: doSet()
29
+ };
30
+ }
31
+ if (Array.isArray(parent) && key !== void 0) {
32
+ const prefix = parent.slice(0, key);
33
+ return [
34
+ ...prefix.length ? prefix : new Array(key),
35
+ doSet(parent[key]),
36
+ ...parent.slice(key + 1)
37
+ ];
38
+ }
39
+ return [...new Array(key), doSet()];
40
+ }
41
+ return doSet(obj);
42
+ }
43
+ function deleteBy(obj, _path) {
44
+ const path = makePathArray(_path);
45
+ function doDelete(parent) {
46
+ if (path.length === 1) {
47
+ const finalPath = path[0];
48
+ const { [finalPath]: remove, ...rest } = parent;
49
+ return rest;
50
+ }
51
+ const key = path.shift();
52
+ if (typeof key === "string") {
53
+ if (typeof parent === "object") {
54
+ return {
55
+ ...parent,
56
+ [key]: doDelete(parent[key])
57
+ };
58
+ }
59
+ }
60
+ if (typeof key === "number") {
61
+ if (Array.isArray(parent)) {
62
+ const prefix = parent.slice(0, key);
63
+ return [
64
+ ...prefix.length ? prefix : new Array(key),
65
+ doDelete(parent[key]),
66
+ ...parent.slice(key + 1)
67
+ ];
68
+ }
69
+ }
70
+ throw new Error("It seems we have created an infinite loop in deleteBy. ");
71
+ }
72
+ return doDelete(obj);
73
+ }
74
+ const reFindNumbers0 = /^(\d*)$/gm;
75
+ const reFindNumbers1 = /\.(\d*)\./gm;
76
+ const reFindNumbers2 = /^(\d*)\./gm;
77
+ const reFindNumbers3 = /\.(\d*$)/gm;
78
+ const reFindMultiplePeriods = /\.{2,}/gm;
79
+ const intPrefix = "__int__";
80
+ const intReplace = `${intPrefix}$1`;
81
+ function makePathArray(str) {
82
+ if (typeof str !== "string") {
83
+ throw new Error("Path must be a string.");
84
+ }
85
+ return str.replace("[", ".").replace("]", "").replace(reFindNumbers0, intReplace).replace(reFindNumbers1, `.${intReplace}.`).replace(reFindNumbers2, `${intReplace}.`).replace(reFindNumbers3, `.${intReplace}`).replace(reFindMultiplePeriods, ".").split(".").map((d) => {
86
+ if (d.indexOf(intPrefix) === 0) {
87
+ return parseInt(d.substring(intPrefix.length), 10);
88
+ }
89
+ return d;
90
+ });
91
+ }
92
+ function isNonEmptyArray(obj) {
93
+ return !(Array.isArray(obj) && obj.length === 0);
94
+ }
95
+ function getAsyncValidatorArray(cause, options) {
96
+ const { asyncDebounceMs } = options;
97
+ const {
98
+ onChangeAsync,
99
+ onBlurAsync,
100
+ onSubmitAsync,
101
+ onBlurAsyncDebounceMs,
102
+ onChangeAsyncDebounceMs,
103
+ onSubmitAsyncDebounceMs
104
+ } = options.validators || {};
105
+ const defaultDebounceMs = asyncDebounceMs ?? 0;
106
+ const changeValidator = {
107
+ cause: "change",
108
+ validate: onChangeAsync,
109
+ debounceMs: onChangeAsyncDebounceMs ?? defaultDebounceMs
110
+ };
111
+ const blurValidator = {
112
+ cause: "blur",
113
+ validate: onBlurAsync,
114
+ debounceMs: onBlurAsyncDebounceMs ?? defaultDebounceMs
115
+ };
116
+ const submitValidator = {
117
+ cause: "submit",
118
+ validate: onSubmitAsync,
119
+ debounceMs: onSubmitAsyncDebounceMs ?? defaultDebounceMs
120
+ };
121
+ switch (cause) {
122
+ case "submit":
123
+ return [changeValidator, blurValidator, submitValidator];
124
+ case "server":
125
+ return [];
126
+ case "blur":
127
+ return [blurValidator];
128
+ case "change":
129
+ default:
130
+ return [changeValidator];
131
+ }
132
+ }
133
+ function getSyncValidatorArray(cause, options) {
134
+ const { onChange, onBlur, onSubmit } = options.validators || {};
135
+ const changeValidator = { cause: "change", validate: onChange };
136
+ const blurValidator = { cause: "blur", validate: onBlur };
137
+ const submitValidator = { cause: "submit", validate: onSubmit };
138
+ const serverValidator = {
139
+ cause: "server",
140
+ validate: () => void 0
141
+ };
142
+ switch (cause) {
143
+ case "submit":
144
+ return [
145
+ changeValidator,
146
+ blurValidator,
147
+ submitValidator,
148
+ serverValidator
149
+ ];
150
+ case "server":
151
+ return [serverValidator];
152
+ case "blur":
153
+ return [blurValidator, serverValidator];
154
+ case "change":
155
+ default:
156
+ return [changeValidator, serverValidator];
157
+ }
158
+ }
159
+ export {
160
+ deleteBy,
161
+ functionalUpdate,
162
+ getAsyncValidatorArray,
163
+ getBy,
164
+ getSyncValidatorArray,
165
+ isNonEmptyArray,
166
+ setBy
167
+ };
168
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../src/utils.ts"],"sourcesContent":["import type { ValidationCause, Validator } from './types'\nimport type { FormValidators } from './FormApi'\nimport type { FieldValidators } from './FieldApi'\n\nexport type UpdaterFn<TInput, TOutput = TInput> = (input: TInput) => TOutput\n\nexport type Updater<TInput, TOutput = TInput> =\n | TOutput\n | UpdaterFn<TInput, TOutput>\n\nexport function functionalUpdate<TInput, TOutput = TInput>(\n updater: Updater<TInput, TOutput>,\n input: TInput,\n): TOutput {\n return typeof updater === 'function'\n ? (updater as UpdaterFn<TInput, TOutput>)(input)\n : updater\n}\n\n/**\n * Get a value from an object using a path, including dot notation.\n */\nexport function getBy(obj: any, path: any) {\n const pathObj = makePathArray(path)\n return pathObj.reduce((current: any, pathPart: any) => {\n if (typeof current !== 'undefined') {\n return current[pathPart]\n }\n return undefined\n }, obj)\n}\n\n/**\n * Set a value on an object using a path, including dot notation.\n */\nexport function setBy(obj: any, _path: any, updater: Updater<any>) {\n const path = makePathArray(_path)\n\n function doSet(parent?: any): any {\n if (!path.length) {\n return functionalUpdate(updater, parent)\n }\n\n const key = path.shift()\n\n if (typeof key === 'string') {\n if (typeof parent === 'object') {\n return {\n ...parent,\n [key]: doSet(parent[key]),\n }\n }\n return {\n [key]: doSet(),\n }\n }\n\n if (Array.isArray(parent) && key !== undefined) {\n const prefix = parent.slice(0, key)\n return [\n ...(prefix.length ? prefix : new Array(key)),\n doSet(parent[key]),\n ...parent.slice(key + 1),\n ]\n }\n return [...new Array(key), doSet()]\n }\n\n return doSet(obj)\n}\n\n/**\n * Delete a field on an object using a path, including dot notation.\n */\nexport function deleteBy(obj: any, _path: any) {\n const path = makePathArray(_path)\n\n function doDelete(parent: any): any {\n if (path.length === 1) {\n const finalPath = path[0]!\n const { [finalPath]: remove, ...rest } = parent\n return rest\n }\n\n const key = path.shift()\n\n if (typeof key === 'string') {\n if (typeof parent === 'object') {\n return {\n ...parent,\n [key]: doDelete(parent[key]),\n }\n }\n }\n\n if (typeof key === 'number') {\n if (Array.isArray(parent)) {\n const prefix = parent.slice(0, key)\n return [\n ...(prefix.length ? prefix : new Array(key)),\n doDelete(parent[key]),\n ...parent.slice(key + 1),\n ]\n }\n }\n\n throw new Error('It seems we have created an infinite loop in deleteBy. ')\n }\n\n return doDelete(obj)\n}\n\nconst reFindNumbers0 = /^(\\d*)$/gm\nconst reFindNumbers1 = /\\.(\\d*)\\./gm\nconst reFindNumbers2 = /^(\\d*)\\./gm\nconst reFindNumbers3 = /\\.(\\d*$)/gm\nconst reFindMultiplePeriods = /\\.{2,}/gm\n\nconst intPrefix = '__int__'\nconst intReplace = `${intPrefix}$1`\n\nfunction makePathArray(str: string) {\n if (typeof str !== 'string') {\n throw new Error('Path must be a string.')\n }\n\n return str\n .replace('[', '.')\n .replace(']', '')\n .replace(reFindNumbers0, intReplace)\n .replace(reFindNumbers1, `.${intReplace}.`)\n .replace(reFindNumbers2, `${intReplace}.`)\n .replace(reFindNumbers3, `.${intReplace}`)\n .replace(reFindMultiplePeriods, '.')\n .split('.')\n .map((d) => {\n if (d.indexOf(intPrefix) === 0) {\n return parseInt(d.substring(intPrefix.length), 10)\n }\n return d\n })\n}\n\nexport function isNonEmptyArray(obj: any) {\n return !(Array.isArray(obj) && obj.length === 0)\n}\n\ninterface AsyncValidatorArrayPartialOptions<T> {\n validators?: T\n asyncDebounceMs?: number\n}\n\ninterface AsyncValidator<T> {\n cause: ValidationCause\n validate: T\n debounceMs: number\n}\n\nexport function getAsyncValidatorArray<T>(\n cause: ValidationCause,\n options: AsyncValidatorArrayPartialOptions<T>,\n): T extends FieldValidators<any, any>\n ? Array<\n AsyncValidator<T['onChangeAsync'] | T['onBlurAsync'] | T['onSubmitAsync']>\n >\n : T extends FormValidators<any, any>\n ? Array<\n AsyncValidator<\n T['onChangeAsync'] | T['onBlurAsync'] | T['onSubmitAsync']\n >\n >\n : never {\n const { asyncDebounceMs } = options\n const {\n onChangeAsync,\n onBlurAsync,\n onSubmitAsync,\n onBlurAsyncDebounceMs,\n onChangeAsyncDebounceMs,\n onSubmitAsyncDebounceMs,\n } = (options.validators || {}) as\n | FieldValidators<any, any>\n | FormValidators<any, any>\n\n const defaultDebounceMs = asyncDebounceMs ?? 0\n\n const changeValidator = {\n cause: 'change',\n validate: onChangeAsync,\n debounceMs: onChangeAsyncDebounceMs ?? defaultDebounceMs,\n } as const\n\n const blurValidator = {\n cause: 'blur',\n validate: onBlurAsync,\n debounceMs: onBlurAsyncDebounceMs ?? defaultDebounceMs,\n } as const\n\n const submitValidator = {\n cause: 'submit',\n validate: onSubmitAsync,\n debounceMs: onSubmitAsyncDebounceMs ?? defaultDebounceMs,\n } as const\n\n switch (cause) {\n case 'submit':\n return [changeValidator, blurValidator, submitValidator] as never\n case 'server':\n return [] as never\n case 'blur':\n return [blurValidator] as never\n case 'change':\n default:\n return [changeValidator] as never\n }\n}\n\ninterface SyncValidatorArrayPartialOptions<T> {\n validators?: T\n}\n\ninterface SyncValidator<T> {\n cause: ValidationCause\n validate: T\n}\n\nexport function getSyncValidatorArray<T>(\n cause: ValidationCause,\n options: SyncValidatorArrayPartialOptions<T>,\n): T extends FieldValidators<any, any>\n ? Array<SyncValidator<T['onChange'] | T['onBlur'] | T['onSubmit']>>\n : T extends FormValidators<any, any>\n ? Array<SyncValidator<T['onChange'] | T['onBlur'] | T['onSubmit']>>\n : never {\n const { onChange, onBlur, onSubmit } = (options.validators || {}) as\n | FieldValidators<any, any>\n | FormValidators<any, any>\n\n const changeValidator = { cause: 'change', validate: onChange } as const\n const blurValidator = { cause: 'blur', validate: onBlur } as const\n const submitValidator = { cause: 'submit', validate: onSubmit } as const\n\n // Allows us to clear onServer errors\n const serverValidator = {\n cause: 'server',\n validate: () => undefined,\n } as const\n\n switch (cause) {\n case 'submit':\n return [\n changeValidator,\n blurValidator,\n submitValidator,\n serverValidator,\n ] as never\n case 'server':\n return [serverValidator] as never\n case 'blur':\n return [blurValidator, serverValidator] as never\n case 'change':\n default:\n return [changeValidator, serverValidator] as never\n }\n}\n\nexport type RequiredByKey<T, K extends keyof T> = Omit<T, K> &\n Required<Pick<T, K>>\n\ntype ComputeRange<\n N extends number,\n Result extends Array<unknown> = [],\n> = Result['length'] extends N\n ? Result\n : ComputeRange<N, [...Result, Result['length']]>\ntype Index40 = ComputeRange<40>[number]\n\n// Is this type a tuple?\ntype IsTuple<T> = T extends readonly any[] & { length: infer Length }\n ? Length extends Index40\n ? T\n : never\n : never\n\n// If this type is a tuple, what indices are allowed?\ntype AllowedIndexes<\n Tuple extends ReadonlyArray<any>,\n Keys extends number = never,\n> = Tuple extends readonly []\n ? Keys\n : Tuple extends readonly [infer _, ...infer Tail]\n ? AllowedIndexes<Tail, Keys | Tail['length']>\n : Keys\n\nexport type DeepKeys<T, TDepth extends any[] = []> = TDepth['length'] extends 5\n ? never\n : unknown extends T\n ? string\n : object extends T\n ? string\n : T extends readonly any[] & IsTuple<T>\n ? AllowedIndexes<T> | DeepKeysPrefix<T, AllowedIndexes<T>, TDepth>\n : T extends any[]\n ? DeepKeys<T[number], [...TDepth, any]>\n : T extends Date\n ? never\n : T extends object\n ? (keyof T & string) | DeepKeysPrefix<T, keyof T, TDepth>\n : never\n\ntype DeepKeysPrefix<\n T,\n TPrefix,\n TDepth extends any[],\n> = TPrefix extends keyof T & (number | string)\n ? `${TPrefix}.${DeepKeys<T[TPrefix], [...TDepth, any]> & string}`\n : never\n\nexport type DeepValue<T, TProp> = T extends Record<string | number, any>\n ? TProp extends `${infer TBranch}.${infer TDeepProp}`\n ? DeepValue<T[TBranch], TDeepProp>\n : T[TProp & string]\n : never\n\ntype Narrowable = string | number | bigint | boolean\n\ntype NarrowRaw<A> =\n | (A extends [] ? [] : never)\n | (A extends Narrowable ? A : never)\n | {\n [K in keyof A]: A[K] extends Function ? A[K] : NarrowRaw<A[K]>\n }\n\nexport type Narrow<A> = Try<A, [], NarrowRaw<A>>\n\ntype Try<A1, A2, Catch = never> = A1 extends A2 ? A1 : Catch\n\n// Hack to get TypeScript to show simplified types in error messages\nexport type Pretty<T> = { [K in keyof T]: T[K] } & {}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/form-core",
3
- "version": "0.12.0",
3
+ "version": "0.13.1",
4
4
  "description": "Powerful, type-safe, framework agnostic forms.",
5
5
  "author": "tannerlinsley",
6
6
  "license": "MIT",
@@ -11,14 +11,14 @@
11
11
  "url": "https://github.com/sponsors/tannerlinsley"
12
12
  },
13
13
  "type": "module",
14
- "types": "dist/mjs/index.d.mts",
14
+ "types": "dist/esm/index.d.ts",
15
15
  "main": "dist/cjs/index.cjs",
16
- "module": "dist/mjs/index.mjs",
16
+ "module": "dist/esm/index.js",
17
17
  "exports": {
18
18
  ".": {
19
19
  "import": {
20
- "types": "./dist/mjs/index.d.mts",
21
- "default": "./dist/mjs/index.mjs"
20
+ "types": "./dist/esm/index.d.ts",
21
+ "default": "./dist/esm/index.js"
22
22
  },
23
23
  "require": {
24
24
  "types": "./dist/cjs/index.d.cts",
@@ -38,12 +38,12 @@
38
38
  "scripts": {
39
39
  "clean": "rimraf ./dist && rimraf ./coverage",
40
40
  "test:eslint": "eslint --ext .ts,.tsx ./src",
41
- "test:types:versions49": "../../node_modules/typescript49/bin/tsc --noEmit",
42
- "test:types:versions50": "../../node_modules/typescript50/bin/tsc --noEmit",
43
- "test:types:versions51": "../../node_modules/typescript51/bin/tsc --noEmit",
44
- "test:types:versions52": "tsc --noEmit",
45
- "test:types": "pnpm run \"/^test:types:versions.*/\" && vitest typecheck",
46
- "test:lib": "vitest run --coverage",
41
+ "test:types:versions49": "../../node_modules/typescript49/bin/tsc --project tsconfig.legacy.json",
42
+ "test:types:versions50": "../../node_modules/typescript50/bin/tsc",
43
+ "test:types:versions51": "../../node_modules/typescript51/bin/tsc",
44
+ "test:types:versions52": "tsc",
45
+ "test:types": "pnpm run \"/^test:types:versions.*/\"",
46
+ "test:lib": "vitest",
47
47
  "test:lib:dev": "pnpm run test:lib --watch",
48
48
  "test:build": "publint --strict",
49
49
  "build": "vite build"