@modular-component/core 0.1.0 → 0.1.2
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 +7 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +3 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +7 -1
- package/src/types.ts +10 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @modular-component/core
|
|
2
2
|
|
|
3
|
+
## 0.1.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- e95e0ad: Move to using Symbols for transform map
|
|
8
|
+
|
|
9
|
+
## 0.1.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 6b2a1ab: Fix atStage function for multiple-mode stages: now correctly takes the last occurrence as typings suggest.
|
|
14
|
+
|
|
3
15
|
## 0.1.0
|
|
4
16
|
|
|
5
17
|
### Minor 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,EAAc,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGvE,YAAY,EAAE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAc,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGvE,YAAY,EAAE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AA4H3E,eAAO,MAAM,cAAc;uDAnHb,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,gCAEF,MAAM;;;;;;;6DAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;iEAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;qEAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;yEAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;6EAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;iFAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;qFAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;yFAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;6FAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;kGAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,mCAEF,MAAM;;;;;;;;;;;;;;;;;;;;;;CAsHnC,CAAA;AAEX,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,YAAY,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAEvE"}
|
package/dist/index.js
CHANGED
|
@@ -38,7 +38,13 @@ function ModularFactory(methods) {
|
|
|
38
38
|
// Add a function for rewinding the component up to a certain stage
|
|
39
39
|
Component.atStage = ((stage) => {
|
|
40
40
|
// Find the needed stage
|
|
41
|
-
const stageIndex = stages
|
|
41
|
+
const stageIndex = (stages
|
|
42
|
+
// Map all stages to an [index, stage] tuple
|
|
43
|
+
.map((record, index) => [index, record])
|
|
44
|
+
// Remove all tuples not matching our stage
|
|
45
|
+
.filter(([, record]) => record.key === stage)
|
|
46
|
+
// Get the index of the very last one, or -1 if none are remaining
|
|
47
|
+
.pop() || [-1])[0];
|
|
42
48
|
// If the stage cannot be found, create a brand new, empty component
|
|
43
49
|
if (stageIndex === -1) {
|
|
44
50
|
return ModularFactory(methods).build()(displayName);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,SAAS,cAAc,CAA+B,OAAgB;IAKpE,OAAO;QACL,KAAK,EAAE,CACL,SAAuC,EAAE,EACzC,EAAE;YACF,OAAO,CAAa,WAAoB,EAAE,EAAE;gBAC1C,2EAA2E;gBAC3E,gEAAgE;gBAChE,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC3B,oEAAoE;oBACpE,6BAA6B;oBAC7B,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,EAAE,CAAA;oBACvC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;oBAEhC,OAAQ,IAAoC,CAAC,MAAM,IAAI,IAAI,CAAA;gBAC7D,CAAC,CAAyC,CAAA;gBAE1C,yCAAyC;gBACzC,SAAS,CAAC,WAAW,GAAG,WAAW,CAAA;gBAEnC,qEAAqE;gBACrE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,KAAY,EAAE,EAAE;oBACtD,oEAAoE;oBACpE,6BAA6B;oBAC7B,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;oBAElC,mEAAmE;oBACnE,sBAAsB;oBACtB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;wBAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAiB,CAAC,CAAA;wBAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAA;wBAC5B,MAAM,YAAY,GAChB,MAAM,CAAC,SAAS;4BAChB,CAAC,GAAG,EAAE,CACJ,OAAO,QAAQ,KAAK,UAAU;gCAC5B,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;gCACvB,CAAC,CAAC,QAAQ,CAAC,CAAA;wBAEjB,IAAI,GAAG;4BACL,GAAG,IAAI;4BACP,CAAC,MAAM,CAAC,KAA0B,CAAC,EAAE,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC;yBAClE,CAAA;qBACF;oBAED,2BAA2B;oBAC3B,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAA0B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;gBACxD,CAAC,CAA8D,CAAA;gBAE/D,mEAAmE;gBACnE,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC,KAAiB,EAAE,EAAE;oBACzC,wBAAwB;oBACxB,MAAM,UAAU,GAAG,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export declare type MethodEntry = {
|
|
|
13
13
|
restrict?: unknown;
|
|
14
14
|
multiple?: boolean;
|
|
15
15
|
empty?: boolean;
|
|
16
|
+
symbol?: symbol;
|
|
16
17
|
};
|
|
17
18
|
export declare type MethodRecord = Record<MethodName, MethodEntry>;
|
|
18
19
|
declare type AppendStage<List extends StageList, Stage extends MethodName, Value extends unknown, Prev extends StageEntry = GetStage<List, Stage>> = [
|
|
@@ -49,12 +50,12 @@ declare type ComputeArgs<Stages extends StageList, Limit extends string, Union =
|
|
|
49
50
|
[key in keyof V]: V[key];
|
|
50
51
|
} : never : U[key];
|
|
51
52
|
} : never;
|
|
52
|
-
declare type TransformArg<Value,
|
|
53
|
+
declare type TransformArg<Value, Symbol> = Symbol extends keyof ModularStageTransform<Value> ? ModularStageTransform<Value>[Symbol] : Value;
|
|
53
54
|
declare type MapArgs<Stages extends StageList, Limit extends string, Methods extends MethodRecord, Props, Args = ComputeArgs<Stages, Limit>> = UnionToIntersection<{
|
|
54
55
|
props: Props;
|
|
55
56
|
} | {
|
|
56
57
|
[key in keyof Methods]: key extends keyof Args ? Methods[key] extends MethodEntry ? {
|
|
57
|
-
[k in Methods[key]['field']]: TransformArg<Args[key], key>;
|
|
58
|
+
[k in Methods[key]['field']]: TransformArg<Args[key], Methods[key]['symbol']>;
|
|
58
59
|
} : never : never;
|
|
59
60
|
}[keyof Methods]> extends infer U ? {
|
|
60
61
|
[key in keyof U]: U[key] extends Record<string, unknown> ? U[key] extends infer V ? {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -58,7 +58,13 @@ function ModularFactory<Methods extends MethodRecord>(methods: Methods) {
|
|
|
58
58
|
// Add a function for rewinding the component up to a certain stage
|
|
59
59
|
Component.atStage = ((stage: MethodName) => {
|
|
60
60
|
// Find the needed stage
|
|
61
|
-
const stageIndex = stages
|
|
61
|
+
const stageIndex = (stages
|
|
62
|
+
// Map all stages to an [index, stage] tuple
|
|
63
|
+
.map((record, index) => [index, record] as const)
|
|
64
|
+
// Remove all tuples not matching our stage
|
|
65
|
+
.filter(([, record]) => record.key === stage)
|
|
66
|
+
// Get the index of the very last one, or -1 if none are remaining
|
|
67
|
+
.pop() || [-1])[0]
|
|
62
68
|
|
|
63
69
|
// If the stage cannot be found, create a brand new, empty component
|
|
64
70
|
if (stageIndex === -1) {
|
package/src/types.ts
CHANGED
|
@@ -19,6 +19,7 @@ export type MethodEntry = {
|
|
|
19
19
|
restrict?: unknown
|
|
20
20
|
multiple?: boolean
|
|
21
21
|
empty?: boolean
|
|
22
|
+
symbol?: symbol
|
|
22
23
|
}
|
|
23
24
|
export type MethodRecord = Record<MethodName, MethodEntry>
|
|
24
25
|
|
|
@@ -94,8 +95,11 @@ type ComputeArgs<
|
|
|
94
95
|
|
|
95
96
|
// Check if a custom transform exists for the given argument, and apply
|
|
96
97
|
// it to the current value if there is
|
|
97
|
-
type TransformArg<
|
|
98
|
-
|
|
98
|
+
type TransformArg<
|
|
99
|
+
Value,
|
|
100
|
+
Symbol
|
|
101
|
+
> = Symbol extends keyof ModularStageTransform<Value>
|
|
102
|
+
? ModularStageTransform<Value>[Symbol]
|
|
99
103
|
: Value
|
|
100
104
|
|
|
101
105
|
// Map all computed arguments against the methods map to convert
|
|
@@ -116,7 +120,10 @@ type MapArgs<
|
|
|
116
120
|
? Methods[key] extends MethodEntry
|
|
117
121
|
? {
|
|
118
122
|
// Extract the field name from the method
|
|
119
|
-
[k in Methods[key]['field']]: TransformArg<
|
|
123
|
+
[k in Methods[key]['field']]: TransformArg<
|
|
124
|
+
Args[key],
|
|
125
|
+
Methods[key]['symbol']
|
|
126
|
+
>
|
|
120
127
|
}
|
|
121
128
|
: never
|
|
122
129
|
: // Set to never if the arg does not exist
|