cogsbox-state 0.5.478 → 0.5.479
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/CogsState.d.ts +65 -100
- package/dist/CogsState.d.ts.map +1 -1
- package/dist/CogsState.js +12 -15
- package/dist/CogsState.js.map +1 -1
- package/dist/PluginRunner.js.map +1 -1
- package/dist/plugins.d.ts +24 -1431
- package/dist/plugins.d.ts.map +1 -1
- package/dist/plugins.js +147 -98
- package/dist/plugins.js.map +1 -1
- package/package.json +1 -1
- package/src/CogsState.tsx +152 -65
- package/src/PluginRunner.tsx +1 -1
- package/src/plugins.ts +544 -140
package/src/plugins.ts
CHANGED
|
@@ -259,10 +259,11 @@ export type CogsPlugin<
|
|
|
259
259
|
TPluginMetaData,
|
|
260
260
|
TFieldMetaData,
|
|
261
261
|
TChainMethods extends ChainMethodDefinitions = {},
|
|
262
|
+
TInitialState extends Record<string, unknown> = {},
|
|
262
263
|
> = {
|
|
263
264
|
name: TName;
|
|
264
265
|
|
|
265
|
-
initialState?: () =>
|
|
266
|
+
initialState?: () => TInitialState;
|
|
266
267
|
|
|
267
268
|
useHook?: (
|
|
268
269
|
params: UseHookParams<TOptions, TPluginMetaData, TFieldMetaData, any>
|
|
@@ -541,151 +542,407 @@ const createMethodsBuilderParams = (): MethodsBuilderParams => {
|
|
|
541
542
|
field: createMethodDefinition('any'),
|
|
542
543
|
};
|
|
543
544
|
};
|
|
545
|
+
// --- EXTRACTED BUILDER TYPES (Solves TS7056 Serialization Error) ---
|
|
546
|
+
|
|
547
|
+
export type PluginTransformFn<
|
|
548
|
+
TOptions,
|
|
549
|
+
THookReturn,
|
|
550
|
+
TPluginMetaData,
|
|
551
|
+
TFieldMetaData,
|
|
552
|
+
> = (
|
|
553
|
+
params: TransformStateParams<
|
|
554
|
+
TOptions,
|
|
555
|
+
THookReturn,
|
|
556
|
+
TPluginMetaData,
|
|
557
|
+
TFieldMetaData,
|
|
558
|
+
any
|
|
559
|
+
>
|
|
560
|
+
) => void;
|
|
561
|
+
|
|
562
|
+
export type PluginUpdateFn<
|
|
563
|
+
TOptions,
|
|
564
|
+
THookReturn,
|
|
565
|
+
TPluginMetaData,
|
|
566
|
+
TFieldMetaData,
|
|
567
|
+
> = (
|
|
568
|
+
params: OnUpdateParams<
|
|
569
|
+
TOptions,
|
|
570
|
+
THookReturn,
|
|
571
|
+
TPluginMetaData,
|
|
572
|
+
TFieldMetaData,
|
|
573
|
+
any
|
|
574
|
+
>
|
|
575
|
+
) => void;
|
|
576
|
+
|
|
577
|
+
export type PluginFormUpdateFn<
|
|
578
|
+
TOptions,
|
|
579
|
+
THookReturn,
|
|
580
|
+
TPluginMetaData,
|
|
581
|
+
TFieldMetaData,
|
|
582
|
+
> = (
|
|
583
|
+
params: OnFormUpdateParams<
|
|
584
|
+
TOptions,
|
|
585
|
+
THookReturn,
|
|
586
|
+
TPluginMetaData,
|
|
587
|
+
TFieldMetaData,
|
|
588
|
+
any
|
|
589
|
+
>
|
|
590
|
+
) => void;
|
|
591
|
+
|
|
592
|
+
export type PluginFormWrapperFn<
|
|
593
|
+
TOptions,
|
|
594
|
+
THookReturn,
|
|
595
|
+
TPluginMetaData,
|
|
596
|
+
TFieldMetaData,
|
|
597
|
+
> = (
|
|
598
|
+
params: FormWrapperParams<
|
|
599
|
+
TOptions,
|
|
600
|
+
THookReturn,
|
|
601
|
+
TPluginMetaData,
|
|
602
|
+
TFieldMetaData,
|
|
603
|
+
any
|
|
604
|
+
>
|
|
605
|
+
) => React.ReactNode;
|
|
606
|
+
|
|
607
|
+
export type CogsPluginBuilder<
|
|
608
|
+
TName extends string,
|
|
609
|
+
TOptions,
|
|
610
|
+
TPluginMetaData,
|
|
611
|
+
TFieldMetaData,
|
|
612
|
+
THookReturn,
|
|
613
|
+
TChainMethods extends ChainMethodDefinitions,
|
|
614
|
+
HasTransform extends boolean,
|
|
615
|
+
HasUpdate extends boolean,
|
|
616
|
+
HasFormUpdate extends boolean,
|
|
617
|
+
HasMethods extends boolean,
|
|
618
|
+
HasWrapper extends boolean,
|
|
619
|
+
HasInitialState extends boolean,
|
|
620
|
+
TInitialState extends Record<string, unknown> = {},
|
|
621
|
+
> = Prettify<
|
|
622
|
+
CogsPlugin<
|
|
623
|
+
TName,
|
|
624
|
+
TOptions,
|
|
625
|
+
THookReturn,
|
|
626
|
+
TPluginMetaData,
|
|
627
|
+
TFieldMetaData,
|
|
628
|
+
TChainMethods,
|
|
629
|
+
TInitialState
|
|
630
|
+
>
|
|
631
|
+
> &
|
|
632
|
+
(HasTransform extends true
|
|
633
|
+
? {}
|
|
634
|
+
: {
|
|
635
|
+
transformState(
|
|
636
|
+
fn: PluginTransformFn<
|
|
637
|
+
TOptions,
|
|
638
|
+
THookReturn,
|
|
639
|
+
TPluginMetaData,
|
|
640
|
+
TFieldMetaData
|
|
641
|
+
>
|
|
642
|
+
): CogsPluginBuilder<
|
|
643
|
+
TName,
|
|
644
|
+
TOptions,
|
|
645
|
+
TPluginMetaData,
|
|
646
|
+
TFieldMetaData,
|
|
647
|
+
THookReturn,
|
|
648
|
+
TChainMethods,
|
|
649
|
+
true,
|
|
650
|
+
HasUpdate,
|
|
651
|
+
HasFormUpdate,
|
|
652
|
+
HasMethods,
|
|
653
|
+
HasWrapper,
|
|
654
|
+
HasInitialState,
|
|
655
|
+
TInitialState
|
|
656
|
+
>;
|
|
657
|
+
}) &
|
|
658
|
+
(HasUpdate extends true
|
|
659
|
+
? {}
|
|
660
|
+
: {
|
|
661
|
+
onUpdate(
|
|
662
|
+
fn: PluginUpdateFn<
|
|
663
|
+
TOptions,
|
|
664
|
+
THookReturn,
|
|
665
|
+
TPluginMetaData,
|
|
666
|
+
TFieldMetaData
|
|
667
|
+
>
|
|
668
|
+
): CogsPluginBuilder<
|
|
669
|
+
TName,
|
|
670
|
+
TOptions,
|
|
671
|
+
TPluginMetaData,
|
|
672
|
+
TFieldMetaData,
|
|
673
|
+
THookReturn,
|
|
674
|
+
TChainMethods,
|
|
675
|
+
HasTransform,
|
|
676
|
+
true,
|
|
677
|
+
HasFormUpdate,
|
|
678
|
+
HasMethods,
|
|
679
|
+
HasWrapper,
|
|
680
|
+
HasInitialState,
|
|
681
|
+
TInitialState
|
|
682
|
+
>;
|
|
683
|
+
}) &
|
|
684
|
+
(HasFormUpdate extends true
|
|
685
|
+
? {}
|
|
686
|
+
: {
|
|
687
|
+
onFormUpdate(
|
|
688
|
+
fn: PluginFormUpdateFn<
|
|
689
|
+
TOptions,
|
|
690
|
+
THookReturn,
|
|
691
|
+
TPluginMetaData,
|
|
692
|
+
TFieldMetaData
|
|
693
|
+
>
|
|
694
|
+
): CogsPluginBuilder<
|
|
695
|
+
TName,
|
|
696
|
+
TOptions,
|
|
697
|
+
TPluginMetaData,
|
|
698
|
+
TFieldMetaData,
|
|
699
|
+
THookReturn,
|
|
700
|
+
TChainMethods,
|
|
701
|
+
HasTransform,
|
|
702
|
+
HasUpdate,
|
|
703
|
+
true,
|
|
704
|
+
HasMethods,
|
|
705
|
+
HasWrapper,
|
|
706
|
+
HasInitialState,
|
|
707
|
+
TInitialState
|
|
708
|
+
>;
|
|
709
|
+
}) &
|
|
710
|
+
(HasMethods extends true
|
|
711
|
+
? {}
|
|
712
|
+
: {
|
|
713
|
+
methods<TNextMethods extends ChainMethodDefinitions>(
|
|
714
|
+
fn: (helpers: MethodsBuilderParams) => TNextMethods
|
|
715
|
+
): CogsPluginBuilder<
|
|
716
|
+
TName,
|
|
717
|
+
TOptions,
|
|
718
|
+
TPluginMetaData,
|
|
719
|
+
TFieldMetaData,
|
|
720
|
+
THookReturn,
|
|
721
|
+
TNextMethods,
|
|
722
|
+
HasTransform,
|
|
723
|
+
HasUpdate,
|
|
724
|
+
HasFormUpdate,
|
|
725
|
+
true,
|
|
726
|
+
HasWrapper,
|
|
727
|
+
HasInitialState,
|
|
728
|
+
TInitialState
|
|
729
|
+
>;
|
|
730
|
+
}) &
|
|
731
|
+
(HasWrapper extends true
|
|
732
|
+
? {}
|
|
733
|
+
: {
|
|
734
|
+
formWrapper(
|
|
735
|
+
fn: PluginFormWrapperFn<
|
|
736
|
+
TOptions,
|
|
737
|
+
THookReturn,
|
|
738
|
+
TPluginMetaData,
|
|
739
|
+
TFieldMetaData
|
|
740
|
+
>
|
|
741
|
+
): CogsPluginBuilder<
|
|
742
|
+
TName,
|
|
743
|
+
TOptions,
|
|
744
|
+
TPluginMetaData,
|
|
745
|
+
TFieldMetaData,
|
|
746
|
+
THookReturn,
|
|
747
|
+
TChainMethods,
|
|
748
|
+
HasTransform,
|
|
749
|
+
HasUpdate,
|
|
750
|
+
HasFormUpdate,
|
|
751
|
+
HasMethods,
|
|
752
|
+
true,
|
|
753
|
+
HasInitialState,
|
|
754
|
+
TInitialState
|
|
755
|
+
>;
|
|
756
|
+
}) &
|
|
757
|
+
(HasInitialState extends true
|
|
758
|
+
? {}
|
|
759
|
+
: {
|
|
760
|
+
initialState<TNewState extends Record<string, unknown>>(
|
|
761
|
+
fn: () => TNewState
|
|
762
|
+
): CogsPluginBuilder<
|
|
763
|
+
TName,
|
|
764
|
+
TOptions,
|
|
765
|
+
TPluginMetaData,
|
|
766
|
+
TFieldMetaData,
|
|
767
|
+
THookReturn,
|
|
768
|
+
TChainMethods,
|
|
769
|
+
HasTransform,
|
|
770
|
+
HasUpdate,
|
|
771
|
+
HasFormUpdate,
|
|
772
|
+
HasMethods,
|
|
773
|
+
HasWrapper,
|
|
774
|
+
true,
|
|
775
|
+
TNewState
|
|
776
|
+
>;
|
|
777
|
+
});
|
|
778
|
+
|
|
779
|
+
export type CreatePluginStart<
|
|
780
|
+
TName extends string,
|
|
781
|
+
TOptions,
|
|
782
|
+
TPluginMetaData,
|
|
783
|
+
TFieldMetaData,
|
|
784
|
+
> = CogsPluginBuilder<
|
|
785
|
+
TName,
|
|
786
|
+
TOptions,
|
|
787
|
+
TPluginMetaData,
|
|
788
|
+
TFieldMetaData,
|
|
789
|
+
never,
|
|
790
|
+
{},
|
|
791
|
+
false,
|
|
792
|
+
false,
|
|
793
|
+
false,
|
|
794
|
+
false,
|
|
795
|
+
false,
|
|
796
|
+
false,
|
|
797
|
+
{}
|
|
798
|
+
> & {
|
|
799
|
+
useHook<THookReturn>(
|
|
800
|
+
hookFn: (
|
|
801
|
+
params: UseHookParams<TOptions, TPluginMetaData, TFieldMetaData, any>
|
|
802
|
+
) => THookReturn
|
|
803
|
+
): CogsPluginBuilder<
|
|
804
|
+
TName,
|
|
805
|
+
TOptions,
|
|
806
|
+
TPluginMetaData,
|
|
807
|
+
TFieldMetaData,
|
|
808
|
+
THookReturn,
|
|
809
|
+
{},
|
|
810
|
+
false,
|
|
811
|
+
false,
|
|
812
|
+
false,
|
|
813
|
+
false,
|
|
814
|
+
false,
|
|
815
|
+
false,
|
|
816
|
+
{}
|
|
817
|
+
>;
|
|
818
|
+
initialState<TNewState extends Record<string, unknown>>(
|
|
819
|
+
fn: () => TNewState
|
|
820
|
+
): CogsPluginBuilder<
|
|
821
|
+
TName,
|
|
822
|
+
TOptions,
|
|
823
|
+
TPluginMetaData,
|
|
824
|
+
TFieldMetaData,
|
|
825
|
+
never,
|
|
826
|
+
{},
|
|
827
|
+
false,
|
|
828
|
+
false,
|
|
829
|
+
false,
|
|
830
|
+
false,
|
|
831
|
+
false,
|
|
832
|
+
true,
|
|
833
|
+
TNewState
|
|
834
|
+
>;
|
|
835
|
+
};
|
|
836
|
+
|
|
837
|
+
// --- UPDATED EXPLICIT CONTEXT ---
|
|
544
838
|
|
|
545
839
|
export function createPluginContext<
|
|
546
840
|
O extends z.ZodTypeAny | undefined = undefined,
|
|
547
841
|
PM extends z.ZodTypeAny | undefined = undefined,
|
|
548
842
|
FM extends z.ZodTypeAny | undefined = undefined,
|
|
549
|
-
>(schemas?: {
|
|
550
|
-
|
|
843
|
+
>(schemas?: {
|
|
844
|
+
options?: O;
|
|
845
|
+
pluginMetaData?: PM;
|
|
846
|
+
fieldMetaData?: FM;
|
|
847
|
+
}): {
|
|
848
|
+
// EXPLICIT RETURN ANNOTATION STOPS TS FROM SERIALIZING
|
|
849
|
+
createPlugin: <TName extends string>(
|
|
850
|
+
name: TName
|
|
851
|
+
) => CreatePluginStart<
|
|
852
|
+
TName,
|
|
853
|
+
O extends z.ZodTypeAny ? OutputOf<O> : undefined,
|
|
854
|
+
PM extends z.ZodTypeAny ? OutputOf<PM> : unknown,
|
|
855
|
+
FM extends z.ZodTypeAny ? OutputOf<FM> : unknown
|
|
856
|
+
>;
|
|
857
|
+
} {
|
|
551
858
|
type Options = O extends z.ZodTypeAny ? OutputOf<O> : undefined;
|
|
552
859
|
type PluginMetaData = PM extends z.ZodTypeAny ? OutputOf<PM> : unknown;
|
|
553
860
|
type FieldMetaData = FM extends z.ZodTypeAny ? OutputOf<FM> : unknown;
|
|
554
861
|
|
|
555
862
|
function createPlugin<TName extends string>(name: TName) {
|
|
556
|
-
type
|
|
557
|
-
|
|
863
|
+
type Builder<
|
|
864
|
+
THookReturn,
|
|
865
|
+
TChainMethods extends ChainMethodDefinitions,
|
|
866
|
+
HT extends boolean,
|
|
867
|
+
HU extends boolean,
|
|
868
|
+
HFU extends boolean,
|
|
869
|
+
HM extends boolean,
|
|
870
|
+
HW extends boolean,
|
|
871
|
+
HI extends boolean,
|
|
872
|
+
TInitialState extends Record<string, unknown> = {},
|
|
873
|
+
> = CogsPluginBuilder<
|
|
874
|
+
TName,
|
|
875
|
+
Options,
|
|
876
|
+
PluginMetaData,
|
|
877
|
+
FieldMetaData,
|
|
878
|
+
THookReturn,
|
|
879
|
+
TChainMethods,
|
|
880
|
+
HT,
|
|
881
|
+
HU,
|
|
882
|
+
HFU,
|
|
883
|
+
HM,
|
|
884
|
+
HW,
|
|
885
|
+
HI,
|
|
886
|
+
TInitialState
|
|
887
|
+
>;
|
|
888
|
+
|
|
889
|
+
const createPluginObject = <
|
|
890
|
+
THookReturn = never,
|
|
891
|
+
TChainMethods extends ChainMethodDefinitions = {},
|
|
892
|
+
TInitialState extends Record<string, unknown> = {},
|
|
893
|
+
>(
|
|
894
|
+
hookFn?: (
|
|
895
|
+
params: UseHookParams<Options, PluginMetaData, FieldMetaData, any>
|
|
896
|
+
) => THookReturn,
|
|
897
|
+
transformFn?: PluginTransformFn<
|
|
558
898
|
Options,
|
|
559
899
|
THookReturn,
|
|
560
900
|
PluginMetaData,
|
|
561
901
|
FieldMetaData
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
type UpdateFn<THookReturn> = (
|
|
566
|
-
params: OnUpdateParams<
|
|
902
|
+
>,
|
|
903
|
+
updateHandler?: PluginUpdateFn<
|
|
567
904
|
Options,
|
|
568
905
|
THookReturn,
|
|
569
906
|
PluginMetaData,
|
|
570
907
|
FieldMetaData
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
908
|
+
>,
|
|
909
|
+
formUpdateHandler?: PluginFormUpdateFn<
|
|
910
|
+
Options,
|
|
911
|
+
THookReturn,
|
|
912
|
+
PluginMetaData,
|
|
913
|
+
FieldMetaData
|
|
914
|
+
>,
|
|
915
|
+
chainMethods?: TChainMethods,
|
|
916
|
+
initialStateFn?: () => TInitialState,
|
|
917
|
+
wrapperFn?: PluginFormWrapperFn<
|
|
576
918
|
Options,
|
|
577
919
|
THookReturn,
|
|
578
920
|
PluginMetaData,
|
|
579
921
|
FieldMetaData
|
|
580
922
|
>
|
|
581
|
-
)
|
|
582
|
-
|
|
583
|
-
type Plugin<
|
|
584
|
-
THookReturn,
|
|
585
|
-
TChainMethods extends ChainMethodDefinitions = {},
|
|
586
|
-
> = Prettify<
|
|
923
|
+
): Prettify<
|
|
587
924
|
CogsPlugin<
|
|
588
925
|
TName,
|
|
589
926
|
Options,
|
|
590
927
|
THookReturn,
|
|
591
928
|
PluginMetaData,
|
|
592
929
|
FieldMetaData,
|
|
593
|
-
TChainMethods
|
|
930
|
+
TChainMethods,
|
|
931
|
+
TInitialState
|
|
594
932
|
>
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
const createPluginObject = <
|
|
598
|
-
THookReturn = never,
|
|
599
|
-
TChainMethods extends ChainMethodDefinitions = {},
|
|
600
|
-
>(
|
|
601
|
-
hookFn?: (
|
|
602
|
-
params: UseHookParams<Options, PluginMetaData, FieldMetaData>
|
|
603
|
-
) => THookReturn,
|
|
604
|
-
transformFn?: TransformFn<THookReturn>,
|
|
605
|
-
updateHandler?: UpdateFn<THookReturn>,
|
|
606
|
-
formUpdateHandler?: FormUpdateFn<THookReturn>,
|
|
607
|
-
chainMethods?: TChainMethods
|
|
608
|
-
): Plugin<THookReturn, TChainMethods> => {
|
|
933
|
+
> => {
|
|
609
934
|
return {
|
|
610
935
|
name,
|
|
936
|
+
initialState: initialStateFn,
|
|
611
937
|
useHook: hookFn as any,
|
|
612
938
|
transformState: transformFn as any,
|
|
613
939
|
onUpdate: updateHandler as any,
|
|
614
940
|
onFormUpdate: formUpdateHandler as any,
|
|
941
|
+
formWrapper: wrapperFn as any,
|
|
615
942
|
chainMethods,
|
|
616
943
|
};
|
|
617
944
|
};
|
|
618
945
|
|
|
619
|
-
type BuildRet<
|
|
620
|
-
THookReturn,
|
|
621
|
-
TChainMethods extends ChainMethodDefinitions,
|
|
622
|
-
HasTransform extends boolean,
|
|
623
|
-
HasUpdate extends boolean,
|
|
624
|
-
HasFormUpdate extends boolean,
|
|
625
|
-
HasMethods extends boolean,
|
|
626
|
-
HasWrapper extends boolean,
|
|
627
|
-
> = Plugin<THookReturn, TChainMethods> &
|
|
628
|
-
(HasTransform extends true
|
|
629
|
-
? {}
|
|
630
|
-
: {
|
|
631
|
-
transformState(
|
|
632
|
-
fn: TransformFn<THookReturn>
|
|
633
|
-
): BuildRet<
|
|
634
|
-
THookReturn,
|
|
635
|
-
TChainMethods,
|
|
636
|
-
true,
|
|
637
|
-
HasUpdate,
|
|
638
|
-
HasFormUpdate,
|
|
639
|
-
HasMethods,
|
|
640
|
-
HasWrapper
|
|
641
|
-
>;
|
|
642
|
-
}) &
|
|
643
|
-
(HasUpdate extends true
|
|
644
|
-
? {}
|
|
645
|
-
: {
|
|
646
|
-
onUpdate(
|
|
647
|
-
fn: UpdateFn<THookReturn>
|
|
648
|
-
): BuildRet<
|
|
649
|
-
THookReturn,
|
|
650
|
-
TChainMethods,
|
|
651
|
-
HasTransform,
|
|
652
|
-
true,
|
|
653
|
-
HasFormUpdate,
|
|
654
|
-
HasMethods,
|
|
655
|
-
HasWrapper
|
|
656
|
-
>;
|
|
657
|
-
}) &
|
|
658
|
-
(HasFormUpdate extends true
|
|
659
|
-
? {}
|
|
660
|
-
: {
|
|
661
|
-
onFormUpdate(
|
|
662
|
-
fn: FormUpdateFn<THookReturn>
|
|
663
|
-
): BuildRet<
|
|
664
|
-
THookReturn,
|
|
665
|
-
TChainMethods,
|
|
666
|
-
HasTransform,
|
|
667
|
-
HasUpdate,
|
|
668
|
-
true,
|
|
669
|
-
HasMethods,
|
|
670
|
-
HasWrapper
|
|
671
|
-
>;
|
|
672
|
-
}) &
|
|
673
|
-
(HasMethods extends true
|
|
674
|
-
? {}
|
|
675
|
-
: {
|
|
676
|
-
methods<TNextMethods extends ChainMethodDefinitions>(
|
|
677
|
-
fn: (helpers: MethodsBuilderParams) => TNextMethods
|
|
678
|
-
): BuildRet<
|
|
679
|
-
THookReturn,
|
|
680
|
-
TNextMethods,
|
|
681
|
-
HasTransform,
|
|
682
|
-
HasUpdate,
|
|
683
|
-
HasFormUpdate,
|
|
684
|
-
true,
|
|
685
|
-
HasWrapper
|
|
686
|
-
>;
|
|
687
|
-
});
|
|
688
|
-
|
|
689
946
|
function createBuilder<
|
|
690
947
|
THookReturn = never,
|
|
691
948
|
TChainMethods extends ChainMethodDefinitions = {},
|
|
@@ -694,45 +951,82 @@ export function createPluginContext<
|
|
|
694
951
|
HasFormUpdate extends boolean = false,
|
|
695
952
|
HasMethods extends boolean = false,
|
|
696
953
|
HasWrapper extends boolean = false,
|
|
954
|
+
HasInitialState extends boolean = false,
|
|
955
|
+
TInitialState extends Record<string, unknown> = {},
|
|
697
956
|
>(
|
|
698
957
|
hookFn?: (
|
|
699
|
-
params: UseHookParams<Options, PluginMetaData, FieldMetaData>
|
|
958
|
+
params: UseHookParams<Options, PluginMetaData, FieldMetaData, any>
|
|
700
959
|
) => THookReturn,
|
|
701
|
-
transformFn?:
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
960
|
+
transformFn?: PluginTransformFn<
|
|
961
|
+
Options,
|
|
962
|
+
THookReturn,
|
|
963
|
+
PluginMetaData,
|
|
964
|
+
FieldMetaData
|
|
965
|
+
>,
|
|
966
|
+
updateHandler?: PluginUpdateFn<
|
|
967
|
+
Options,
|
|
968
|
+
THookReturn,
|
|
969
|
+
PluginMetaData,
|
|
970
|
+
FieldMetaData
|
|
971
|
+
>,
|
|
972
|
+
formUpdateHandler?: PluginFormUpdateFn<
|
|
973
|
+
Options,
|
|
974
|
+
THookReturn,
|
|
975
|
+
PluginMetaData,
|
|
976
|
+
FieldMetaData
|
|
977
|
+
>,
|
|
978
|
+
chainMethods?: TChainMethods,
|
|
979
|
+
initialStateFn?: () => TInitialState,
|
|
980
|
+
wrapperFn?: PluginFormWrapperFn<
|
|
981
|
+
Options,
|
|
982
|
+
THookReturn,
|
|
983
|
+
PluginMetaData,
|
|
984
|
+
FieldMetaData
|
|
985
|
+
>
|
|
986
|
+
): Builder<
|
|
706
987
|
THookReturn,
|
|
707
988
|
TChainMethods,
|
|
708
989
|
HasTransform,
|
|
709
990
|
HasUpdate,
|
|
710
991
|
HasFormUpdate,
|
|
711
992
|
HasMethods,
|
|
712
|
-
HasWrapper
|
|
993
|
+
HasWrapper,
|
|
994
|
+
HasInitialState,
|
|
995
|
+
TInitialState
|
|
713
996
|
> {
|
|
714
|
-
const plugin = createPluginObject<THookReturn, TChainMethods>(
|
|
997
|
+
const plugin = createPluginObject<THookReturn, TChainMethods, TInitialState>(
|
|
715
998
|
hookFn,
|
|
716
999
|
transformFn,
|
|
717
1000
|
updateHandler,
|
|
718
1001
|
formUpdateHandler,
|
|
719
|
-
chainMethods
|
|
1002
|
+
chainMethods,
|
|
1003
|
+
initialStateFn,
|
|
1004
|
+
wrapperFn
|
|
720
1005
|
);
|
|
721
1006
|
|
|
722
1007
|
const methods = {} as Partial<
|
|
723
|
-
|
|
1008
|
+
Builder<
|
|
724
1009
|
THookReturn,
|
|
725
1010
|
TChainMethods,
|
|
726
1011
|
HasTransform,
|
|
727
1012
|
HasUpdate,
|
|
728
1013
|
HasFormUpdate,
|
|
729
1014
|
HasMethods,
|
|
730
|
-
HasWrapper
|
|
1015
|
+
HasWrapper,
|
|
1016
|
+
HasInitialState,
|
|
1017
|
+
TInitialState
|
|
731
1018
|
>
|
|
732
1019
|
>;
|
|
733
1020
|
|
|
734
1021
|
if (!transformFn) {
|
|
735
|
-
(methods as any).transformState = (
|
|
1022
|
+
(methods as any).transformState = (
|
|
1023
|
+
fn: PluginTransformFn<
|
|
1024
|
+
Options,
|
|
1025
|
+
THookReturn,
|
|
1026
|
+
PluginMetaData,
|
|
1027
|
+
FieldMetaData
|
|
1028
|
+
>
|
|
1029
|
+
) =>
|
|
736
1030
|
createBuilder<
|
|
737
1031
|
THookReturn,
|
|
738
1032
|
TChainMethods,
|
|
@@ -740,11 +1034,28 @@ export function createPluginContext<
|
|
|
740
1034
|
HasUpdate,
|
|
741
1035
|
HasFormUpdate,
|
|
742
1036
|
HasMethods,
|
|
743
|
-
HasWrapper
|
|
744
|
-
|
|
1037
|
+
HasWrapper,
|
|
1038
|
+
HasInitialState,
|
|
1039
|
+
TInitialState
|
|
1040
|
+
>(
|
|
1041
|
+
hookFn,
|
|
1042
|
+
fn,
|
|
1043
|
+
updateHandler,
|
|
1044
|
+
formUpdateHandler,
|
|
1045
|
+
chainMethods,
|
|
1046
|
+
initialStateFn,
|
|
1047
|
+
wrapperFn
|
|
1048
|
+
);
|
|
745
1049
|
}
|
|
746
1050
|
if (!updateHandler) {
|
|
747
|
-
(methods as any).onUpdate = (
|
|
1051
|
+
(methods as any).onUpdate = (
|
|
1052
|
+
fn: PluginUpdateFn<
|
|
1053
|
+
Options,
|
|
1054
|
+
THookReturn,
|
|
1055
|
+
PluginMetaData,
|
|
1056
|
+
FieldMetaData
|
|
1057
|
+
>
|
|
1058
|
+
) =>
|
|
748
1059
|
createBuilder<
|
|
749
1060
|
THookReturn,
|
|
750
1061
|
TChainMethods,
|
|
@@ -752,11 +1063,28 @@ export function createPluginContext<
|
|
|
752
1063
|
true,
|
|
753
1064
|
HasFormUpdate,
|
|
754
1065
|
HasMethods,
|
|
755
|
-
HasWrapper
|
|
756
|
-
|
|
1066
|
+
HasWrapper,
|
|
1067
|
+
HasInitialState,
|
|
1068
|
+
TInitialState
|
|
1069
|
+
>(
|
|
1070
|
+
hookFn,
|
|
1071
|
+
transformFn,
|
|
1072
|
+
fn,
|
|
1073
|
+
formUpdateHandler,
|
|
1074
|
+
chainMethods,
|
|
1075
|
+
initialStateFn,
|
|
1076
|
+
wrapperFn
|
|
1077
|
+
);
|
|
757
1078
|
}
|
|
758
1079
|
if (!formUpdateHandler) {
|
|
759
|
-
(methods as any).onFormUpdate = (
|
|
1080
|
+
(methods as any).onFormUpdate = (
|
|
1081
|
+
fn: PluginFormUpdateFn<
|
|
1082
|
+
Options,
|
|
1083
|
+
THookReturn,
|
|
1084
|
+
PluginMetaData,
|
|
1085
|
+
FieldMetaData
|
|
1086
|
+
>
|
|
1087
|
+
) =>
|
|
760
1088
|
createBuilder<
|
|
761
1089
|
THookReturn,
|
|
762
1090
|
TChainMethods,
|
|
@@ -764,8 +1092,18 @@ export function createPluginContext<
|
|
|
764
1092
|
HasUpdate,
|
|
765
1093
|
true,
|
|
766
1094
|
HasMethods,
|
|
767
|
-
HasWrapper
|
|
768
|
-
|
|
1095
|
+
HasWrapper,
|
|
1096
|
+
HasInitialState,
|
|
1097
|
+
TInitialState
|
|
1098
|
+
>(
|
|
1099
|
+
hookFn,
|
|
1100
|
+
transformFn,
|
|
1101
|
+
updateHandler,
|
|
1102
|
+
fn,
|
|
1103
|
+
chainMethods,
|
|
1104
|
+
initialStateFn,
|
|
1105
|
+
wrapperFn
|
|
1106
|
+
);
|
|
769
1107
|
}
|
|
770
1108
|
if (!chainMethods) {
|
|
771
1109
|
(methods as any).methods = <
|
|
@@ -780,33 +1118,90 @@ export function createPluginContext<
|
|
|
780
1118
|
HasUpdate,
|
|
781
1119
|
HasFormUpdate,
|
|
782
1120
|
true,
|
|
783
|
-
HasWrapper
|
|
1121
|
+
HasWrapper,
|
|
1122
|
+
HasInitialState,
|
|
1123
|
+
TInitialState
|
|
1124
|
+
>(
|
|
1125
|
+
hookFn,
|
|
1126
|
+
transformFn,
|
|
1127
|
+
updateHandler,
|
|
1128
|
+
formUpdateHandler,
|
|
1129
|
+
fn(createMethodsBuilderParams()),
|
|
1130
|
+
initialStateFn,
|
|
1131
|
+
wrapperFn
|
|
1132
|
+
);
|
|
1133
|
+
}
|
|
1134
|
+
if (!initialStateFn) {
|
|
1135
|
+
(methods as any).initialState = <TNewState extends Record<string, unknown>>(fn: () => TNewState) =>
|
|
1136
|
+
createBuilder<
|
|
1137
|
+
THookReturn,
|
|
1138
|
+
TChainMethods,
|
|
1139
|
+
HasTransform,
|
|
1140
|
+
HasUpdate,
|
|
1141
|
+
HasFormUpdate,
|
|
1142
|
+
HasMethods,
|
|
1143
|
+
HasWrapper,
|
|
1144
|
+
true,
|
|
1145
|
+
TNewState
|
|
784
1146
|
>(
|
|
785
1147
|
hookFn,
|
|
786
1148
|
transformFn,
|
|
787
1149
|
updateHandler,
|
|
788
1150
|
formUpdateHandler,
|
|
789
|
-
|
|
1151
|
+
chainMethods,
|
|
1152
|
+
fn,
|
|
1153
|
+
wrapperFn
|
|
1154
|
+
);
|
|
1155
|
+
}
|
|
1156
|
+
if (!wrapperFn) {
|
|
1157
|
+
(methods as any).formWrapper = (
|
|
1158
|
+
fn: PluginFormWrapperFn<
|
|
1159
|
+
Options,
|
|
1160
|
+
THookReturn,
|
|
1161
|
+
PluginMetaData,
|
|
1162
|
+
FieldMetaData
|
|
1163
|
+
>
|
|
1164
|
+
) =>
|
|
1165
|
+
createBuilder<
|
|
1166
|
+
THookReturn,
|
|
1167
|
+
TChainMethods,
|
|
1168
|
+
HasTransform,
|
|
1169
|
+
HasUpdate,
|
|
1170
|
+
HasFormUpdate,
|
|
1171
|
+
HasMethods,
|
|
1172
|
+
true,
|
|
1173
|
+
HasInitialState,
|
|
1174
|
+
TInitialState
|
|
1175
|
+
>(
|
|
1176
|
+
hookFn,
|
|
1177
|
+
transformFn,
|
|
1178
|
+
updateHandler,
|
|
1179
|
+
formUpdateHandler,
|
|
1180
|
+
chainMethods,
|
|
1181
|
+
initialStateFn,
|
|
1182
|
+
fn
|
|
790
1183
|
);
|
|
791
1184
|
}
|
|
792
1185
|
|
|
793
|
-
return Object.assign(plugin, methods) as
|
|
1186
|
+
return Object.assign(plugin, methods) as Builder<
|
|
794
1187
|
THookReturn,
|
|
795
1188
|
TChainMethods,
|
|
796
1189
|
HasTransform,
|
|
797
1190
|
HasUpdate,
|
|
798
1191
|
HasFormUpdate,
|
|
799
1192
|
HasMethods,
|
|
800
|
-
HasWrapper
|
|
1193
|
+
HasWrapper,
|
|
1194
|
+
HasInitialState,
|
|
1195
|
+
TInitialState
|
|
801
1196
|
>;
|
|
802
1197
|
}
|
|
803
1198
|
|
|
804
1199
|
const start = Object.assign(
|
|
805
|
-
createBuilder<never, {}, false, false, false, false, false>(),
|
|
1200
|
+
createBuilder<never, {}, false, false, false, false, false, false, {}>(),
|
|
806
1201
|
{
|
|
807
1202
|
useHook<THookReturn>(
|
|
808
1203
|
hookFn: (
|
|
809
|
-
params: UseHookParams<Options, PluginMetaData, FieldMetaData>
|
|
1204
|
+
params: UseHookParams<Options, PluginMetaData, FieldMetaData, any>
|
|
810
1205
|
) => THookReturn
|
|
811
1206
|
) {
|
|
812
1207
|
return createBuilder<
|
|
@@ -816,17 +1211,26 @@ export function createPluginContext<
|
|
|
816
1211
|
false,
|
|
817
1212
|
false,
|
|
818
1213
|
false,
|
|
819
|
-
false
|
|
1214
|
+
false,
|
|
1215
|
+
false,
|
|
1216
|
+
{}
|
|
820
1217
|
>(hookFn);
|
|
821
1218
|
},
|
|
1219
|
+
initialState<TNewState extends Record<string, unknown>>(fn: () => TNewState) {
|
|
1220
|
+
return createBuilder<
|
|
1221
|
+
never,
|
|
1222
|
+
{},
|
|
1223
|
+
false,
|
|
1224
|
+
false,
|
|
1225
|
+
false,
|
|
1226
|
+
false,
|
|
1227
|
+
false,
|
|
1228
|
+
true,
|
|
1229
|
+
TNewState
|
|
1230
|
+
>(undefined, undefined, undefined, undefined, undefined, fn);
|
|
1231
|
+
},
|
|
822
1232
|
}
|
|
823
|
-
) as
|
|
824
|
-
useHook<THookReturn>(
|
|
825
|
-
hookFn: (
|
|
826
|
-
params: UseHookParams<Options, PluginMetaData, FieldMetaData>
|
|
827
|
-
) => THookReturn
|
|
828
|
-
): BuildRet<THookReturn, {}, false, false, false, false, false>;
|
|
829
|
-
};
|
|
1233
|
+
) as CreatePluginStart<TName, Options, PluginMetaData, FieldMetaData>;
|
|
830
1234
|
|
|
831
1235
|
return start;
|
|
832
1236
|
}
|