@tanstack/form-core 0.10.3 → 0.12.0

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 (104) hide show
  1. package/dist/cjs/FieldApi.d.ts +95 -0
  2. package/dist/cjs/FormApi.d.ts +118 -0
  3. package/dist/cjs/index.cjs +926 -0
  4. package/dist/cjs/index.cjs.map +1 -0
  5. package/dist/cjs/index.d.cts +5 -0
  6. package/dist/cjs/index.d.ts +5 -0
  7. package/dist/cjs/index.js +926 -0
  8. package/dist/cjs/mergeForm.d.ts +4 -0
  9. package/dist/cjs/tests/FieldApi.spec.d.ts +1 -0
  10. package/dist/cjs/tests/FieldApi.test-d.d.ts +1 -0
  11. package/dist/cjs/tests/FormApi.spec.d.ts +1 -0
  12. package/dist/cjs/tests/mutateMergeDeep.spec.d.ts +1 -0
  13. package/dist/cjs/tests/utils.d.ts +1 -0
  14. package/dist/cjs/tests/utils.spec.d.ts +1 -0
  15. package/dist/cjs/types.d.ts +14 -0
  16. package/dist/cjs/utils.d.ts +57 -0
  17. package/dist/mjs/FieldApi.d.ts +95 -0
  18. package/dist/mjs/FormApi.d.ts +118 -0
  19. package/dist/mjs/index.d.mts +5 -0
  20. package/dist/mjs/index.d.ts +5 -0
  21. package/dist/mjs/index.js +926 -0
  22. package/dist/mjs/index.mjs +926 -0
  23. package/dist/mjs/index.mjs.map +1 -0
  24. package/dist/mjs/mergeForm.d.ts +4 -0
  25. package/dist/mjs/tests/FieldApi.spec.d.ts +1 -0
  26. package/dist/mjs/tests/FieldApi.test-d.d.ts +1 -0
  27. package/dist/mjs/tests/FormApi.spec.d.ts +1 -0
  28. package/dist/mjs/tests/mutateMergeDeep.spec.d.ts +1 -0
  29. package/dist/mjs/tests/utils.d.ts +1 -0
  30. package/dist/mjs/tests/utils.spec.d.ts +1 -0
  31. package/dist/mjs/types.d.ts +14 -0
  32. package/dist/mjs/utils.d.ts +57 -0
  33. package/package.json +16 -21
  34. package/src/FieldApi.ts +328 -236
  35. package/src/FormApi.ts +302 -216
  36. package/src/index.ts +1 -0
  37. package/src/mergeForm.ts +42 -0
  38. package/src/tests/FieldApi.spec.ts +135 -48
  39. package/src/tests/FieldApi.test-d.ts +10 -6
  40. package/src/tests/FormApi.spec.ts +171 -62
  41. package/src/tests/mutateMergeDeep.spec.ts +32 -0
  42. package/src/tests/utils.ts +1 -1
  43. package/src/types.ts +11 -2
  44. package/src/utils.ts +137 -14
  45. package/build/legacy/FieldApi.cjs +0 -340
  46. package/build/legacy/FieldApi.cjs.map +0 -1
  47. package/build/legacy/FieldApi.d.cts +0 -4
  48. package/build/legacy/FieldApi.d.ts +0 -4
  49. package/build/legacy/FieldApi.js +0 -315
  50. package/build/legacy/FieldApi.js.map +0 -1
  51. package/build/legacy/FormApi.cjs +0 -438
  52. package/build/legacy/FormApi.cjs.map +0 -1
  53. package/build/legacy/FormApi.d.cts +0 -4
  54. package/build/legacy/FormApi.d.ts +0 -4
  55. package/build/legacy/FormApi.js +0 -419
  56. package/build/legacy/FormApi.js.map +0 -1
  57. package/build/legacy/index.cjs +0 -31
  58. package/build/legacy/index.cjs.map +0 -1
  59. package/build/legacy/index.d.cts +0 -170
  60. package/build/legacy/index.d.ts +0 -170
  61. package/build/legacy/index.js +0 -6
  62. package/build/legacy/index.js.map +0 -1
  63. package/build/legacy/types.cjs +0 -19
  64. package/build/legacy/types.cjs.map +0 -1
  65. package/build/legacy/types.d.cts +0 -7
  66. package/build/legacy/types.d.ts +0 -7
  67. package/build/legacy/types.js +0 -1
  68. package/build/legacy/types.js.map +0 -1
  69. package/build/legacy/utils.cjs +0 -132
  70. package/build/legacy/utils.cjs.map +0 -1
  71. package/build/legacy/utils.d.cts +0 -37
  72. package/build/legacy/utils.d.ts +0 -37
  73. package/build/legacy/utils.js +0 -103
  74. package/build/legacy/utils.js.map +0 -1
  75. package/build/modern/FieldApi.cjs +0 -337
  76. package/build/modern/FieldApi.cjs.map +0 -1
  77. package/build/modern/FieldApi.d.cts +0 -4
  78. package/build/modern/FieldApi.d.ts +0 -4
  79. package/build/modern/FieldApi.js +0 -312
  80. package/build/modern/FieldApi.js.map +0 -1
  81. package/build/modern/FormApi.cjs +0 -431
  82. package/build/modern/FormApi.cjs.map +0 -1
  83. package/build/modern/FormApi.d.cts +0 -4
  84. package/build/modern/FormApi.d.ts +0 -4
  85. package/build/modern/FormApi.js +0 -412
  86. package/build/modern/FormApi.js.map +0 -1
  87. package/build/modern/index.cjs +0 -31
  88. package/build/modern/index.cjs.map +0 -1
  89. package/build/modern/index.d.cts +0 -170
  90. package/build/modern/index.d.ts +0 -170
  91. package/build/modern/index.js +0 -6
  92. package/build/modern/index.js.map +0 -1
  93. package/build/modern/types.cjs +0 -19
  94. package/build/modern/types.cjs.map +0 -1
  95. package/build/modern/types.d.cts +0 -7
  96. package/build/modern/types.d.ts +0 -7
  97. package/build/modern/types.js +0 -1
  98. package/build/modern/types.js.map +0 -1
  99. package/build/modern/utils.cjs +0 -132
  100. package/build/modern/utils.cjs.map +0 -1
  101. package/build/modern/utils.d.cts +0 -37
  102. package/build/modern/utils.d.ts +0 -37
  103. package/build/modern/utils.js +0 -103
  104. package/build/modern/utils.js.map +0 -1
