@modular-component/core 0.1.5 → 0.1.7

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @modular-component/core
2
2
 
3
+ ## 0.1.7
4
+
5
+ ### Patch Changes
6
+
7
+ - 31f2966: Add before{Stage} stage methods
8
+
9
+ ## 0.1.6
10
+
11
+ ### Patch Changes
12
+
13
+ - 5b8bc33: Use transform value for stage validation when validate is not set
14
+
3
15
  ## 0.1.5
4
16
 
5
17
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,iBAAiB,EAAoB,MAAM,OAAO,CAAA;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AA+MlD,QAAA,MAAM,UAAU,eAAW,CAAA;AAE3B,OAAO,QAAQ,eAAe,CAAC;IAC7B,UAAiB,aAAa,CAAC,IAAI,EAAE,KAAK;QACxC,CAAC,UAAU,CAAC,EAAE;YACZ,QAAQ,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAA;YACjC,SAAS,EAAE,UAAU,CACnB,KAAK,SAAS,iBAAiB,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,CACtD,CAAA;SACF,CAAA;KACF;CACF;AAED,eAAO,MAAM,cAAc;;8EAhNL,MAAM;kBACF,OAAO;;;;;;;;wFAkLX,MAAM;;;;;;;;;;wFAnLN,MAAM;sBACF,OAAO;;;;;;;;;;;;;;4FAkLX,MAAM;;;;;;;;;;;;;;;;4FAnLN,MAAM;0BACF,OAAO;;;;;;;;;;;;;;gGAkLX,MAAM;;;;;;;;;;;;;;;;gGAnLN,MAAM;8BACF,OAAO;;;;;;;;;;;;;;oGAkLX,MAAM;;;;;;;;;;;;;;;;oGAnLN,MAAM;kCACF,OAAO;;;;;;;;;;;;;;wGAkLX,MAAM;;;;;;;;;;;;;;;;2GAnLN,MAAM;sCACF,OAAO;;;;;;;;;;;;;;+GAkLX,MAAM;;;;;;;;;;;;;;;;+GAnLN,MAAM;0CACF,OAAO;;;;;;;;;;;;;;mHAkLX,MAAM;;;;;;;;;;;;;;;;mHAnLN,MAAM;8CACF,OAAO;;;;;;;;;;;;;;uHAkLX,MAAM;;;;;;;;;;;;;;;;uHAnLN,MAAM;kDACF,OAAO;;;;;;;;;;;;;;2HAkLX,MAAM;;;;;;;;;;;;;;;;2HAnLN,MAAM;sDACF,OAAO;;;;;;;;;;;;;;+HAkLX,MAAM;;;;;;;;;;;;;;;;+HAnLN,MAAM;0DACF,OAAO;;;;;;;;;;;;;;mIAkLX,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;CAmCjB,CAAA;AAEX,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EACvE,MAAM,EAAE,CAAC,GACR,CAAC,CAEH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,iBAAiB,EAAoB,MAAM,OAAO,CAAA;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAgOlD,QAAA,MAAM,UAAU,eAAW,CAAA;AAE3B,OAAO,QAAQ,eAAe,CAAC;IAC7B,UAAiB,aAAa,CAAC,IAAI,EAAE,KAAK;QACxC,CAAC,UAAU,CAAC,EAAE;YACZ,QAAQ,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAA;YACjC,SAAS,EAAE,UAAU,CACnB,KAAK,SAAS,iBAAiB,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,CACtD,CAAA;SACF,CAAA;KACF;CACF;AAED,eAAO,MAAM,cAAc;;8EAjOL,MAAM;kBACF,OAAO;;;;;;;;wFAmMX,MAAM;;;;;;;;;;wFApMN,MAAM;sBACF,OAAO;;;;;;;;;;;;;;4FAmMX,MAAM;;;;;;;;;;;;;;;;4FApMN,MAAM;0BACF,OAAO;;;;;;;;;;;;;;gGAmMX,MAAM;;;;;;;;;;;;;;;;gGApMN,MAAM;8BACF,OAAO;;;;;;;;;;;;;;oGAmMX,MAAM;;;;;;;;;;;;;;;;oGApMN,MAAM;kCACF,OAAO;;;;;;;;;;;;;;wGAmMX,MAAM;;;;;;;;;;;;;;;;2GApMN,MAAM;sCACF,OAAO;;;;;;;;;;;;;;+GAmMX,MAAM;;;;;;;;;;;;;;;;+GApMN,MAAM;0CACF,OAAO;;;;;;;;;;;;;;mHAmMX,MAAM;;;;;;;;;;;;;;;;mHApMN,MAAM;8CACF,OAAO;;;;;;;;;;;;;;uHAmMX,MAAM;;;;;;;;;;;;;;;;uHApMN,MAAM;kDACF,OAAO;;;;;;;;;;;;;;2HAmMX,MAAM;;;;;;;;;;;;;;;;2HApMN,MAAM;sDACF,OAAO;;;;;;;;;;;;;;+HAmMX,MAAM;;;;;;;;;;;;;;;;+HApMN,MAAM;0DACF,OAAO;;;;;;;;;;;;;;mIAmMX,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;CAmCjB,CAAA;AAEX,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EACvE,MAAM,EAAE,CAAC,GACR,CAAC,CAEH"}
package/dist/index.js CHANGED
@@ -99,9 +99,21 @@ function ModularFactory(methods) {
99
99
  return ModularFactory(methods).build(stages.slice(0, stageIndex + 1))(displayName);
100
100
  };
