@modular-component/core 0.2.0 → 0.2.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/README.md +9 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -11
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +25 -14
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @modular-component/core
|
|
2
2
|
|
|
3
3
|
Core system for creating a `ModularComponent` factory. Exports the `modularFactory`
|
|
4
4
|
builder, and necessary types for creating extensions.
|
|
@@ -11,22 +11,20 @@ yarn add @modular-component/core
|
|
|
11
11
|
|
|
12
12
|
```tsx
|
|
13
13
|
// Usage in apps
|
|
14
|
-
import {
|
|
14
|
+
import { ModularComponent, render } from '@modular-component/core'
|
|
15
15
|
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
<div>Hello Modular!</div>
|
|
20
|
-
))
|
|
16
|
+
const MyComponent = ModularComponent().with(
|
|
17
|
+
render(() => <div>Hello Modular!</div>),
|
|
18
|
+
)
|
|
21
19
|
```
|
|
22
20
|
|
|
23
21
|
```tsx
|
|
24
22
|
// Usage in extensions
|
|
25
|
-
import {
|
|
23
|
+
import { ModularStage } from '@modular-component/core'
|
|
26
24
|
|
|
27
|
-
export
|
|
28
|
-
field: '
|
|
29
|
-
}
|
|
25
|
+
export function extension(): ModularStage<'field', () => void> {
|
|
26
|
+
return { field: 'field', useStage: () => {} }
|
|
27
|
+
}
|
|
30
28
|
```
|
|
31
29
|
|
|
32
30
|
## Learn more
|
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,KAAK,EAAE,EACZ,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,OAAO,CAAA;AAEd,MAAM,WAAW,YAAY,CAC3B,KAAK,SAAS,MAAM,EACpB,KAAK,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,GAAG;IAE3C,KAAK,EAAE,KAAK,CAAA;IACZ,QAAQ,EAAE,KAAK,CAAA;CAChB;AAED,MAAM,MAAM,oCAAoC,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS;IAC3E,KAAK;CACN,GACG,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,GAC3C,wBAAwB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AAExC,MAAM,MAAM,gBAAgB,CAC1B,KAAK,SAAS,EAAE,EAChB,GAAG,EACH,IAAI,SAAS;IAAE,MAAM,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAA;CAAE,IACpD,oCAAoC,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG;IACrD,IAAI,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;QACtC,KAAK,EAAE,KAAK,CAAA;QACZ,QAAQ,EAAE,CACR,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,KACzB,KAAK,SAAS,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;KACnD,GAAG,gBAAgB,CAClB,KAAK,EACL,GAAG,EACH;SACG,GAAG,IAAI,MAAM,IAAI,GAAG,KAAK,GAAG,GAAG,SAAS,QAAQ,GAC7C,UAAU,CAAC,iBAAiB,CAAC,GAC7B,GAAG,SAAS,KAAK,GACjB,IAAI,GACJ,GAAG,SAAS,MAAM,IAAI,GACtB,IAAI,CAAC,GAAG,CAAC,GACT,KAAK;KACV,CACF,CAAA;IACD,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;QACvC,KAAK,EAAE,KAAK,CAAA;QACZ,QAAQ,EAAE,CACR,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,KACzB,KAAK,SAAS,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAA;KACpD,GAAG,gBAAgB,CAClB,KAAK,EACL,GAAG,EACH;SACG,GAAG,IAAI,MAAM,IAAI,GAAG,KAAK,GAAG,GAAG,SAAS,QAAQ,GAC7C,UAAU,CAAC,iBAAiB,CAAC,GAC7B,GAAG,SAAS,KAAK,GACjB,IAAI,GACJ,GAAG,SAAS,MAAM,IAAI,GACtB,IAAI,CAAC,GAAG,CAAC,GACT,KAAK;KACV,CACF,CAAA;IACD,GAAG,CAAC,KAAK,SAAS,MAAM,IAAI,EAC1B,GAAG,EAAE,KAAK,GACT,EAAE,SAAS,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -15,25 +15,26 @@ function InternalFactory(stages) {
|
|
|
15
15
|
return InternalFactory([...stages, stage]);
|
|
16
16
|
};
|
|
17
17
|
useComponent.force = useComponent.with;
|
|
18
|
-
useComponent.use =
|
|
19
|
-
(field)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
? stages.findIndex((stage) => stage.field === field)
|
|
23
|
-
: false;
|
|
24
|
-
if (index === false) {
|
|
18
|
+
useComponent.use = (field) => {
|
|
19
|
+
if (!field) {
|
|
20
|
+
return (props = {}, ref = null) => {
|
|
21
|
+
const args = { props };
|
|
25
22
|
for (let stage of stages) {
|
|
26
23
|
args[stage.field] = stage.useStage(args, ref);
|
|
27
24
|
}
|
|
28
25
|
return args;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
const index = stages.findIndex((stage) => stage.field === field);
|
|
29
|
+
const argStages = index === -1 ? stages.slice(0) : stages.slice(0, index + 1);
|
|
30
|
+
return (props = {}, ref = null) => {
|
|
31
|
+
const args = { props };
|
|
32
32
|
for (let stage of argStages) {
|
|
33
33
|
args[stage.field] = stage.useStage(args, ref);
|
|
34
34
|
}
|
|
35
|
-
return
|
|
35
|
+
return args[field];
|
|
36
36
|
};
|
|
37
|
+
};
|
|
37
38
|
useComponent.stage = (field) => {
|
|
38
39
|
const stage = stages.find((stage) => stage.field === field);
|
|
39
40
|
return stage?.useStage ?? (() => null);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -63,8 +63,12 @@ export type ModularComponent<
|
|
|
63
63
|
>
|
|
64
64
|
use<Field extends keyof Args>(
|
|
65
65
|
key: Field,
|
|
66
|
-
): {} extends Props
|
|
67
|
-
|
|
66
|
+
): {} extends Props
|
|
67
|
+
? () => Args[Field]
|
|
68
|
+
: (props: PropsWithChildren<Props>) => Args[Field]
|
|
69
|
+
use(): {} extends Props
|
|
70
|
+
? () => Args
|
|
71
|
+
: (props: PropsWithChildren<Props>) => Args
|
|
68
72
|
stage<Field extends keyof Args>(
|
|
69
73
|
key: Field,
|
|
70
74
|
): (args: Partial<Args>) => Args[Field]
|
|
@@ -101,28 +105,35 @@ function InternalFactory<
|
|
|
101
105
|
}
|
|
102
106
|
useComponent.force = useComponent.with
|
|
103
107
|
|
|
104
|
-
useComponent.use =
|
|
105
|
-
(field
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
if (index === false) {
|
|
108
|
+
useComponent.use = (field: keyof Args) => {
|
|
109
|
+
if (!field) {
|
|
110
|
+
return (
|
|
111
|
+
props: Props = {} as Props,
|
|
112
|
+
ref: React.ForwardedRef<Ref> = null,
|
|
113
|
+
) => {
|
|
114
|
+
const args: Record<string, any> = { props }
|
|
112
115
|
for (let stage of stages) {
|
|
113
116
|
args[stage.field] = stage.useStage(args as Args, ref)
|
|
114
117
|
}
|
|
115
118
|
return args
|
|
116
119
|
}
|
|
120
|
+
}
|
|
117
121
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
122
|
+
const index = stages.findIndex((stage) => stage.field === field)
|
|
123
|
+
const argStages =
|
|
124
|
+
index === -1 ? stages.slice(0) : stages.slice(0, index + 1)
|
|
125
|
+
|
|
126
|
+
return (
|
|
127
|
+
props: Props = {} as Props,
|
|
128
|
+
ref: React.ForwardedRef<Ref> = null,
|
|
129
|
+
) => {
|
|
130
|
+
const args: Record<string, any> = { props }
|
|
121
131
|
for (let stage of argStages) {
|
|
122
132
|
args[stage.field] = stage.useStage(args as Args, ref)
|
|
123
133
|
}
|
|
124
|
-
return
|
|
134
|
+
return args[field as string]
|
|
125
135
|
}
|
|
136
|
+
}
|
|
126
137
|
|
|
127
138
|
useComponent.stage = (field: keyof Args) => {
|
|
128
139
|
const stage = stages.find((stage) => stage.field === field)
|