@@ -1,340 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/FieldApi.ts
21
- var FieldApi_exports = {};
22
- __export(FieldApi_exports, {
23
- FieldApi: () => FieldApi
24
- });
25
- module.exports = __toCommonJS(FieldApi_exports);
26
- var import_store = require("@tanstack/store");
27
- var uid = 0;
28
- var FieldApi = class _FieldApi {
29
- constructor(opts) {
30
- this.options = {};
31
- this.mount = () => {
32
- var _a, _b;
33
- const info = this.getInfo();
34
- info.instances[this.uid] = this;
35
- const unsubscribe = this.form.store.subscribe(() => {
36
- this.store.batch(() => {
37
- const nextValue = this.getValue();
38
- const nextMeta = this.getMeta();
39
- if (nextValue !== this.state.value) {
40
- this.store.setState((prev) => ({ ...prev, value: nextValue }));
41
- }
42
- if (nextMeta !== this.state.meta) {
43
- this.store.setState((prev) => ({ ...prev, meta: nextMeta }));
44
- }
45
- });
46
- });
47
- this.update(this.options);
48
- (_b = (_a = this.options).onMount) == null ? void 0 : _b.call(_a, this);
49
- return () => {
50
- const preserveValue = this.options.preserveValue;
51
- unsubscribe();
52
- if (!preserveValue) {
53
- delete info.instances[this.uid];
54
- this.form.deleteField(this.name);
55
- }
56
- if (!Object.keys(info.instances).length && !preserveValue) {
57
- delete this.form.fieldInfo[this.name];
58
- }
59
- };
60
- };
61
- this.update = (opts) => {
62
- var _a;
63
- if (this.state.value === void 0) {
64
- const formDefault = (_a = opts.form.options.defaultValues) == null ? void 0 : _a[opts.name];
65
- if (opts.defaultValue !== void 0) {
66
- this.setValue(opts.defaultValue);
67
- } else if (formDefault !== void 0) {
68
- this.setValue(formDefault);
69
- }
70
- }
71
- if (this._getMeta() === void 0) {
72
- this.setMeta(this.state.meta);
73
- }
74
- this.options = opts;
75
- };
76
- this.getValue = () => {
77
- return this.form.getFieldValue(this.name);
78
- };
79
- this.setValue = (updater, options) => {
80
- this.form.setFieldValue(this.name, updater, options);
81
- this.validate("change", this.state.value);
82
- };
83
- this._getMeta = () => this.form.getFieldMeta(this.name);
84
- this.getMeta = () => this._getMeta() ?? {
85
- isValidating: false,
86
- isTouched: false,
87
- touchedErrors: [],
88
- errors: [],
89
- errorMap: {},
90
- ...this.options.defaultMeta
91
- };
92
- this.setMeta = (updater) => this.form.setFieldMeta(this.name, updater);
93
- this.getInfo = () => this.form.getFieldInfo(this.name);
94
- this.pushValue = (value) => this.form.pushFieldValue(this.name, value);
95
- this.insertValue = (index, value) => this.form.insertFieldValue(this.name, index, value);
96
- this.removeValue = (index) => this.form.removeFieldValue(this.name, index);
97
- this.swapValues = (aIndex, bIndex) => this.form.swapFieldValues(this.name, aIndex, bIndex);
98
- this.getSubField = (name) => new _FieldApi({
99
- name: `${this.name}.${name}`,
100
- form: this.form
101
- });
102
- this.validateSync = (value = this.state.value, cause) => {
103
- const { onChange, onBlur, onSubmit } = this.options;
104
- const validates = (
105
- // https://github.com/TanStack/form/issues/490
106
- cause === "submit" ? [
107
- { cause: "change", validate: onChange },
108
- { cause: "blur", validate: onBlur },
109
- { cause: "submit", validate: onSubmit }
110
- ] : cause === "change" ? [{ cause: "change", validate: onChange }] : [{ cause: "blur", validate: onBlur }]
111
- );
112
- const validationCount = (this.getInfo().validationCount || 0) + 1;
113
- this.getInfo().validationCount = validationCount;
114
- const doValidate = (validate) => {
115
- if (this.options.validator && typeof validate !== "function") {
116
- return this.options.validator().validate(
117
- value,
118
- validate
119
- );
120
- }
121
- if (this.form.options.validator && typeof validate !== "function") {
122
- return this.form.options.validator().validate(
123
- value,
124
- validate
125
- );
126
- }
127
- return validate(
128
- value,
129
- this
130
- );
131
- };
132
- let hasErrored = false;
133
- this.form.store.batch(() => {
134
- for (const validateObj of validates) {
135
- if (!validateObj.validate)
136
- continue;
137
- const error = normalizeError(doValidate(validateObj.validate));
138
- const errorMapKey = getErrorMapKey(validateObj.cause);
139
- if (this.state.meta.errorMap[errorMapKey] !== error) {
140
- this.setMeta((prev) => ({
141
- ...prev,
142
- errorMap: {
143
- ...prev.errorMap,
144
- [getErrorMapKey(validateObj.cause)]: error
145
- }
146
- }));
147
- }
148
- if (error) {
149
- hasErrored = true;
150
- }
151
- }
152
- });
153
- const submitErrKey = getErrorMapKey("submit");
154
- if (this.state.meta.errorMap[submitErrKey] && cause !== "submit" && !hasErrored) {
155
- this.setMeta((prev) => ({
156
- ...prev,
157
- errorMap: {
158
- ...prev.errorMap,
159
- [submitErrKey]: void 0
160
- }
161
- }));
162
- }
163
- if (hasErrored) {
164
- this.cancelValidateAsync();
165
- }
166
- return { hasErrored };
167
- };
168
- this.__leaseValidateAsync = () => {
169
- const count = (this.getInfo().validationAsyncCount || 0) + 1;
170
- this.getInfo().validationAsyncCount = count;
171
- return count;
172
- };
173
- this.cancelValidateAsync = () => {
174
- this.__leaseValidateAsync();
175
- this.setMeta((prev) => ({
176
- ...prev,
177
- isValidating: false
178
- }));
179
- };
180
- this.validateAsync = async (value = this.state.value, cause) => {
181
- var _a, _b, _c, _d;
182
- const {
183
- onChangeAsync,
184
- onBlurAsync,
185
- onSubmitAsync,
186
- asyncDebounceMs,
187
- onBlurAsyncDebounceMs,
188
- onChangeAsyncDebounceMs
189
- } = this.options;
190
- const validate = cause === "change" ? onChangeAsync : cause === "submit" ? onSubmitAsync : onBlurAsync;
191
- if (!validate)
192
- return [];
193
- const debounceMs = cause === "submit" ? 0 : (cause === "change" ? onChangeAsyncDebounceMs : onBlurAsyncDebounceMs) ?? asyncDebounceMs ?? 0;
194
- if (this.state.meta.isValidating !== true) {
195
- this.setMeta((prev) => ({ ...prev, isValidating: true }));
196
- }
197
- const validationAsyncCount = this.__leaseValidateAsync();
198
- const checkLatest = () => validationAsyncCount === this.getInfo().validationAsyncCount;
199
- if (!this.getInfo().validationPromise) {
200
- this.getInfo().validationPromise = new Promise((resolve, reject) => {
201
- this.getInfo().validationResolve = resolve;
202
- this.getInfo().validationReject = reject;
203
- });
204
- }
205
- if (debounceMs > 0) {
206
- await new Promise((r) => setTimeout(r, debounceMs));
207
- }
208
- const doValidate = () => {
209
- if (this.options.validator && typeof validate !== "function") {
210
- return this.options.validator().validateAsync(
211
- value,
212
- validate
213
- );
214
- }
215
- if (this.form.options.validator && typeof validate !== "function") {
216
- return this.form.options.validator().validateAsync(value, validate);
217
- }
218
- return validate(
219
- value,
220
- this
221
- );
222
- };
223
- if (checkLatest()) {
224
- const prevErrors = this.getMeta().errors;
225
- try {
226
- const rawError = await doValidate();
227
- if (checkLatest()) {
228
- const error = normalizeError(rawError);
229
- this.setMeta((prev) => ({
230
- ...prev,
231
- isValidating: false,
232
- errorMap: {
233
- ...prev.errorMap,
234
- [getErrorMapKey(cause)]: error
235
- }
236
- }));
237
- (_b = (_a = this.getInfo()).validationResolve) == null ? void 0 : _b.call(_a, [...prevErrors, error]);
238
- }
239
- } catch (error) {
240
- if (checkLatest()) {
241
- (_d = (_c = this.getInfo()).validationReject) == null ? void 0 : _d.call(_c, [...prevErrors, error]);
242
- throw error;
243
- }
244
- } finally {
245
- if (checkLatest()) {
246
- this.setMeta((prev) => ({ ...prev, isValidating: false }));
247
- delete this.getInfo().validationPromise;
248
- }
249
- }
250
- }
251
- return await this.getInfo().validationPromise ?? [];
252
- };
253
- this.validate = (cause, value) => {
254
- if (!this.state.meta.isTouched)
255
- return [];
256
- try {
257
- this.form.validate(cause);
258
- } catch (_) {
259
- }
260
- const { hasErrored } = this.validateSync(value, cause);
261
- if (hasErrored) {
262
- if (!this.options.asyncAlways) {
263
- return this.state.meta.errors;
264
- }
265
- }
266
- return this.validateAsync(value, cause);
267
- };
268
- this.handleChange = (updater) => {
269
- this.setValue(updater, { touch: true });
270
- };
271
- this.handleBlur = () => {
272
- const prevTouched = this.state.meta.isTouched;
273
- if (!prevTouched) {
274
- this.setMeta((prev) => ({ ...prev, isTouched: true }));
275
- this.validate("change");
276
- }
277
- this.validate("blur");
278
- };
279
- this.form = opts.form;
280
- this.uid = uid++;
281
- this.name = opts.name;
282
- if (opts.defaultValue !== void 0) {
283
- this.form.setFieldValue(this.name, opts.defaultValue);
284
- }
285
- this.store = new import_store.Store(
286
- {
287
- value: this.getValue(),
288
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
289
- meta: this._getMeta() ?? {
290
- isValidating: false,
291
- isTouched: false,
292
- touchedErrors: [],
293
- errors: [],
294
- errorMap: {},
295
- ...opts.defaultMeta
296
- }
297
- },
298
- {
299
- onUpdate: () => {
300
- const state = this.store.state;
301
- state.meta.errors = Object.values(state.meta.errorMap).filter(
302
- (val) => val !== void 0
303
- );
304
- state.meta.touchedErrors = state.meta.isTouched ? state.meta.errors : [];
305
- this.prevState = state;
306
- this.state = state;
307
- }
308
- }
309
- );
310
- this.state = this.store.state;
311
- this.prevState = this.state;
312
- this.options = opts;
313
- }
314
- };
315
- function normalizeError(rawError) {
316
- if (rawError) {
317
- if (typeof rawError !== "string") {
318
- return "Invalid Form Values";
319
- }
320
- return rawError;
321
- }
322
- return void 0;
323
- }
324
- function getErrorMapKey(cause) {
325
- switch (cause) {
326
- case "submit":
327
- return "onSubmit";
328
- case "change":
329
- return "onChange";
330
- case "blur":
331
- return "onBlur";
332
- case "mount":
333
- return "onMount";
334
- }
335
- }
336
- // Annotate the CommonJS export names for ESM import in node:
337
- 0 && (module.exports = {
338
- FieldApi
339
- });
340
- //# sourceMappingURL=FieldApi.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/FieldApi.ts"],"sourcesContent":["import { Store } from '@tanstack/store'\nimport type { FormApi, ValidationErrorMap } from './FormApi'\nimport type { ValidationError, Validator } from './types'\nimport type { DeepKeys, DeepValue, Updater } from './utils'\n\nexport type ValidationCause = 'change' | 'blur' | 'submit' | 'mount'\n\ntype ValidateFn<\n TParentData,\n TName extends DeepKeys<TParentData>,\n ValidatorType,\n TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>,\n> = (\n value: TData,\n fieldApi: FieldApi<TParentData, TName, ValidatorType, TData>,\n) => ValidationError\n\ntype ValidateOrFn<\n TParentData,\n TName extends DeepKeys<TParentData>,\n ValidatorType,\n FormValidator,\n TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>,\n> = ValidatorType extends Validator<TData>\n ?\n | Parameters<ReturnType<ValidatorType>['validate']>[1]\n | ValidateFn<TParentData, TName, ValidatorType, TData>\n : FormValidator extends Validator<TData>\n ?\n | Parameters<ReturnType<FormValidator>['validate']>[1]\n | ValidateFn<TParentData, TName, ValidatorType, TData>\n : ValidateFn<TParentData, TName, ValidatorType, TData>\n\ntype ValidateAsyncFn<\n TParentData,\n TName extends DeepKeys<TParentData>,\n ValidatorType,\n TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>,\n> = (\n value: TData,\n fieldApi: FieldApi<TParentData, TName, ValidatorType, TData>,\n) => ValidationError | Promise<ValidationError>\n\ntype AsyncValidateOrFn<\n TParentData,\n TName extends DeepKeys<TParentData>,\n ValidatorType,\n FormValidator,\n TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>,\n> = ValidatorType extends Validator<TData>\n ?\n | Parameters<ReturnType<ValidatorType>['validate']>[1]\n | ValidateAsyncFn<TParentData, TName, ValidatorType, TData>\n : FormValidator extends Validator<TData>\n ?\n | Parameters<ReturnType<FormValidator>['validate']>[1]\n | ValidateAsyncFn<TParentData, TName, ValidatorType, TData>\n : ValidateAsyncFn<TParentData, TName, ValidatorType, TData>\n\nexport interface FieldOptions<\n TParentData,\n TName extends DeepKeys<TParentData>,\n ValidatorType,\n FormValidator,\n TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>,\n> {\n name: TName\n index?: TData extends any[] ? number : never\n defaultValue?: TData\n asyncDebounceMs?: number\n asyncAlways?: boolean\n preserveValue?: boolean\n validator?: ValidatorType\n onMount?: (\n formApi: FieldApi<TParentData, TName, ValidatorType, TData>,\n ) => void\n onChange?: ValidateOrFn<\n TParentData,\n TName,\n ValidatorType,\n FormValidator,\n TData\n >\n onChangeAsync?: AsyncValidateOrFn<\n TParentData,\n TName,\n ValidatorType,\n FormValidator,\n TData\n >\n onChangeAsyncDebounceMs?: number\n onBlur?: ValidateOrFn<TParentData, TName, ValidatorType, FormValidator, TData>\n onBlurAsync?: AsyncValidateOrFn<\n TParentData,\n TName,\n ValidatorType,\n FormValidator,\n TData\n >\n onBlurAsyncDebounceMs?: number\n onSubmit?: ValidateOrFn<\n TParentData,\n TName,\n ValidatorType,\n FormValidator,\n TData\n >\n onSubmitAsync?: AsyncValidateOrFn<\n TParentData,\n TName,\n ValidatorType,\n FormValidator,\n TData\n >\n defaultMeta?: Partial<FieldMeta>\n}\n\nexport interface FieldApiOptions<\n TParentData,\n TName extends DeepKeys<TParentData>,\n ValidatorType,\n FormValidator,\n TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>,\n> extends FieldOptions<\n TParentData,\n TName,\n ValidatorType,\n FormValidator,\n TData\n > {\n form: FormApi<TParentData, FormValidator>\n}\n\nexport type FieldMeta = {\n isTouched: boolean\n touchedErrors: ValidationError[]\n errors: ValidationError[]\n errorMap: ValidationErrorMap\n isValidating: boolean\n}\n\nlet uid = 0\n\nexport type FieldState<TData> = {\n value: TData\n meta: FieldMeta\n}\n\nexport type ResolveName<TParentData> = unknown extends TParentData\n ? string\n : DeepKeys<TParentData>\n\nexport class FieldApi<\n TParentData,\n TName extends DeepKeys<TParentData>,\n ValidatorType,\n FormValidator,\n TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>,\n> {\n uid: number\n form: FieldApiOptions<TParentData, TName, ValidatorType, TData>['form']\n name!: DeepKeys<TParentData>\n options: FieldApiOptions<TParentData, TName, ValidatorType, TData> = {} as any\n store!: Store<FieldState<TData>>\n state!: FieldState<TData>\n prevState!: FieldState<TData>\n\n constructor(\n opts: FieldApiOptions<\n TParentData,\n TName,\n ValidatorType,\n FormValidator,\n TData\n >,\n ) {\n this.form = opts.form as never\n this.uid = uid++\n // Support field prefixing from FieldScope\n // let fieldPrefix = ''\n // if (this.form.fieldName) {\n // fieldPrefix = `${this.form.fieldName}.`\n // }\n\n this.name = opts.name as never\n\n if (opts.defaultValue !== undefined) {\n this.form.setFieldValue(this.name, opts.defaultValue as never)\n }\n\n this.store = new Store<FieldState<TData>>(\n {\n value: this.getValue(),\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n meta: this._getMeta() ?? {\n isValidating: false,\n isTouched: false,\n touchedErrors: [],\n errors: [],\n errorMap: {},\n ...opts.defaultMeta,\n },\n },\n {\n onUpdate: () => {\n const state = this.store.state\n\n state.meta.errors = Object.values(state.meta.errorMap).filter(\n (val: unknown) => val !== undefined,\n )\n\n state.meta.touchedErrors = state.meta.isTouched\n ? state.meta.errors\n : []\n\n this.prevState = state\n this.state = state\n },\n },\n )\n\n this.state = this.store.state\n this.prevState = this.state\n this.options = opts as never\n }\n\n mount = () => {\n const info = this.getInfo()\n info.instances[this.uid] = this as never\n const unsubscribe = this.form.store.subscribe(() => {\n this.store.batch(() => {\n const nextValue = this.getValue()\n const nextMeta = this.getMeta()\n\n if (nextValue !== this.state.value) {\n this.store.setState((prev) => ({ ...prev, value: nextValue }))\n }\n\n if (nextMeta !== this.state.meta) {\n this.store.setState((prev) => ({ ...prev, meta: nextMeta }))\n }\n })\n })\n\n this.update(this.options as never)\n this.options.onMount?.(this as never)\n\n return () => {\n const preserveValue = this.options.preserveValue\n unsubscribe()\n if (!preserveValue) {\n delete info.instances[this.uid]\n this.form.deleteField(this.name)\n }\n\n if (!Object.keys(info.instances).length && !preserveValue) {\n delete this.form.fieldInfo[this.name]\n }\n }\n }\n\n update = (\n opts: FieldApiOptions<TParentData, TName, ValidatorType, TData>,\n ) => {\n // Default Value\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (this.state.value === undefined) {\n const formDefault =\n opts.form.options.defaultValues?.[opts.name as keyof TParentData]\n\n if (opts.defaultValue !== undefined) {\n this.setValue(opts.defaultValue as never)\n } else if (formDefault !== undefined) {\n this.setValue(formDefault as never)\n }\n }\n\n // Default Meta\n if (this._getMeta() === undefined) {\n this.setMeta(this.state.meta)\n }\n\n this.options = opts as never\n }\n\n getValue = (): TData => {\n return this.form.getFieldValue(this.name) as any\n }\n\n setValue = (\n updater: Updater<TData>,\n options?: { touch?: boolean; notify?: boolean },\n ) => {\n this.form.setFieldValue(this.name, updater as never, options)\n this.validate('change', this.state.value)\n }\n\n _getMeta = () => this.form.getFieldMeta(this.name)\n getMeta = () =>\n this._getMeta() ??\n ({\n isValidating: false,\n isTouched: false,\n touchedErrors: [],\n errors: [],\n errorMap: {},\n ...this.options.defaultMeta,\n } as FieldMeta)\n\n setMeta = (updater: Updater<FieldMeta>) =>\n this.form.setFieldMeta(this.name, updater)\n\n getInfo = () => this.form.getFieldInfo(this.name)\n\n pushValue = (value: TData extends any[] ? TData[number] : never) =>\n this.form.pushFieldValue(this.name, value as any)\n\n insertValue = (\n index: number,\n value: TData extends any[] ? TData[number] : never,\n ) => this.form.insertFieldValue(this.name, index, value as any)\n\n removeValue = (index: number) => this.form.removeFieldValue(this.name, index)\n\n swapValues = (aIndex: number, bIndex: number) =>\n this.form.swapFieldValues(this.name, aIndex, bIndex)\n\n getSubField = <\n TSubName extends DeepKeys<TData>,\n TSubData extends DeepValue<TData, TSubName> = DeepValue<TData, TSubName>,\n >(\n name: TSubName,\n ): FieldApi<TData, TSubName, ValidatorType, TSubData> =>\n new FieldApi({\n name: `${this.name}.${name}` as never,\n form: this.form,\n }) as any\n\n validateSync = (value = this.state.value, cause: ValidationCause) => {\n const { onChange, onBlur, onSubmit } = this.options\n\n const validates =\n // https://github.com/TanStack/form/issues/490\n cause === 'submit'\n ? ([\n { cause: 'change', validate: onChange },\n { cause: 'blur', validate: onBlur },\n { cause: 'submit', validate: onSubmit },\n ] as const)\n : cause === 'change'\n ? ([{ cause: 'change', validate: onChange }] as const)\n : ([{ cause: 'blur', validate: onBlur }] as const)\n\n // Use the validationCount for all field instances to\n // track freshness of the validation\n const validationCount = (this.getInfo().validationCount || 0) + 1\n this.getInfo().validationCount = validationCount\n\n const doValidate = (validate: (typeof validates)[number]['validate']) => {\n if (this.options.validator && typeof validate !== 'function') {\n return (this.options.validator as Validator<TData>)().validate(\n value,\n validate,\n )\n }\n\n if (this.form.options.validator && typeof validate !== 'function') {\n return (this.form.options.validator as Validator<TData>)().validate(\n value,\n validate,\n )\n }\n\n return (validate as ValidateFn<TParentData, TName, ValidatorType, TData>)(\n value,\n this as never,\n )\n }\n\n // Needs type cast as eslint errantly believes this is always falsy\n let hasErrored = false as boolean\n\n this.form.store.batch(() => {\n for (const validateObj of validates) {\n if (!validateObj.validate) continue\n const error = normalizeError(doValidate(validateObj.validate))\n const errorMapKey = getErrorMapKey(validateObj.cause)\n if (this.state.meta.errorMap[errorMapKey] !== error) {\n this.setMeta((prev) => ({\n ...prev,\n errorMap: {\n ...prev.errorMap,\n [getErrorMapKey(validateObj.cause)]: error,\n },\n }))\n }\n if (error) {\n hasErrored = true\n }\n }\n })\n\n /**\n * when we have an error for onSubmit in the state, we want\n * to clear the error as soon as the user enters a valid value in the field\n */\n const submitErrKey = getErrorMapKey('submit')\n if (\n this.state.meta.errorMap[submitErrKey] &&\n cause !== 'submit' &&\n !hasErrored\n ) {\n this.setMeta((prev) => ({\n ...prev,\n errorMap: {\n ...prev.errorMap,\n [submitErrKey]: undefined,\n },\n }))\n }\n\n // If a sync error is encountered for the errorMapKey (eg. onChange), cancel any async validation\n if (hasErrored) {\n this.cancelValidateAsync()\n }\n\n return { hasErrored }\n }\n\n __leaseValidateAsync = () => {\n const count = (this.getInfo().validationAsyncCount || 0) + 1\n this.getInfo().validationAsyncCount = count\n return count\n }\n\n cancelValidateAsync = () => {\n // Lease a new validation count to ignore any pending validations\n this.__leaseValidateAsync()\n // Cancel any pending validation state\n this.setMeta((prev) => ({\n ...prev,\n isValidating: false,\n }))\n }\n\n validateAsync = async (value = this.state.value, cause: ValidationCause) => {\n const {\n onChangeAsync,\n onBlurAsync,\n onSubmitAsync,\n asyncDebounceMs,\n onBlurAsyncDebounceMs,\n onChangeAsyncDebounceMs,\n } = this.options\n\n const validate =\n cause === 'change'\n ? onChangeAsync\n : cause === 'submit'\n ? onSubmitAsync\n : onBlurAsync\n if (!validate) return []\n const debounceMs =\n cause === 'submit'\n ? 0\n : (cause === 'change'\n ? onChangeAsyncDebounceMs\n : onBlurAsyncDebounceMs) ??\n asyncDebounceMs ??\n 0\n\n if (this.state.meta.isValidating !== true) {\n this.setMeta((prev) => ({ ...prev, isValidating: true }))\n }\n\n // Use the validationCount for all field instances to\n // track freshness of the validation\n const validationAsyncCount = this.__leaseValidateAsync()\n\n const checkLatest = () =>\n validationAsyncCount === this.getInfo().validationAsyncCount\n\n if (!this.getInfo().validationPromise) {\n this.getInfo().validationPromise = new Promise((resolve, reject) => {\n this.getInfo().validationResolve = resolve\n this.getInfo().validationReject = reject\n })\n }\n\n if (debounceMs > 0) {\n await new Promise((r) => setTimeout(r, debounceMs))\n }\n\n const doValidate = () => {\n if (this.options.validator && typeof validate !== 'function') {\n return (this.options.validator as Validator<TData>)().validateAsync(\n value,\n validate,\n )\n }\n\n if (this.form.options.validator && typeof validate !== 'function') {\n return (\n this.form.options.validator as Validator<TData>\n )().validateAsync(value, validate)\n }\n\n return (validate as ValidateFn<TParentData, TName, ValidatorType, TData>)(\n value,\n this as never,\n )\n }\n\n // Only kick off validation if this validation is the latest attempt\n if (checkLatest()) {\n const prevErrors = this.getMeta().errors\n try {\n const rawError = await doValidate()\n if (checkLatest()) {\n const error = normalizeError(rawError)\n this.setMeta((prev) => ({\n ...prev,\n isValidating: false,\n errorMap: {\n ...prev.errorMap,\n [getErrorMapKey(cause)]: error,\n },\n }))\n this.getInfo().validationResolve?.([...prevErrors, error])\n }\n } catch (error) {\n if (checkLatest()) {\n this.getInfo().validationReject?.([...prevErrors, error])\n throw error\n }\n } finally {\n if (checkLatest()) {\n this.setMeta((prev) => ({ ...prev, isValidating: false }))\n delete this.getInfo().validationPromise\n }\n }\n }\n\n // Always return the latest validation promise to the caller\n return (await this.getInfo().validationPromise) ?? []\n }\n\n validate = (\n cause: ValidationCause,\n value?: TData,\n ): ValidationError[] | Promise<ValidationError[]> => {\n // If the field is pristine and validatePristine is false, do not validate\n if (!this.state.meta.isTouched) return []\n\n try {\n this.form.validate(cause)\n } catch (_) {}\n\n // Attempt to sync validate first\n const { hasErrored } = this.validateSync(value, cause)\n\n if (hasErrored) {\n if (!this.options.asyncAlways) {\n return this.state.meta.errors\n }\n }\n // No error? Attempt async validation\n return this.validateAsync(value, cause)\n }\n\n handleChange = (updater: Updater<TData>) => {\n this.setValue(updater, { touch: true })\n }\n\n handleBlur = () => {\n const prevTouched = this.state.meta.isTouched\n if (!prevTouched) {\n this.setMeta((prev) => ({ ...prev, isTouched: true }))\n this.validate('change')\n }\n this.validate('blur')\n }\n}\n\nfunction normalizeError(rawError?: ValidationError) {\n if (rawError) {\n if (typeof rawError !== 'string') {\n return 'Invalid Form Values'\n }\n\n return rawError\n }\n\n return undefined\n}\n\nfunction getErrorMapKey(cause: ValidationCause) {\n switch (cause) {\n case 'submit':\n return 'onSubmit'\n case 'change':\n return 'onChange'\n case 'blur':\n return 'onBlur'\n case 'mount':\n return 'onMount'\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,4 +0,0 @@
1
- export { FieldApi, FieldApiOptions, FieldMeta, FieldOptions, FieldState, ResolveName, ValidationCause } from './index.cjs';
2
- import '@tanstack/store';
3
- import './types.cjs';
4
- import './utils.cjs';
@@ -1,4 +0,0 @@
1
- export { FieldApi, FieldApiOptions, FieldMeta, FieldOptions, FieldState, ResolveName, ValidationCause } from './index.js';
2
- import '@tanstack/store';
3
- import './types.js';
4
- import './utils.js';