@modular-component/core 0.1.6 → 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 +6 -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/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/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/methods/before.ts +64 -0
- package/src/types/modular-component.ts +2 -0
package/CHANGELOG.md
CHANGED
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":"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"}
|
|
@@ -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"}
|
|
@@ -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 = {
|
|
@@ -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
|
+
}>
|
|
@@ -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> }>>
|