@jfdevelops/multi-step-form-core 1.0.0-alpha.23 → 1.0.0-alpha.25
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/dist/_internals.cjs +0 -4
- package/dist/_internals.d.cts +2 -3
- package/dist/_internals.d.mts +2 -3
- package/dist/_internals.mjs +1 -2
- package/dist/index.cjs +17 -18
- package/dist/index.d.cts +12 -11
- package/dist/index.d.mts +12 -11
- package/dist/index.mjs +8 -10
- package/dist/internals/step-schema.cjs +120 -71
- package/dist/internals/step-schema.cjs.map +1 -1
- package/dist/internals/step-schema.d.cts +47 -29
- package/dist/internals/step-schema.d.cts.map +1 -1
- package/dist/internals/step-schema.d.mts +47 -29
- package/dist/internals/step-schema.d.mts.map +1 -1
- package/dist/internals/step-schema.mjs +120 -71
- package/dist/internals/step-schema.mjs.map +1 -1
- package/dist/schema.cjs +14 -10
- package/dist/schema.cjs.map +1 -1
- package/dist/schema.d.cts +11 -13
- package/dist/schema.d.cts.map +1 -1
- package/dist/schema.d.mts +11 -13
- package/dist/schema.d.mts.map +1 -1
- package/dist/schema.mjs +14 -10
- package/dist/schema.mjs.map +1 -1
- package/dist/steps/fields.cjs +95 -0
- package/dist/steps/fields.cjs.map +1 -1
- package/dist/steps/fields.d.cts +119 -9
- package/dist/steps/fields.d.cts.map +1 -1
- package/dist/steps/fields.d.mts +119 -9
- package/dist/steps/fields.d.mts.map +1 -1
- package/dist/steps/fields.mjs +95 -0
- package/dist/steps/fields.mjs.map +1 -1
- package/dist/steps/fn-utils/helper-fn/index.cjs +81 -0
- package/dist/steps/fn-utils/helper-fn/index.cjs.map +1 -0
- package/dist/steps/fn-utils/helper-fn/index.d.cts +146 -0
- package/dist/steps/fn-utils/helper-fn/index.d.cts.map +1 -0
- package/dist/steps/fn-utils/helper-fn/index.d.mts +146 -0
- package/dist/steps/fn-utils/helper-fn/index.d.mts.map +1 -0
- package/dist/steps/fn-utils/helper-fn/index.mjs +75 -0
- package/dist/steps/fn-utils/helper-fn/index.mjs.map +1 -0
- package/dist/steps/fn-utils/helper-fn/utils.d.cts +81 -0
- package/dist/steps/fn-utils/helper-fn/utils.d.cts.map +1 -0
- package/dist/steps/fn-utils/helper-fn/utils.d.mts +81 -0
- package/dist/steps/fn-utils/helper-fn/utils.d.mts.map +1 -0
- package/dist/steps/fn-utils/index.cjs +1 -0
- package/dist/steps/fn-utils/index.mjs +3 -0
- package/dist/steps/fn-utils/reset-fn.d.cts +30 -0
- package/dist/steps/fn-utils/reset-fn.d.cts.map +1 -0
- package/dist/steps/fn-utils/reset-fn.d.mts +30 -0
- package/dist/steps/fn-utils/reset-fn.d.mts.map +1 -0
- package/dist/steps/fn-utils/update-fn.d.cts +121 -0
- package/dist/steps/fn-utils/update-fn.d.cts.map +1 -0
- package/dist/steps/fn-utils/update-fn.d.mts +121 -0
- package/dist/steps/fn-utils/update-fn.d.mts.map +1 -0
- package/dist/steps/index.cjs +4 -2
- package/dist/steps/index.mjs +5 -3
- package/dist/steps/schema.cjs +61 -84
- package/dist/steps/schema.cjs.map +1 -1
- package/dist/steps/schema.d.cts +66 -67
- package/dist/steps/schema.d.cts.map +1 -1
- package/dist/steps/schema.d.mts +66 -67
- package/dist/steps/schema.d.mts.map +1 -1
- package/dist/steps/schema.mjs +62 -86
- package/dist/steps/schema.mjs.map +1 -1
- package/dist/steps/steps.cjs +83 -0
- package/dist/steps/steps.cjs.map +1 -0
- package/dist/steps/steps.d.cts +81 -0
- package/dist/steps/steps.d.cts.map +1 -0
- package/dist/steps/steps.d.mts +81 -0
- package/dist/steps/steps.d.mts.map +1 -0
- package/dist/steps/steps.mjs +76 -0
- package/dist/steps/steps.mjs.map +1 -0
- package/dist/steps/utils.cjs +40 -30
- package/dist/steps/utils.cjs.map +1 -1
- package/dist/steps/utils.d.cts +8 -5
- package/dist/steps/utils.d.cts.map +1 -1
- package/dist/steps/utils.d.mts +8 -5
- package/dist/steps/utils.d.mts.map +1 -1
- package/dist/steps/utils.mjs +40 -31
- package/dist/steps/utils.mjs.map +1 -1
- package/dist/storage.cjs +1 -1
- package/dist/storage.cjs.map +1 -1
- package/dist/storage.d.cts +9 -7
- package/dist/storage.d.cts.map +1 -1
- package/dist/storage.d.mts +9 -7
- package/dist/storage.d.mts.map +1 -1
- package/dist/storage.mjs +1 -1
- package/dist/storage.mjs.map +1 -1
- package/dist/utils/casing.cjs +1 -1
- package/dist/utils/casing.cjs.map +1 -1
- package/dist/utils/casing.d.cts +27 -11
- package/dist/utils/casing.d.cts.map +1 -1
- package/dist/utils/casing.d.mts +27 -11
- package/dist/utils/casing.d.mts.map +1 -1
- package/dist/utils/casing.mjs +1 -1
- package/dist/utils/casing.mjs.map +1 -1
- package/dist/utils/helpers.cjs +8 -0
- package/dist/utils/helpers.cjs.map +1 -1
- package/dist/utils/helpers.mjs +7 -1
- package/dist/utils/helpers.mjs.map +1 -1
- package/dist/utils/index.cjs +3 -0
- package/dist/utils/index.mjs +5 -0
- package/dist/utils/invariant.cjs +28 -8
- package/dist/utils/invariant.cjs.map +1 -1
- package/dist/utils/invariant.d.cts +12 -2
- package/dist/utils/invariant.d.cts.map +1 -1
- package/dist/utils/invariant.d.mts +12 -2
- package/dist/utils/invariant.d.mts.map +1 -1
- package/dist/utils/invariant.mjs +28 -9
- package/dist/utils/invariant.mjs.map +1 -1
- package/dist/utils/types.d.cts +15 -3
- package/dist/utils/types.d.cts.map +1 -1
- package/dist/utils/types.d.mts +15 -3
- package/dist/utils/types.d.mts.map +1 -1
- package/package.json +1 -1
- package/dist/internals/utils.cjs +0 -102
- package/dist/internals/utils.cjs.map +0 -1
- package/dist/internals/utils.d.cts +0 -11
- package/dist/internals/utils.d.cts.map +0 -1
- package/dist/internals/utils.d.mts +0 -11
- package/dist/internals/utils.d.mts.map +0 -1
- package/dist/internals/utils.mjs +0 -99
- package/dist/internals/utils.mjs.map +0 -1
- package/dist/observable.cjs +0 -44
- package/dist/observable.cjs.map +0 -1
- package/dist/observable.d.cts +0 -26
- package/dist/observable.d.cts.map +0 -1
- package/dist/observable.d.mts +0 -26
- package/dist/observable.d.mts.map +0 -1
- package/dist/observable.mjs +0 -44
- package/dist/observable.mjs.map +0 -1
- package/dist/steps/types.cjs +0 -33
- package/dist/steps/types.cjs.map +0 -1
- package/dist/steps/types.d.cts +0 -354
- package/dist/steps/types.d.cts.map +0 -1
- package/dist/steps/types.d.mts +0 -354
- package/dist/steps/types.d.mts.map +0 -1
- package/dist/steps/types.mjs +0 -27
- package/dist/steps/types.mjs.map +0 -1
- package/dist/utils/field-types.cjs +0 -97
- package/dist/utils/field-types.cjs.map +0 -1
- package/dist/utils/field-types.d.cts +0 -52
- package/dist/utils/field-types.d.cts.map +0 -1
- package/dist/utils/field-types.d.mts +0 -52
- package/dist/utils/field-types.d.mts.map +0 -1
- package/dist/utils/field-types.mjs +0 -93
- package/dist/utils/field-types.mjs.map +0 -1
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { DeepKeys, DeepPartial, Expand, Relaxed, Updater, objectHelpers, stripFunctions } from "../../utils/types.cjs";
|
|
2
|
+
import { path } from "../../utils/path.cjs";
|
|
3
|
+
import { steps } from "../steps.cjs";
|
|
4
|
+
import { HelperFn, HelperFnChosenSteps } from "./helper-fn/index.cjs";
|
|
5
|
+
|
|
6
|
+
//#region src/steps/fn-utils/update-fn.d.ts
|
|
7
|
+
declare namespace UpdateFn {
|
|
8
|
+
export type chosenFields<TCurrentStep extends steps.Any> = HelperFnChosenSteps.defaultStringOption | HelperFnChosenSteps.tupleNotation<DeepKeys<TCurrentStep>> | path.generateObjectConfig<TCurrentStep>;
|
|
9
|
+
type resolveAllPropertyPath<TCurrentStep extends steps.Any, TField extends chosenFields<TCurrentStep>> = TField extends HelperFnChosenSteps.defaultStringOption ? Relaxed<TCurrentStep> : never;
|
|
10
|
+
type resolveTuplePropertyPath<TCurrentStep extends steps.Any, TField extends chosenFields<TCurrentStep>, TDeepKeys extends DeepKeys<TCurrentStep> = DeepKeys<TCurrentStep>> = TField extends HelperFnChosenSteps.tupleNotation<TDeepKeys> ? TField[number] extends DeepKeys<Relaxed<TCurrentStep>> ? path.pickBy<Relaxed<TCurrentStep>, TField[number]> : never : never;
|
|
11
|
+
type resolveObjectPropertyPath<TCurrentStep extends steps.Any, TField extends chosenFields<TCurrentStep>, TDeepKeys extends DeepKeys<TCurrentStep> = DeepKeys<TCurrentStep>> = TField extends path.generateObjectConfig<TField> ? path.objectToPath<TField> extends TDeepKeys ? path.objectToPath<TField> extends DeepKeys<Relaxed<TCurrentStep>> ? path.pickBy<Relaxed<TCurrentStep>, path.objectToPath<TField>> : never : never : never;
|
|
12
|
+
type resolvePathType<TCurrentStep extends steps.Any, TField extends chosenFields<TCurrentStep>> = TField extends HelperFnChosenSteps.defaultStringOption ? 'all' : TField extends Array<infer _> ? 'tuple' : objectHelpers.isObject<TField> extends true ? 'object' : never;
|
|
13
|
+
type resolvePathMap<TCurrentStep extends steps.Any, TField extends chosenFields<TCurrentStep>> = {
|
|
14
|
+
all: resolveAllPropertyPath<TCurrentStep, TField>;
|
|
15
|
+
tuple: resolveTuplePropertyPath<TCurrentStep, TField>;
|
|
16
|
+
object: resolveObjectPropertyPath<TCurrentStep, TField>;
|
|
17
|
+
};
|
|
18
|
+
export type resolvedStep<value extends steps.instantiateSteps, targetStep extends steps.StepNumbers<value>> = stripFunctions<value[targetStep]>;
|
|
19
|
+
export type resolvedFieldValue<value extends steps.instantiateSteps, targetStep extends steps.StepNumbers<value>, field extends chosenFields<currentStep>, currentStep extends resolvedStep<value, targetStep> = resolvedStep<value, targetStep>, pathType extends resolvePathType<currentStep, field> = resolvePathType<currentStep, field>> = resolvePathMap<currentStep, field>[pathType];
|
|
20
|
+
export type mode = {
|
|
21
|
+
/**
|
|
22
|
+
* Enables strict mode for the update operation.
|
|
23
|
+
*
|
|
24
|
+
* When enabled, you won't be able to add new keys to an object. If
|
|
25
|
+
* you need to add new keys, set to `false`.
|
|
26
|
+
* @default true
|
|
27
|
+
*/
|
|
28
|
+
strict: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Enables partial mode for the update operation.
|
|
31
|
+
*
|
|
32
|
+
* When enabled, you will be required to return the whole object. If
|
|
33
|
+
* you need to return a partial object, set to `false`.
|
|
34
|
+
* @default false
|
|
35
|
+
*/
|
|
36
|
+
partial: boolean;
|
|
37
|
+
};
|
|
38
|
+
export type additionalUpdaterData = Record<string, unknown> | (() => Record<string, unknown>);
|
|
39
|
+
export type inferAdditionalUpdaterData<T extends additionalUpdaterData> = T extends (() => infer _) ? _ : T;
|
|
40
|
+
export type resolvedUpdaterReturnType<T, TMode extends mode, TAdditionalCtx extends additionalUpdaterData> = TMode['strict'] extends true ? TMode['partial'] extends true ? DeepPartial<T> : T : TMode['partial'] extends true ? DeepPartial<T> & TAdditionalCtx : T & TAdditionalCtx;
|
|
41
|
+
export interface DebugOptions {
|
|
42
|
+
/**
|
|
43
|
+
* Enables verbose debug logging for this update operation.
|
|
44
|
+
* Set to `true` to output helpful information for troubleshooting.
|
|
45
|
+
*/
|
|
46
|
+
debug?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Controls whether console errors should be silenced.
|
|
49
|
+
*
|
|
50
|
+
* By default, errors will be silenced when `partial: true` OR `strict: false`.
|
|
51
|
+
*
|
|
52
|
+
*/
|
|
53
|
+
silentErrors?: boolean;
|
|
54
|
+
}
|
|
55
|
+
export interface BaseOptions<value extends steps.instantiateSteps, targetStep extends steps.StepNumbers<value>, fields extends chosenFields<currentStep>, currentStep extends resolvedStep<value, targetStep> = resolvedStep<value, targetStep>> extends DebugOptions {
|
|
56
|
+
/**
|
|
57
|
+
* The step to update.
|
|
58
|
+
*/
|
|
59
|
+
targetStep: targetStep;
|
|
60
|
+
/**
|
|
61
|
+
* The specific fields to update.
|
|
62
|
+
*
|
|
63
|
+
* Optionally provide a value to narrow the results of the `ctx` in the
|
|
64
|
+
* updater `fn`.
|
|
65
|
+
*/
|
|
66
|
+
fields?: fields;
|
|
67
|
+
}
|
|
68
|
+
export interface ModeOptions<TMode extends mode> {
|
|
69
|
+
/**
|
|
70
|
+
* Enables verbose debug logging for this update operation.
|
|
71
|
+
* Set to `true` to output helpful information for troubleshooting.
|
|
72
|
+
*/
|
|
73
|
+
debug?: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Controls whether console errors should be silenced.
|
|
76
|
+
*
|
|
77
|
+
* By default, errors will be silenced when `partial: true` OR `strict: false`.
|
|
78
|
+
*
|
|
79
|
+
*/
|
|
80
|
+
silentErrors?: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Enables strict mode for the update operation.
|
|
83
|
+
*
|
|
84
|
+
* When enabled, you won't be able to add new keys to an object. If
|
|
85
|
+
* you need to add new keys, set to `false`.
|
|
86
|
+
* @default true
|
|
87
|
+
*/
|
|
88
|
+
strict?: TMode['strict'];
|
|
89
|
+
/**
|
|
90
|
+
* Enables partial mode for the update operation.
|
|
91
|
+
*
|
|
92
|
+
* When enabled, you will be required to return the whole object. If
|
|
93
|
+
* you need to return a partial object, set to `false`.
|
|
94
|
+
* @default false
|
|
95
|
+
*/
|
|
96
|
+
partial?: TMode['partial'];
|
|
97
|
+
}
|
|
98
|
+
export interface SharedOptions<value extends steps.instantiateSteps, targetStep extends steps.StepNumbers<value>, fields extends chosenFields<currentStep>, updateMode extends mode, currentStep extends resolvedStep<value, targetStep> = resolvedStep<value, targetStep>> extends BaseOptions<value, targetStep, fields, currentStep>, ModeOptions<updateMode> {}
|
|
99
|
+
export type options<value extends steps.instantiateSteps, targetStep extends steps.StepNumbers<value>, field extends chosenFields<TCurrentStep>, strict extends boolean, partial extends boolean, additionalCtx extends Record<string, unknown>, updaterData extends additionalUpdaterData, TCurrentStep extends resolvedStep<value, targetStep> = resolvedStep<value, targetStep>, TMode extends mode = {
|
|
100
|
+
strict: strict;
|
|
101
|
+
partial: partial;
|
|
102
|
+
}> = SharedOptions<value, targetStep, field, TMode, TCurrentStep> & HelperFn.CtxDataSelector<value, [targetStep], additionalCtx> & {
|
|
103
|
+
updater: Updater<Expand<HelperFn.BaseInput<value, [targetStep], never, additionalCtx>>, resolvedUpdaterReturnType<resolvedFieldValue<value, targetStep, field, TCurrentStep>, TMode, updaterData>>;
|
|
104
|
+
};
|
|
105
|
+
export type general<value extends steps.instantiateSteps> = <targetStep extends steps.StepNumbers<value>, field extends chosenFields<resolvedStep<value, targetStep>> = 'all', strict extends boolean = true, partial extends boolean = false, additionalCtx extends Record<string, unknown> = {}, additionalUpdaterData extends Record<string, unknown> = {}>(options: options<value, targetStep, field, strict, partial, additionalCtx, additionalUpdaterData>) => void;
|
|
106
|
+
export type stepSpecific<value extends steps.instantiateSteps, targetStep extends stepNumbers, stepNumbers extends steps.StepNumbers<value> = steps.StepNumbers<value>> = <field extends chosenFields<resolvedStep<value, targetStep>> = 'all', strict extends boolean = true, partial extends boolean = false, additionalCtx extends Record<string, unknown> = {}, additionalUpdaterData extends Record<string, unknown> = {}>(options: Omit<options<value, targetStep, field, strict, partial, additionalCtx, additionalUpdaterData>, 'targetStep'>) => void;
|
|
107
|
+
export type StepSpecificHelperFn<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = { [key in HelperFnChosenSteps.resolve<value, chosenSteps>]: stepSpecific<value, key> };
|
|
108
|
+
export type createHelperFnForAllSteps<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = chosenSteps extends HelperFnChosenSteps.defaultStringOption ? StepSpecificHelperFn<value, chosenSteps> : never;
|
|
109
|
+
export type createHelperFnForTupleSteps<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = chosenSteps extends HelperFnChosenSteps.tupleNotation<steps.StepNumbers<value>> ? StepSpecificHelperFn<value, chosenSteps> : never;
|
|
110
|
+
export type createHelperFnForObjectSteps<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = chosenSteps extends HelperFnChosenSteps.objectNotation<steps.StepNumbers<value>> ? { [key in keyof chosenSteps]: key extends HelperFnChosenSteps.resolve<value, chosenSteps> ? StepSpecificHelperFn<value, chosenSteps>[key] : never } : never;
|
|
111
|
+
type HelperFnMap<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = {
|
|
112
|
+
all: createHelperFnForAllSteps<value, chosenSteps>;
|
|
113
|
+
tuple: createHelperFnForTupleSteps<value, chosenSteps>;
|
|
114
|
+
object: createHelperFnForObjectSteps<value, chosenSteps>;
|
|
115
|
+
};
|
|
116
|
+
export type HelperFn<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = general<value> & HelperFnMap<value, chosenSteps>[HelperFnChosenSteps.resolveType<value, chosenSteps>];
|
|
117
|
+
export {};
|
|
118
|
+
}
|
|
119
|
+
//#endregion
|
|
120
|
+
export { UpdateFn };
|
|
121
|
+
//# sourceMappingURL=update-fn.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-fn.d.cts","names":[],"sources":["../../../src/steps/fn-utils/update-fn.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { DeepKeys, DeepPartial, Expand, Relaxed, Updater, objectHelpers, stripFunctions } from "../../utils/types.mjs";
|
|
2
|
+
import { path } from "../../utils/path.mjs";
|
|
3
|
+
import { steps } from "../steps.mjs";
|
|
4
|
+
import { HelperFn, HelperFnChosenSteps } from "./helper-fn/index.mjs";
|
|
5
|
+
|
|
6
|
+
//#region src/steps/fn-utils/update-fn.d.ts
|
|
7
|
+
declare namespace UpdateFn {
|
|
8
|
+
export type chosenFields<TCurrentStep extends steps.Any> = HelperFnChosenSteps.defaultStringOption | HelperFnChosenSteps.tupleNotation<DeepKeys<TCurrentStep>> | path.generateObjectConfig<TCurrentStep>;
|
|
9
|
+
type resolveAllPropertyPath<TCurrentStep extends steps.Any, TField extends chosenFields<TCurrentStep>> = TField extends HelperFnChosenSteps.defaultStringOption ? Relaxed<TCurrentStep> : never;
|
|
10
|
+
type resolveTuplePropertyPath<TCurrentStep extends steps.Any, TField extends chosenFields<TCurrentStep>, TDeepKeys extends DeepKeys<TCurrentStep> = DeepKeys<TCurrentStep>> = TField extends HelperFnChosenSteps.tupleNotation<TDeepKeys> ? TField[number] extends DeepKeys<Relaxed<TCurrentStep>> ? path.pickBy<Relaxed<TCurrentStep>, TField[number]> : never : never;
|
|
11
|
+
type resolveObjectPropertyPath<TCurrentStep extends steps.Any, TField extends chosenFields<TCurrentStep>, TDeepKeys extends DeepKeys<TCurrentStep> = DeepKeys<TCurrentStep>> = TField extends path.generateObjectConfig<TField> ? path.objectToPath<TField> extends TDeepKeys ? path.objectToPath<TField> extends DeepKeys<Relaxed<TCurrentStep>> ? path.pickBy<Relaxed<TCurrentStep>, path.objectToPath<TField>> : never : never : never;
|
|
12
|
+
type resolvePathType<TCurrentStep extends steps.Any, TField extends chosenFields<TCurrentStep>> = TField extends HelperFnChosenSteps.defaultStringOption ? 'all' : TField extends Array<infer _> ? 'tuple' : objectHelpers.isObject<TField> extends true ? 'object' : never;
|
|
13
|
+
type resolvePathMap<TCurrentStep extends steps.Any, TField extends chosenFields<TCurrentStep>> = {
|
|
14
|
+
all: resolveAllPropertyPath<TCurrentStep, TField>;
|
|
15
|
+
tuple: resolveTuplePropertyPath<TCurrentStep, TField>;
|
|
16
|
+
object: resolveObjectPropertyPath<TCurrentStep, TField>;
|
|
17
|
+
};
|
|
18
|
+
export type resolvedStep<value extends steps.instantiateSteps, targetStep extends steps.StepNumbers<value>> = stripFunctions<value[targetStep]>;
|
|
19
|
+
export type resolvedFieldValue<value extends steps.instantiateSteps, targetStep extends steps.StepNumbers<value>, field extends chosenFields<currentStep>, currentStep extends resolvedStep<value, targetStep> = resolvedStep<value, targetStep>, pathType extends resolvePathType<currentStep, field> = resolvePathType<currentStep, field>> = resolvePathMap<currentStep, field>[pathType];
|
|
20
|
+
export type mode = {
|
|
21
|
+
/**
|
|
22
|
+
* Enables strict mode for the update operation.
|
|
23
|
+
*
|
|
24
|
+
* When enabled, you won't be able to add new keys to an object. If
|
|
25
|
+
* you need to add new keys, set to `false`.
|
|
26
|
+
* @default true
|
|
27
|
+
*/
|
|
28
|
+
strict: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Enables partial mode for the update operation.
|
|
31
|
+
*
|
|
32
|
+
* When enabled, you will be required to return the whole object. If
|
|
33
|
+
* you need to return a partial object, set to `false`.
|
|
34
|
+
* @default false
|
|
35
|
+
*/
|
|
36
|
+
partial: boolean;
|
|
37
|
+
};
|
|
38
|
+
export type additionalUpdaterData = Record<string, unknown> | (() => Record<string, unknown>);
|
|
39
|
+
export type inferAdditionalUpdaterData<T extends additionalUpdaterData> = T extends (() => infer _) ? _ : T;
|
|
40
|
+
export type resolvedUpdaterReturnType<T, TMode extends mode, TAdditionalCtx extends additionalUpdaterData> = TMode['strict'] extends true ? TMode['partial'] extends true ? DeepPartial<T> : T : TMode['partial'] extends true ? DeepPartial<T> & TAdditionalCtx : T & TAdditionalCtx;
|
|
41
|
+
export interface DebugOptions {
|
|
42
|
+
/**
|
|
43
|
+
* Enables verbose debug logging for this update operation.
|
|
44
|
+
* Set to `true` to output helpful information for troubleshooting.
|
|
45
|
+
*/
|
|
46
|
+
debug?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Controls whether console errors should be silenced.
|
|
49
|
+
*
|
|
50
|
+
* By default, errors will be silenced when `partial: true` OR `strict: false`.
|
|
51
|
+
*
|
|
52
|
+
*/
|
|
53
|
+
silentErrors?: boolean;
|
|
54
|
+
}
|
|
55
|
+
export interface BaseOptions<value extends steps.instantiateSteps, targetStep extends steps.StepNumbers<value>, fields extends chosenFields<currentStep>, currentStep extends resolvedStep<value, targetStep> = resolvedStep<value, targetStep>> extends DebugOptions {
|
|
56
|
+
/**
|
|
57
|
+
* The step to update.
|
|
58
|
+
*/
|
|
59
|
+
targetStep: targetStep;
|
|
60
|
+
/**
|
|
61
|
+
* The specific fields to update.
|
|
62
|
+
*
|
|
63
|
+
* Optionally provide a value to narrow the results of the `ctx` in the
|
|
64
|
+
* updater `fn`.
|
|
65
|
+
*/
|
|
66
|
+
fields?: fields;
|
|
67
|
+
}
|
|
68
|
+
export interface ModeOptions<TMode extends mode> {
|
|
69
|
+
/**
|
|
70
|
+
* Enables verbose debug logging for this update operation.
|
|
71
|
+
* Set to `true` to output helpful information for troubleshooting.
|
|
72
|
+
*/
|
|
73
|
+
debug?: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Controls whether console errors should be silenced.
|
|
76
|
+
*
|
|
77
|
+
* By default, errors will be silenced when `partial: true` OR `strict: false`.
|
|
78
|
+
*
|
|
79
|
+
*/
|
|
80
|
+
silentErrors?: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Enables strict mode for the update operation.
|
|
83
|
+
*
|
|
84
|
+
* When enabled, you won't be able to add new keys to an object. If
|
|
85
|
+
* you need to add new keys, set to `false`.
|
|
86
|
+
* @default true
|
|
87
|
+
*/
|
|
88
|
+
strict?: TMode['strict'];
|
|
89
|
+
/**
|
|
90
|
+
* Enables partial mode for the update operation.
|
|
91
|
+
*
|
|
92
|
+
* When enabled, you will be required to return the whole object. If
|
|
93
|
+
* you need to return a partial object, set to `false`.
|
|
94
|
+
* @default false
|
|
95
|
+
*/
|
|
96
|
+
partial?: TMode['partial'];
|
|
97
|
+
}
|
|
98
|
+
export interface SharedOptions<value extends steps.instantiateSteps, targetStep extends steps.StepNumbers<value>, fields extends chosenFields<currentStep>, updateMode extends mode, currentStep extends resolvedStep<value, targetStep> = resolvedStep<value, targetStep>> extends BaseOptions<value, targetStep, fields, currentStep>, ModeOptions<updateMode> {}
|
|
99
|
+
export type options<value extends steps.instantiateSteps, targetStep extends steps.StepNumbers<value>, field extends chosenFields<TCurrentStep>, strict extends boolean, partial extends boolean, additionalCtx extends Record<string, unknown>, updaterData extends additionalUpdaterData, TCurrentStep extends resolvedStep<value, targetStep> = resolvedStep<value, targetStep>, TMode extends mode = {
|
|
100
|
+
strict: strict;
|
|
101
|
+
partial: partial;
|
|
102
|
+
}> = SharedOptions<value, targetStep, field, TMode, TCurrentStep> & HelperFn.CtxDataSelector<value, [targetStep], additionalCtx> & {
|
|
103
|
+
updater: Updater<Expand<HelperFn.BaseInput<value, [targetStep], never, additionalCtx>>, resolvedUpdaterReturnType<resolvedFieldValue<value, targetStep, field, TCurrentStep>, TMode, updaterData>>;
|
|
104
|
+
};
|
|
105
|
+
export type general<value extends steps.instantiateSteps> = <targetStep extends steps.StepNumbers<value>, field extends chosenFields<resolvedStep<value, targetStep>> = 'all', strict extends boolean = true, partial extends boolean = false, additionalCtx extends Record<string, unknown> = {}, additionalUpdaterData extends Record<string, unknown> = {}>(options: options<value, targetStep, field, strict, partial, additionalCtx, additionalUpdaterData>) => void;
|
|
106
|
+
export type stepSpecific<value extends steps.instantiateSteps, targetStep extends stepNumbers, stepNumbers extends steps.StepNumbers<value> = steps.StepNumbers<value>> = <field extends chosenFields<resolvedStep<value, targetStep>> = 'all', strict extends boolean = true, partial extends boolean = false, additionalCtx extends Record<string, unknown> = {}, additionalUpdaterData extends Record<string, unknown> = {}>(options: Omit<options<value, targetStep, field, strict, partial, additionalCtx, additionalUpdaterData>, 'targetStep'>) => void;
|
|
107
|
+
export type StepSpecificHelperFn<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = { [key in HelperFnChosenSteps.resolve<value, chosenSteps>]: stepSpecific<value, key> };
|
|
108
|
+
export type createHelperFnForAllSteps<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = chosenSteps extends HelperFnChosenSteps.defaultStringOption ? StepSpecificHelperFn<value, chosenSteps> : never;
|
|
109
|
+
export type createHelperFnForTupleSteps<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = chosenSteps extends HelperFnChosenSteps.tupleNotation<steps.StepNumbers<value>> ? StepSpecificHelperFn<value, chosenSteps> : never;
|
|
110
|
+
export type createHelperFnForObjectSteps<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = chosenSteps extends HelperFnChosenSteps.objectNotation<steps.StepNumbers<value>> ? { [key in keyof chosenSteps]: key extends HelperFnChosenSteps.resolve<value, chosenSteps> ? StepSpecificHelperFn<value, chosenSteps>[key] : never } : never;
|
|
111
|
+
type HelperFnMap<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = {
|
|
112
|
+
all: createHelperFnForAllSteps<value, chosenSteps>;
|
|
113
|
+
tuple: createHelperFnForTupleSteps<value, chosenSteps>;
|
|
114
|
+
object: createHelperFnForObjectSteps<value, chosenSteps>;
|
|
115
|
+
};
|
|
116
|
+
export type HelperFn<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = general<value> & HelperFnMap<value, chosenSteps>[HelperFnChosenSteps.resolveType<value, chosenSteps>];
|
|
117
|
+
export {};
|
|
118
|
+
}
|
|
119
|
+
//#endregion
|
|
120
|
+
export { UpdateFn };
|
|
121
|
+
//# sourceMappingURL=update-fn.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-fn.d.mts","names":[],"sources":["../../../src/steps/fn-utils/update-fn.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/steps/index.cjs
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_index = require('./fn-utils/helper-fn/index.cjs');
|
|
2
2
|
const require_fields = require('./fields.cjs');
|
|
3
|
+
const require_steps = require('./steps.cjs');
|
|
4
|
+
const require_utils = require('./utils.cjs');
|
|
3
5
|
const require_schema = require('./schema.cjs');
|
|
4
|
-
|
|
6
|
+
require('./fn-utils/index.cjs');
|
package/dist/steps/index.mjs
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { HelperFnChosenSteps } from "./fn-utils/helper-fn/index.mjs";
|
|
2
2
|
import { fields } from "./fields.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { VALIDATED_STEP_REGEX, steps } from "./steps.mjs";
|
|
4
|
+
import { createCtx } from "./utils.mjs";
|
|
5
|
+
import { MultiStepFormStepSchema, createIsValidStepFn } from "./schema.mjs";
|
|
6
|
+
import "./fn-utils/index.mjs";
|
|
5
7
|
|
|
6
8
|
export { };
|
package/dist/steps/schema.cjs
CHANGED
|
@@ -1,32 +1,39 @@
|
|
|
1
|
+
const require_casing = require('../utils/casing.cjs');
|
|
1
2
|
const require_invariant = require('../utils/invariant.cjs');
|
|
3
|
+
require('../utils/index.cjs');
|
|
4
|
+
const require_fields = require('./fields.cjs');
|
|
5
|
+
const require_steps = require('./steps.cjs');
|
|
6
|
+
const require_helpers = require('../utils/helpers.cjs');
|
|
2
7
|
const require_utils = require('./utils.cjs');
|
|
3
|
-
const require_casing = require('../utils/casing.cjs');
|
|
4
|
-
const require_field_types = require('../utils/field-types.cjs');
|
|
5
|
-
const require_utils$1 = require('../internals/utils.cjs');
|
|
6
8
|
const require_step_schema = require('../internals/step-schema.cjs');
|
|
7
9
|
const require_storage = require('../storage.cjs');
|
|
8
10
|
const require_subscribable = require('../subscribable.cjs');
|
|
9
|
-
const require_fields = require('./fields.cjs');
|
|
10
11
|
|
|
11
12
|
//#region src/steps/schema.ts
|
|
13
|
+
const STRING_KEYS = ["string", "string.keys"];
|
|
14
|
+
const NUMBER_KEYS = ["number"];
|
|
15
|
+
const ARRAY_STRING_KEYS = require_helpers.addToTuple(require_helpers.mapToTuple(STRING_KEYS, (key) => `array.${key}`), "array.string.untyped");
|
|
16
|
+
const ARRAY_NUMBER_KEYS = require_helpers.mapToTuple(NUMBER_KEYS, (key) => `array.${key}`);
|
|
12
17
|
/**
|
|
13
18
|
* Available transformation types for the step numbers.
|
|
14
19
|
*/
|
|
15
20
|
const AS_TYPES = [
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
21
|
+
...STRING_KEYS,
|
|
22
|
+
...NUMBER_KEYS,
|
|
23
|
+
...ARRAY_STRING_KEYS,
|
|
24
|
+
...ARRAY_NUMBER_KEYS
|
|
20
25
|
];
|
|
21
|
-
function
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
if (
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
function createIsValidStepFn(stepNumbers) {
|
|
27
|
+
function isValidStep(value) {
|
|
28
|
+
require_invariant.createInvariant("[isValidStep]")(typeof value === "string" || typeof value === "number", `The value must be a string or a number, was ${typeof value}`);
|
|
29
|
+
if (typeof value === "string") {
|
|
30
|
+
if (!value.includes("step")) return false;
|
|
31
|
+
return stepNumbers.includes(Number.parseInt(value.replace("step", "")));
|
|
32
|
+
}
|
|
33
|
+
if (typeof value === "number") return stepNumbers.includes(value);
|
|
34
|
+
return false;
|
|
28
35
|
}
|
|
29
|
-
return
|
|
36
|
+
return isValidStep;
|
|
30
37
|
}
|
|
31
38
|
var MultiStepFormStepSchema = class extends require_subscribable.Subscribable {
|
|
32
39
|
/**
|
|
@@ -39,45 +46,43 @@ var MultiStepFormStepSchema = class extends require_subscribable.Subscribable {
|
|
|
39
46
|
value;
|
|
40
47
|
steps;
|
|
41
48
|
defaultNameTransformationCasing;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
stepNumbers;
|
|
45
|
-
storage;
|
|
49
|
+
#stepNumbers;
|
|
50
|
+
#storage;
|
|
46
51
|
#internal;
|
|
47
52
|
constructor(config) {
|
|
48
53
|
super();
|
|
49
|
-
const { steps, nameTransformCasing, storage } = config;
|
|
54
|
+
const { steps: steps$1, nameTransformCasing, storage } = config;
|
|
50
55
|
this.defaultNameTransformationCasing = require_casing.setCasingType(nameTransformCasing);
|
|
51
|
-
this.original = steps;
|
|
52
|
-
this.value =
|
|
53
|
-
this.storage = new require_storage.MultiStepFormStorage({
|
|
54
|
-
data: this.value,
|
|
55
|
-
key: storage?.key ?? require_storage.DEFAULT_STORAGE_KEY,
|
|
56
|
-
store: storage?.store,
|
|
57
|
-
throwWhenUndefined: storage?.throwWhenUndefined ?? false
|
|
58
|
-
});
|
|
56
|
+
this.original = steps$1;
|
|
57
|
+
this.value = require_steps.instantiateSteps({ steps: steps$1 });
|
|
59
58
|
this.#internal = new require_step_schema.MultiStepFormStepSchemaInternal({
|
|
60
59
|
originalValue: this.original,
|
|
61
60
|
getValue: () => this.value,
|
|
62
61
|
setValue: (next) => this.handlePostUpdate(next)
|
|
63
62
|
});
|
|
64
63
|
this.value = this.#internal.enrichValues(this.value);
|
|
65
|
-
this
|
|
66
|
-
|
|
67
|
-
|
|
64
|
+
this.#storage = new require_storage.MultiStepFormStorage({
|
|
65
|
+
data: this.value,
|
|
66
|
+
key: storage?.key ?? require_storage.DEFAULT_STORAGE_KEY,
|
|
67
|
+
store: storage?.store,
|
|
68
|
+
throwWhenUndefined: storage?.throwWhenUndefined
|
|
69
|
+
});
|
|
70
|
+
this.#stepNumbers = Object.keys(this.value).map((key) => Number.parseInt(key.replace("step", "")));
|
|
68
71
|
this.steps = {
|
|
69
|
-
|
|
70
|
-
last: this.lastStep.step,
|
|
71
|
-
value: this.stepNumbers,
|
|
72
|
+
value: this.#stepNumbers,
|
|
72
73
|
as: (asType) => {
|
|
73
74
|
require_invariant.invariant(typeof asType === "string", `The type of the target transformation type must be a string, was ${typeof asType}`);
|
|
74
|
-
if (asType === "string") return this
|
|
75
|
-
if (asType === "
|
|
76
|
-
if (asType
|
|
75
|
+
if (asType === "string") return this.#stepNumbers.map((value) => `'${value}'`).join(" | ");
|
|
76
|
+
if (asType === "string.keys") return this.#stepNumbers.map((value) => `'step${value}'`).join(" | ");
|
|
77
|
+
if (asType === "number") return this.#stepNumbers.join(" | ");
|
|
78
|
+
if (asType.includes("array.string")) {
|
|
79
|
+
if (asType.includes("keys")) return this.#stepNumbers.map((value) => `step${value}`);
|
|
80
|
+
return this.#stepNumbers.map((value) => `${value}`);
|
|
81
|
+
}
|
|
82
|
+
if (asType.includes("array.number")) return this.#stepNumbers;
|
|
77
83
|
throw new Error(`Transformation type "${asType}" is not supported. Available transformations include: ${AS_TYPES.map((value) => `"${value}"`).join(", ")}`);
|
|
78
84
|
},
|
|
79
|
-
|
|
80
|
-
isValidStepKey: (value) => require_utils$1.isValidStepKey(this.value, value)
|
|
85
|
+
isValidStep: createIsValidStepFn(this.#stepNumbers)
|
|
81
86
|
};
|
|
82
87
|
this.sync();
|
|
83
88
|
}
|
|
@@ -85,7 +90,7 @@ var MultiStepFormStepSchema = class extends require_subscribable.Subscribable {
|
|
|
85
90
|
* @internal
|
|
86
91
|
*/
|
|
87
92
|
__getStorage() {
|
|
88
|
-
return this
|
|
93
|
+
return this.#storage;
|
|
89
94
|
}
|
|
90
95
|
getSnapshot() {
|
|
91
96
|
return this;
|
|
@@ -113,28 +118,17 @@ var MultiStepFormStepSchema = class extends require_subscribable.Subscribable {
|
|
|
113
118
|
get(options) {
|
|
114
119
|
return require_utils.getStep(this.value)(options);
|
|
115
120
|
}
|
|
116
|
-
/**
|
|
117
|
-
* Gets the data for the first step.
|
|
118
|
-
* @returns The data for the first step.
|
|
119
|
-
*/
|
|
120
|
-
first() {
|
|
121
|
-
const firstStep = Math.min(...this.stepNumbers);
|
|
122
|
-
return this.get({ step: firstStep });
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Gets the data for the last step.
|
|
126
|
-
* @returns The data for the last step.
|
|
127
|
-
*/
|
|
128
|
-
last() {
|
|
129
|
-
const lastStep = Math.max(...this.stepNumbers);
|
|
130
|
-
return this.get({ step: lastStep });
|
|
131
|
-
}
|
|
132
121
|
handlePostUpdate(next) {
|
|
133
122
|
this.value = { ...next };
|
|
134
123
|
this.__getStorage().add(this.value);
|
|
135
124
|
this.sync();
|
|
136
125
|
this.notify();
|
|
137
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Updates the step with the given options.
|
|
129
|
+
* @param options The options for updating the step.
|
|
130
|
+
* @returns The return value of the updater function.
|
|
131
|
+
*/
|
|
138
132
|
update(options) {
|
|
139
133
|
this.#internal.update(options);
|
|
140
134
|
}
|
|
@@ -149,29 +143,8 @@ var MultiStepFormStepSchema = class extends require_subscribable.Subscribable {
|
|
|
149
143
|
* Validates that a given object is the proper shape for step data.
|
|
150
144
|
* @param value
|
|
151
145
|
*/
|
|
152
|
-
static hasData(value
|
|
153
|
-
|
|
154
|
-
return assertObjectFields(value, {
|
|
155
|
-
title: (v) => typeof v === "string",
|
|
156
|
-
fields: (v) => {
|
|
157
|
-
if (v === null || typeof v !== "object") return false;
|
|
158
|
-
for (const key of Object.keys(v)) {
|
|
159
|
-
if (typeof key !== "string" || !(key in v)) return false;
|
|
160
|
-
const current = v[key];
|
|
161
|
-
if (current === null || typeof current !== "object") return false;
|
|
162
|
-
if (!assertObjectFields(current, {
|
|
163
|
-
defaultValue: (v$1) => v$1 !== "undefined" && v$1 !== null,
|
|
164
|
-
label: (v$1) => typeof v$1 === "string" || typeof v$1 === "boolean" && !v$1,
|
|
165
|
-
nameTransformCasing: require_casing.isCasingValid,
|
|
166
|
-
type: require_field_types.isFieldType
|
|
167
|
-
})) return false;
|
|
168
|
-
}
|
|
169
|
-
return true;
|
|
170
|
-
},
|
|
171
|
-
createHelperFn: (v) => typeof v === "function",
|
|
172
|
-
nameTransformCasing: require_casing.isCasingValid,
|
|
173
|
-
...options?.optionalKeysToCheck
|
|
174
|
-
});
|
|
146
|
+
static hasData(value) {
|
|
147
|
+
return require_steps.steps.isValidSteps(value);
|
|
175
148
|
}
|
|
176
149
|
/**
|
|
177
150
|
* Gets the value of a given field for a given step.
|
|
@@ -181,14 +154,18 @@ var MultiStepFormStepSchema = class extends require_subscribable.Subscribable {
|
|
|
181
154
|
*/
|
|
182
155
|
getValue(step, field) {
|
|
183
156
|
const stepData = this.value[step];
|
|
157
|
+
const invariant$1 = require_invariant.createInvariant("[getValue]");
|
|
184
158
|
const baseErrorMessage = `Unable to get the value for "${String(step)}.fields.${String(field)}"`;
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
159
|
+
const errorSuffix = "This shouldn't be the case, so please open an issue";
|
|
160
|
+
const createErrorMessage = (reason) => `${baseErrorMessage} because ${reason}. ${errorSuffix}`;
|
|
161
|
+
invariant$1(typeof stepData === "object" && stepData !== null, createErrorMessage("the step data is not an object"));
|
|
162
|
+
invariant$1("fields" in stepData, createErrorMessage("the step data does not have a \"fields\" property"));
|
|
163
|
+
invariant$1(typeof stepData.fields === "object", createErrorMessage("\"fields\" is not an object"));
|
|
164
|
+
return require_fields.fields.resolvedDeepPath(field, stepData.fields);
|
|
189
165
|
}
|
|
190
166
|
};
|
|
191
167
|
|
|
192
168
|
//#endregion
|
|
193
169
|
exports.MultiStepFormStepSchema = MultiStepFormStepSchema;
|
|
170
|
+
exports.createIsValidStepFn = createIsValidStepFn;
|
|
194
171
|
//# sourceMappingURL=schema.cjs.map
|