101
101
  // @ts-ignore
102
- Component[`mock${method}`] =
102
+ Component[`before${method}`] =
103
103
  stageIndices.length < 1
104
104
  ? undefined
105
+ : (forceIndex) => {
106
+ // Find the needed stage
107
+ const stageIndex = (forceIndex !== undefined
108
+ ? stageIndices[forceIndex]
109
+ : lastIndex) ?? lastIndex;
110
+ // Otherwise, keep all stages up to but excluding the found stage
111
+ return ModularFactory(methods).build(stages.slice(0, stageIndex))(displayName);
112
+ };
113
+ // @ts-ignore
114
+ Component[`mock${method}`] =
115
+ stageIndices.length < 1
116
+ ? () => Component
105
117
  : (value, forceIndex) => {
106
118
  // Prepare the mocked stage
107
119
  const stage = {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"arguments.d.ts","sourceRoot":"","sources":["../../src/types/arguments.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAE7C,oBAAY,gBAAgB,CAC1B,KAAK,SAAS,EAAE,EAChB,GAAG,EACH,OAAO,SAAS,MAAM,CACpB,MAAM,EACN;IAAE,MAAM,EAAE,MAAM,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAC/C,EACD,MAAM,SAAS,UAAU,EACzB,aAAa,SAAS,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,EACxD,UAAU,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IACjC;IACF,KAAK,EAAE,KAAK,SAAS;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,GAAG,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC7E,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,EAAE,KAAK,SAAS;QAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAA;CAClF,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,GAC3B,EAAE,GACF,mBAAmB,CACjB;KACG,GAAG,IAAI,MAAM,aAAa,GAAG,UAAU,SAAS;QAC/C,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAA;QACnC,KAAK,EAAE,MAAM,CAAC,CAAA;KACf,GACG;SACG,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,aAAa,CAChD,gBAAgB,CACd,KAAK,EACL,GAAG,EACH,OAAO,EACP,WAAW,CAAC,aAAa,EAAE,GAAG,CAAC,CAChC,EACD,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAC5B,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS;YAAE,SAAS,EAAE,MAAM,CAAC,CAAA;SAAE,GACzD,CAAC,GACD,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;KAChC,GACD,KAAK;CACV,CAAC,MAAM,CAAC,CACV,CAAC,SAAS,MAAM,CAAC,GAClB;KACG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpD,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GACpB;SAAG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;KAAE,GAC5B,KAAK,GACP,CAAC,CAAC,GAAG,CAAC;CACX,GACD,KAAK,CAAA"}
1
+ {"version":3,"file":"arguments.d.ts","sourceRoot":"","sources":["../../src/types/arguments.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAE7C,oBAAY,gBAAgB,CAC1B,KAAK,SAAS,EAAE,EAChB,GAAG,EACH,OAAO,SAAS,MAAM,CACpB,MAAM,EACN;IAAE,MAAM,EAAE,MAAM,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAC/C,EACD,MAAM,SAAS,UAAU,EACzB,aAAa,SAAS,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,EACxD,UAAU,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IACjC;IACF,KAAK,EAAE,KAAK,SAAS;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,GAAG,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC7E,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,EAAE,KAAK,SAAS;QAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;KAAE,GACzC,CAAC,GACD,iBAAiB,CAAC,UAAU,CAAC,CAAA;CAClC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,GAC3B,EAAE,GACF,mBAAmB,CACjB;KACG,GAAG,IAAI,MAAM,aAAa,GAAG,UAAU,SAAS;QAC/C,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAA;QACnC,KAAK,EAAE,MAAM,CAAC,CAAA;KACf,GACG;SACG,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,aAAa,CAChD,gBAAgB,CACd,KAAK,EACL,GAAG,EACH,OAAO,EACP,WAAW,CAAC,aAAa,EAAE,GAAG,CAAC,CAChC,EACD,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAC5B,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS;YAAE,SAAS,EAAE,MAAM,CAAC,CAAA;SAAE,GACzD,CAAC,GACD,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;KAChC,GACD,KAAK;CACV,CAAC,MAAM,CAAC,CACV,CAAC,SAAS,MAAM,CAAC,GAClB;KACG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpD,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GACpB;SAAG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;KAAE,GAC5B,KAAK,GACP,CAAC,CAAC,GAAG,CAAC;CACX,GACD,KAAK,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/types/methods/add.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEtC,UAAU,gBAAgB,CACxB,KAAK,SAAS,EAAE,EAChB,GAAG,EACH,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAC5C,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,MAAM,OAAO,EAC5B,MAAM,SAAS,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;IAE9D,CACE,KAAK,SAAS,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,EAC9C,SAAS,SAAS,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAE/D,GAAG,IAAI,EAAE,SAAS,SAAS,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,GAC7F,gBAAgB,CACjB,KAAK,EACL,GAAG,EACH,OAAO,EACP,QAAQ,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAClD,CAAA;CACF;AAED,oBAAY,iBAAiB,CAC3B,KAAK,SAAS,EAAE,EAChB,GAAG,EACH,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAC5C,MAAM,SAAS,UAAU,IACvB,WAAW,CAAC;KACb,MAAM,IAAI,MAAM,OAAO,IAAI,MAAM,MAAM,SAAS,MAAM,GACnD,MAAM,GACN,KAAK,EAAE,GAAG,YAAY,CACxB,MAAM,EACN,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAC1B,CAAC,QAAQ,CAAC,SAAS,CAAC,GACjB,KAAK,GACL,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;CAC1D,CAAC,CAAA"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/types/methods/add.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEtC,UAAU,gBAAgB,CACxB,KAAK,SAAS,EAAE,EAChB,GAAG,EACH,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAC5C,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,MAAM,OAAO,EAC5B,MAAM,SAAS,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;IAE9D,CACE,KAAK,SAAS,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,EAC9C,SAAS,SAAS,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAE/D,GAAG,IAAI,EAAE,SAAS,SAAS,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,GACvD,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,GACf,CAAC,KAAK,EAAE,KAAK,CAAC,GACjB,gBAAgB,CACjB,KAAK,EACL,GAAG,EACH,OAAO,EACP,QAAQ,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAClD,CAAA;CACF;AAED,oBAAY,iBAAiB,CAC3B,KAAK,SAAS,EAAE,EAChB,GAAG,EACH,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAC5C,MAAM,SAAS,UAAU,IACvB,WAAW,CAAC;KACb,MAAM,IAAI,MAAM,OAAO,IAAI,MAAM,MAAM,SAAS,MAAM,GACnD,MAAM,GACN,KAAK,EAAE,GAAG,YAAY,CACxB,MAAM,EACN,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAC1B,CAAC,QAAQ,CAAC,SAAS,CAAC,GACjB,KAAK,GACL,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;CAC1D,CAAC,CAAA"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Methods for rewinding a modular component up to a given stage.
3
+ * If multiple entries of the same stage were previously added,
4
+ * it's possible to pass the index for the entry to rewind to.
5
+ */
6
+ import { ModularComponent } from '../modular-component';
7
+ import { BeforeStage, StageIndices, StageTuple } from '../stage';
8
+ import { FilterNever, Last, ToIndices } from '../utils';
9
+ import { ValidateIndex } from '../validation';
10
+ import { MethodRecord } from '../methods';
11
+ interface ModularBeforeMethodIndices<Props extends {}, Ref, Methods extends Record<string, MethodRecord>, Stages extends StageTuple, Method extends keyof Methods, Indices extends number[]> {
12
+ <StageIndex extends Index extends number ? Indices[Index] : Last<Indices>, ValidIndex extends ValidateIndex<Index, ToIndices<Indices>>, Index extends number>(index: ValidIndex extends true ? Index : ToIndices<Indices>): ModularComponent<Props, Ref, Methods, BeforeStage<Stages, StageIndex>>;
13
+ }
14
+ interface ModularBeforeMethodLast<Props extends {}, Ref, Methods extends Record<string, MethodRecord>, Stages extends StageTuple, Method extends keyof Methods, Index extends number> {
15
+ (): ModularComponent<Props, Ref, Methods, BeforeStage<Stages, Index>>;
16
+ }
17
+ declare type ModularBeforeMethod<Props extends {}, Ref, Methods extends Record<string, MethodRecord>, Stages extends StageTuple, Method extends keyof Methods, Symbol extends symbol = Methods[Method]['symbol'], Indices extends StageIndices<Stages, Symbol> = StageIndices<Stages, Symbol>> = Indices['length'] extends 0 ? never : ModularBeforeMethodIndices<Props, Ref, Methods, Stages, Method, Indices> & ModularBeforeMethodLast<Props, Ref, Methods, Stages, Method, Last<Indices>>;
18
+ export declare type ModularBeforeMethods<Props extends {}, Ref, Methods extends Record<string, MethodRecord>, Stages extends StageTuple> = FilterNever<{
19
+ [Method in keyof Methods as `before${Method extends string ? Method : never}`]: ModularBeforeMethod<Props, Ref, Methods, Stages, Method>;
20
+ }>;
21
+ export {};
22
+ //# sourceMappingURL=before.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"before.d.ts","sourceRoot":"","sources":["../../../src/types/methods/before.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAChE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,UAAU,0BAA0B,CAClC,KAAK,SAAS,EAAE,EAChB,GAAG,EACH,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAC5C,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,MAAM,OAAO,EAC5B,OAAO,SAAS,MAAM,EAAE;IAExB,CAEE,UAAU,SAAS,KAAK,SAAS,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EACxE,UAAU,SAAS,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAC3D,KAAK,SAAS,MAAM,EAEpB,KAAK,EAAE,UAAU,SAAS,IAAI,GAAG,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,GAC1D,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;CAC1E;AAED,UAAU,uBAAuB,CAC/B,KAAK,SAAS,EAAE,EAChB,GAAG,EACH,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAC5C,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,MAAM,OAAO,EAC5B,KAAK,SAAS,MAAM;IAEpB,IAAI,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;CACtE;AAED,aAAK,mBAAmB,CACtB,KAAK,SAAS,EAAE,EAChB,GAAG,EACH,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAC5C,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,MAAM,OAAO,EAC5B,MAAM,SAAS,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EACjD,OAAO,SAAS,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,IACzE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,GAC3B,KAAK,GACL,0BAA0B,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,GACtE,uBAAuB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;AAEjF,oBAAY,oBAAoB,CAC9B,KAAK,SAAS,EAAE,EAChB,GAAG,EACH,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAC5C,MAAM,SAAS,UAAU,IACvB,WAAW,CAAC;KACb,MAAM,IAAI,MAAM,OAAO,IAAI,SAAS,MAAM,SAAS,MAAM,GACtD,MAAM,GACN,KAAK,EAAE,GAAG,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;CACvE,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Methods for rewinding a modular component up to a given stage.
3
+ * If multiple entries of the same stage were previously added,
4
+ * it's possible to pass the index for the entry to rewind to.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=before.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"before.js","sourceRoot":"","sources":["../../../src/types/methods/before.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -19,8 +19,12 @@ interface ModularWithMethodDefault<Props extends {}, Ref, Methods extends Record
19
19
  interface ModularWithMethodIndices<Props extends {}, Ref, Methods extends Record<string, MethodRecord>, Stages extends StageTuple, Method extends keyof Methods, Indices extends number[], Symbol extends keyof ModularStages = Methods[Method]['symbol']> {
20
20
  <Arguments extends ComputeArguments<Props, Ref, Methods, BeforeStage<Stages, StageIndex>>, Value extends RestrictValue<Arguments, Symbol>, PreviousValue extends Stages[StageIndex]['value'], Valid extends ModularStages<Arguments, Value>[Symbol] extends {
21
21
  validate: infer V;
22
+ } ? V : ModularStages<Arguments, Value>[Symbol] extends {
23
+ transform: infer V;
22
24
  } ? V : Value, PreviousValid extends ModularStages<Arguments, PreviousValue>[Symbol] extends {
23
25
  validate: infer V;
26
+ } ? V : ModularStages<Arguments, PreviousValue>[Symbol] extends {
27
+ transform: infer V;
24
28
  } ? V : PreviousValue, ValidValue extends [Valid] extends [PreviousValid] ? true : false, StageIndex extends Index extends number ? Indices[Index] : Last<Indices>, ValidIndex extends ValidateIndex<Index, ToIndices<Indices>>, Index extends number>(value: ValidValue extends true ? Value : PreviousValue, index: ValidIndex extends true ? Index : ToIndices<Indices>): ModularComponent<Props, Ref, Methods, UpsertStage<Stages, {
25
29
  stage: Symbol;
26
30
  value: Value;
@@ -29,8 +33,12 @@ interface ModularWithMethodIndices<Props extends {}, Ref, Methods extends Record
29
33
  interface ModularWithMethodLast<Props extends {}, Ref, Methods extends Record<string, MethodRecord>, Stages extends StageTuple, Method extends keyof Methods, Index extends number, Symbol extends keyof ModularStages = Methods[Method]['symbol'], Arguments extends {} = ComputeArguments<Props, Ref, Methods, BeforeStage<Stages, Index>>> {
30
34
  <Value extends RestrictValue<Arguments, Symbol>, PreviousValue extends Stages[Index]['value'], Valid extends ModularStages<Arguments, Value>[Symbol] extends {
31
35
  validate: infer V;
36
+ } ? V : ModularStages<Arguments, Value>[Symbol] extends {
37
+ transform: infer V;
32
38
  } ? V : Value, PreviousValid extends ModularStages<Arguments, PreviousValue>[Symbol] extends {
33
39
  validate: infer V;
40
+ } ? V : ModularStages<Arguments, PreviousValue>[Symbol] extends {
41
+ transform: infer V;
34
42
  } ? V : PreviousValue, ValidValue extends [Valid] extends [PreviousValid] ? true : false>(...args: undefined extends PreviousValue ? [value?: ValidValue extends true ? Value : PreviousValue] : [value: ValidValue extends true ? Value : PreviousValue]): ModularComponent<Props, Ref, Methods, UpsertStage<Stages, {
35
43
  stage: Symbol;
36
44
  value: Value;
@@ -1 +1 @@
1
- {"version":3,"file":"with.d.ts","sourceRoot":"","sources":["../../../src/types/methods/with.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"with.d.ts","sourceRoot":"","sources":["../../../src/types/methods/with.ts"],"names":[],"mappings":"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"}
@@ -7,9 +7,10 @@ import { MethodRecord } from './methods';
7
7
  import { ModularWithMethods } from './methods/with';
8
8
  import { ModularAddMethods } from './methods/add';
9
9
  import { ModularAtMethods } from './methods/at';
10
+ import { ModularBeforeMethods } from './methods/before';
10
11
  import { ModularMockMethods } from './methods/mock';
11
12
  import { ModularHookMethods } from './methods/hook';
12
- export declare type ModularComponent<Props extends {}, Ref, Methods extends Record<string, MethodRecord>, Stages extends StageTuple> = ModularWithMethods<Props, Ref, Methods, Stages> & ModularAddMethods<Props, Ref, Methods, Stages> & ModularAtMethods<Props, Ref, Methods, Stages> & ModularMockMethods<Props, Ref, Methods, Stages> & ModularHookMethods<Props, Ref, Methods, Stages> & FunctionComponent<PropsWithChildren<Props & {
13
+ export declare type ModularComponent<Props extends {}, Ref, Methods extends Record<string, MethodRecord>, Stages extends StageTuple> = ModularWithMethods<Props, Ref, Methods, Stages> & ModularAddMethods<Props, Ref, Methods, Stages> & ModularAtMethods<Props, Ref, Methods, Stages> & ModularBeforeMethods<Props, Ref, Methods, Stages> & ModularMockMethods<Props, Ref, Methods, Stages> & ModularHookMethods<Props, Ref, Methods, Stages> & FunctionComponent<PropsWithChildren<Props & {
13
14
  ref?: ForwardedRef<Ref>;
14
15
  }>>;
15
16
  //# sourceMappingURL=modular-component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"modular-component.d.ts","sourceRoot":"","sources":["../../src/types/modular-component.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAE1E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAEnD,oBAAY,gBAAgB,CAC1B,KAAK,SAAS,EAAE,EAChB,GAAG,EACH,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAC5C,MAAM,SAAS,UAAU,IACvB,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,GACjD,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,GAC9C,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,GAC7C,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,GAC/C,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,GAC/C,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,GAAG;IAAE,GAAG,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAA;CAAE,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"modular-component.d.ts","sourceRoot":"","sources":["../../src/types/modular-component.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAE1E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAEnD,oBAAY,gBAAgB,CAC1B,KAAK,SAAS,EAAE,EAChB,GAAG,EACH,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAC5C,MAAM,SAAS,UAAU,IACvB,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,GACjD,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,GAC9C,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,GAC7C,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,GACjD,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,GAC/C,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,GAC/C,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,GAAG;IAAE,GAAG,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAA;CAAE,CAAC,CAAC,CAAA"}
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "Factory",
8
8
  "Test"
9
9
  ],
10
- "version": "0.1.5",
10
+ "version": "0.1.7",
11
11
  "type": "module",
12
12
  "license": "MIT",
13
13
  "publishConfig": {
package/src/index.ts CHANGED
@@ -158,9 +158,26 @@ function ModularFactory<Methods extends Record<string, MethodRecord>>(
158
158
  }
159
159
 
160
160
  // @ts-ignore
161
- Component[`mock${method}`] =
161
+ Component[`before${method}`] =
162
162
  stageIndices.length < 1
163
163
  ? undefined
164
+ : (forceIndex?: number) => {
165
+ // Find the needed stage
166
+ const stageIndex =
167
+ (forceIndex !== undefined
168
+ ? stageIndices[forceIndex]
169
+ : lastIndex) ?? lastIndex
170
+
171
+ // Otherwise, keep all stages up to but excluding the found stage
172
+ return ModularFactory<Methods>(methods).build(
173
+ stages.slice(0, stageIndex),
174
+ )<Props>(displayName)
175
+ }
176
+
177
+ // @ts-ignore
178
+ Component[`mock${method}`] =
179
+ stageIndices.length < 1
180
+ ? () => Component as unknown
164
181
  : (value: unknown, forceIndex?: number) => {
165
182
  // Prepare the mocked stage
166
183
  const stage = {
@@ -20,7 +20,9 @@ export type ComputeArguments<
20
20
  > = {
21
21
  props: Props extends { children: unknown } ? Props : PropsWithChildren<Props>
22
22
  ref: Ref
23
- children: Props extends { children: infer C } ? C : PropsWithChildren['children']
23
+ children: Props extends { children: infer C }
24
+ ? C
25
+ : PropsWithChildren['children']
24
26
  } & (Stages['length'] extends 0
25
27
  ? {}
26
28
  : UnionToIntersection<
@@ -24,7 +24,9 @@ interface ModularAddMethod<
24
24
  Value extends RestrictValue<Arguments, Symbol>,
25
25
  Arguments extends ComputeArguments<Props, Ref, Methods, Stages>,
26
26
  >(
27
- ...args: undefined extends RestrictValue<Arguments, Symbol> ? [value?: Value] : [value: Value]
27
+ ...args: undefined extends RestrictValue<Arguments, Symbol>
28
+ ? [value?: Value]
29
+ : [value: Value]
28
30
  ): ModularComponent<
29
31
  Props,
30
32
  Ref,
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Methods for rewinding a modular component up to a given stage.
3
+ * If multiple entries of the same stage were previously added,
4
+ * it's possible to pass the index for the entry to rewind to.
5
+ */
6
+
7
+ import { ModularComponent } from '../modular-component'
8
+ import { BeforeStage, StageIndices, StageTuple } from '../stage'
9
+ import { FilterNever, Last, ToIndices } from '../utils'
10
+ import { ValidateIndex } from '../validation'
11
+ import { MethodRecord } from '../methods'
12
+
13
+ interface ModularBeforeMethodIndices<
14
+ Props extends {},
15
+ Ref,
16
+ Methods extends Record<string, MethodRecord>,
17
+ Stages extends StageTuple,
18
+ Method extends keyof Methods,
19
+ Indices extends number[],
20
+ > {
21
+ <
22
+ // Validate index
23
+ StageIndex extends Index extends number ? Indices[Index] : Last<Indices>,
24
+ ValidIndex extends ValidateIndex<Index, ToIndices<Indices>>,
25
+ Index extends number,
26
+ >(
27
+ index: ValidIndex extends true ? Index : ToIndices<Indices>,
28
+ ): ModularComponent<Props, Ref, Methods, BeforeStage<Stages, StageIndex>>
29
+ }
30
+
31
+ interface ModularBeforeMethodLast<
32
+ Props extends {},
33
+ Ref,
34
+ Methods extends Record<string, MethodRecord>,
35
+ Stages extends StageTuple,
36
+ Method extends keyof Methods,
37
+ Index extends number,
38
+ > {
39
+ (): ModularComponent<Props, Ref, Methods, BeforeStage<Stages, Index>>
40
+ }
41
+
42
+ type ModularBeforeMethod<
43
+ Props extends {},
44
+ Ref,
45
+ Methods extends Record<string, MethodRecord>,
46
+ Stages extends StageTuple,
47
+ Method extends keyof Methods,
48
+ Symbol extends symbol = Methods[Method]['symbol'],
49
+ Indices extends StageIndices<Stages, Symbol> = StageIndices<Stages, Symbol>,
50
+ > = Indices['length'] extends 0
51
+ ? never
52
+ : ModularBeforeMethodIndices<Props, Ref, Methods, Stages, Method, Indices> &
53
+ ModularBeforeMethodLast<Props, Ref, Methods, Stages, Method, Last<Indices>>
54
+
55
+ export type ModularBeforeMethods<
56
+ Props extends {},
57
+ Ref,
58
+ Methods extends Record<string, MethodRecord>,
59
+ Stages extends StageTuple,
60
+ > = FilterNever<{
61
+ [Method in keyof Methods as `before${Method extends string
62
+ ? Method
63
+ : never}`]: ModularBeforeMethod<Props, Ref, Methods, Stages, Method>
64
+ }>
@@ -28,7 +28,9 @@ interface ModularWithMethodDefault<
28
28
  Arguments extends {} = ComputeArguments<Props, Ref, Methods, Stages>,
29
29
  > {
30
30
  <Value extends RestrictValue<Arguments, Symbol>>(
31
- ...args: undefined extends RestrictValue<Arguments, Symbol> ? [value?: Value] : [value: Value]
31
+ ...args: undefined extends RestrictValue<Arguments, Symbol>
32
+ ? [value?: Value]
33
+ : [value: Value]
32
34
  ): ModularComponent<
33
35
  Props,
34
36
  Ref,
@@ -60,6 +62,10 @@ interface ModularWithMethodIndices<
60
62
  validate: infer V
61
63
  }
62
64
  ? V
65
+ : ModularStages<Arguments, Value>[Symbol] extends {
66
+ transform: infer V
67
+ }
68
+ ? V
63
69
  : Value,
64
70
  PreviousValid extends ModularStages<
65
71
  Arguments,
@@ -68,6 +74,10 @@ interface ModularWithMethodIndices<
68
74
  validate: infer V
69
75
  }
70
76
  ? V
77
+ : ModularStages<Arguments, PreviousValue>[Symbol] extends {
78
+ transform: infer V
79
+ }
80
+ ? V
71
81
  : PreviousValue,
72
82
  ValidValue extends [Valid] extends [PreviousValid] ? true : false,
73
83
  // Validate index
@@ -108,6 +118,10 @@ interface ModularWithMethodLast<
108
118
  validate: infer V
109
119
  }
110
120
  ? V
121
+ : ModularStages<Arguments, Value>[Symbol] extends {
122
+ transform: infer V
123
+ }
124
+ ? V
111
125
  : Value,
112
126
  PreviousValid extends ModularStages<
113
127
  Arguments,
@@ -116,10 +130,16 @@ interface ModularWithMethodLast<
116
130
  validate: infer V
117
131
  }
118
132
  ? V
133
+ : ModularStages<Arguments, PreviousValue>[Symbol] extends {
134
+ transform: infer V
135
+ }
136
+ ? V
119
137
  : PreviousValue,
120
138
  ValidValue extends [Valid] extends [PreviousValid] ? true : false,
121
139
  >(
122
- ...args: undefined extends PreviousValue ? [value?: ValidValue extends true ? Value : PreviousValue] : [value: ValidValue extends true ? Value : PreviousValue]
140
+ ...args: undefined extends PreviousValue
141
+ ? [value?: ValidValue extends true ? Value : PreviousValue]
142
+ : [value: ValidValue extends true ? Value : PreviousValue]
123
143
  ): ModularComponent<
124
144
  Props,
125
145
  Ref,
@@ -9,6 +9,7 @@ import { MethodRecord } from './methods'
9
9
  import { ModularWithMethods } from './methods/with'
10
10
  import { ModularAddMethods } from './methods/add'
11
11
  import { ModularAtMethods } from './methods/at'
12
+ import { ModularBeforeMethods } from './methods/before'
12
13
  import { ModularMockMethods } from './methods/mock'
13
14
  import { ModularHookMethods } from './methods/hook'
14
15
 
@@ -20,6 +21,7 @@ export type ModularComponent<
20
21
  > = ModularWithMethods<Props, Ref, Methods, Stages> &
21
22
  ModularAddMethods<Props, Ref, Methods, Stages> &
22
23
  ModularAtMethods<Props, Ref, Methods, Stages> &
24
+ ModularBeforeMethods<Props, Ref, Methods, Stages> &
23
25
  ModularMockMethods<Props, Ref, Methods, Stages> &
24
26
  ModularHookMethods<Props, Ref, Methods, Stages> &
25
27
  FunctionComponent<PropsWithChildren<Props & { ref?: ForwardedRef<Ref> }>>