@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 +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/types/arguments.d.ts.map +1 -1
- package/dist/types/methods/add.d.ts.map +1 -1
- package/dist/types/methods/before.d.ts +22 -0
- package/dist/types/methods/before.d.ts.map +1 -0
- package/dist/types/methods/before.js +7 -0
- package/dist/types/methods/before.js.map +1 -0
- package/dist/types/methods/with.d.ts +8 -0
- package/dist/types/methods/with.d.ts.map +1 -1
- package/dist/types/modular-component.d.ts +2 -1
- package/dist/types/modular-component.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +18 -1
- package/src/types/arguments.ts +3 -1
- package/src/types/methods/add.ts +3 -1
- package/src/types/methods/before.ts +64 -0
- package/src/types/methods/with.ts +22 -2
- package/src/types/modular-component.ts +2 -0
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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[`
|
|
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":"AAAA,OAAO,EAAmC,UAAU,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAQzE,SAAS,cAAc,CACrB,OAAgB;IAMhB,OAAO;QACL,KAAK,EAAE,CAAiC,SAAqB,EAAE,EAAE,EAAE;YACjE,MAAM,OAAO,GAAG,CACd,WAAoB,EACpB,OAA2B,EAC3B,EAAE;gBACF,MAAM,cAAc,GAClB,CAAC,GAAuB,EAAE,KAAc,EAAE,EAAE,CAC5C,GAAG,EAAE,CACL,CAAC,QAAe,EAAW,EAAE,EAAE;oBAC7B,oEAAoE;oBACpE,6BAA6B;oBAC7B,IAAI,IAAI,GAAG;wBACT,KAAK;wBACL,QAAQ,EAAG,KAAgC,EAAE,QAAQ;wBACrD,MAAM,EAAE,IAAI;wBACZ,GAAG;qBACJ,CAAA;oBAED,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;oBAE3C,mEAAmE;oBACnE,sBAAsB;oBACtB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;wBAC1B,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAC9B,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAC1C,CAAA;wBAED,IAAI,YAAY;wBACd,gCAAgC;wBAChC,CAAE,KAAa,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC;4BACvD,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;wBAErB,IAAI,GAAG;4BACL,GAAG,IAAI;4BACP,CAAC,MAAM,EAAE,KAA0B,CAAC,EAAE,YAAY,CAChD,IAAI,EACJ,KAAK,CAAC,KAAK,CACZ;yBACF,CAAA;qBACF;oBAED,2BAA2B;oBAC3B,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAA0B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;gBACxD,CAAC,CAAA;gBAEH,2EAA2E;gBAC3E,gEAAgE;gBAChE,MAAM,SAAS,GAAG,UAAU,CAAa,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBACtD,oEAAoE;oBACpE,6BAA6B;oBAC7B,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,CAAA;oBAC1C,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;oBAEhC,OAAQ,IAAoC,CAAC,MAAM,IAAI,IAAI,CAAA;gBAC7D,CAAC,CAAkE,CAAA;gBAEnE,yCAAyC;gBACzC,SAAS,CAAC,WAAW,GAAG,WAAW,CAAA;gBAEnC,qEAAqE;gBACrE,SAAS,CAAC,MAAM,GAAG,cAAc,EAKtB,CAAA;gBAEX,qDAAqD;gBACrD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;oBACtC,kDAAkD;oBAClD,MAAM,YAAY,GAAG,MAAM;wBACzB,4CAA4C;yBAC3C,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,CAAU,CAAC;wBACjD,2CAA2C;yBAC1C,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;wBAChE,gBAAgB;yBACf,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;oBAC1B,MAAM,SAAS,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,EAAY,CAAA;oBAEnD,aAAa;oBACb,SAAS,CAAC,OAAO,MAAM,EAAE,CAAC,GAAG,CAC3B,KAAc,EACd,UAAmB,EACnB,EAAE;wBACF,wBAAwB;wBACxB,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAW,CAAA;wBAE/D,kDAAkD;wBAClD,MAAM,UAAU,GACd,CAAC,UAAU,KAAK,SAAS;4BACvB,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC;4BAC1B,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;wBAEtB,yDAAyD;wBACzD,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE;4BACnB,MAAM,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;4BAC9B,UAAU,CAAC,UAAU,CAAC,GAAG,KAAK,CAAA;4BAC9B,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAC9C,WAAW,CACZ,CAAA;yBACF;wBAED,8BAA8B;wBAC9B,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CACtD,WAAW,CACZ,CAAA;oBACH,CAAC,CAAA;oBAED,aAAa;oBACb,SAAS,CAAC,MAAM,MAAM,EAAE,CAAC;wBACvB,YAAY,CAAC,MAAM,GAAG,CAAC;4BACrB,CAAC,CAAC,SAAS;4BACX,CAAC,CAAC,CAAC,KAAc,EAAE,EAAE;gCACjB,wBAAwB;gCACxB,MAAM,KAAK,GAAG;oCACZ,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM;oCAC7B,KAAK;iCACG,CAAA;gCAEV,uCAAuC;gCACvC,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;oCACnC,GAAG,MAAM;oCACT,KAAK;iCACN,CAAC,CAAQ,WAAW,CAAC,CAAA;4BACxB,CAAC,CAAA;oBAEP,aAAa;oBACb,SAAS,CAAC,KAAK,MAAM,EAAE,CAAC;wBACtB,YAAY,CAAC,MAAM,GAAG,CAAC;4BACrB,CAAC,CAAC,SAAS;4BACX,CAAC,CAAC,CAAC,UAAmB,EAAE,EAAE;gCACtB,wBAAwB;gCACxB,MAAM,UAAU,GACd,CAAC,UAAU,KAAK,SAAS;oCACvB,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC;oCAC1B,CAAC,CAAC,SAAS,CAAC,IAAI,SAAS,CAAA;gCAE7B,iEAAiE;gCACjE,OAAO,cAAc,CAAU,OAAO,CAAC,CAAC,KAAK,CAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAChC,CAAQ,WAAW,CAAC,CAAA;4BACvB,CAAC,CAAA;oBAEP,aAAa;oBACb,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC;wBAC1B,YAAY,CAAC,MAAM,GAAG,CAAC;4BACrB,CAAC,CAAC,SAAS;4BACX,CAAC,CAAC,CAAC,UAAmB,EAAE,EAAE;gCACxB,wBAAwB;gCACxB,MAAM,UAAU,GACd,CAAC,UAAU,KAAK,SAAS;oCACvB,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC;oCAC1B,CAAC,CAAC,SAAS,CAAC,IAAI,SAAS,CAAA;gCAE7B,iEAAiE;gCACjE,OAAO,cAAc,CAAU,OAAO,CAAC,CAAC,KAAK,CAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAC5B,CAAQ,WAAW,CAAC,CAAA;4BACvB,CAAC,CAAA;oBAEL,aAAa;oBACb,SAAS,CAAC,OAAO,MAAM,EAAE,CAAC;wBACxB,YAAY,CAAC,MAAM,GAAG,CAAC;4BACrB,CAAC,CAAC,GAAG,EAAE,CAAC,SAAoB;4BAC5B,CAAC,CAAC,CAAC,KAAc,EAAE,UAAmB,EAAE,EAAE;gCACtC,2BAA2B;gCAC3B,MAAM,KAAK,GAAG;oCACZ,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM;oCAC7B,KAAK;oCACL,MAAM,EAAE,IAAI;iCACJ,CAAA;gCAEV,wBAAwB;gCACxB,MAAM,UAAU,GACd,CAAC,UAAU,KAAK,SAAS;oCACvB,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC;oCAC1B,CAAC,CAAC,SAAS,CAAC,IAAI,SAAS,CAAA;gCAE7B,kCAAkC;gCAClC,MAAM,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;gCAC9B,UAAU,CAAC,UAAU,CAAC,GAAG,KAAK,CAAA;gCAC9B,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAC9C,WAAW,CACZ,CAAA;4BACH,CAAC,CAAA;oBAEP,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE,CACjC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;oBAErC,aAAa;oBACb,SAAS,CAAC,QAAQ,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;wBACpD,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAA;gBACpD,CAAC,CAAC,CAAA;gBAEF,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAqB,CAAA;YAC1E,CAAC,CAAA;YAED,OAAO,CAAC,IAAI,GAAG,CACb,WAAoB,EACpB,EAAE,CAAC,OAAO,CAAa,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YAErD,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,MAAM,EAAE,CACN,QAAkB,EAClB,EAAE;YACF,OAAO,cAAc,CAAqB;gBACxC,GAAG,OAAO;gBACV,GAAG,QAAQ;aACZ,CAAC,CAAA;QACJ,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,GAAG,MAAM,EAAE,CAAA;AAa3B,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;IAC3C,MAAM,EAAE;QACN,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,QAAQ;QACf,SAAS,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;KAC9C;CACO,CAAC,CAAA;AAEX,MAAM,UAAU,kBAAkB,CAChC,MAAS;IAET,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -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,
|
|
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,
|
|
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 @@
|
|
|
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":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EACL,WAAW,EACX,aAAa,EACb,YAAY,EACZ,UAAU,EACV,WAAW,EACZ,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE5D,UAAU,wBAAwB,CAChC,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,EAC9D,SAAS,SAAS,EAAE,GAAG,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC;IAEpE,CAAC,KAAK,SAAS,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,EAC7C,GAAG,IAAI,EAAE,SAAS,SAAS,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,
|
|
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
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[`
|
|
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 = {
|
package/src/types/arguments.ts
CHANGED
|
@@ -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 }
|
|
23
|
+
children: Props extends { children: infer C }
|
|
24
|
+
? C
|
|
25
|
+
: PropsWithChildren['children']
|
|
24
26
|
} & (Stages['length'] extends 0
|
|
25
27
|
? {}
|
|
26
28
|
: UnionToIntersection<
|
package/src/types/methods/add.ts
CHANGED
|
@@ -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>
|
|
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>
|
|
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
|
|
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> }>>
|