@likec4/core 1.17.0 → 1.18.0
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/dist/compute-view/index.d.mts +91 -0
- package/dist/compute-view/index.d.ts +91 -0
- package/dist/compute-view/index.mjs +79 -0
- package/dist/index.d.mts +248 -435
- package/dist/index.d.ts +248 -435
- package/dist/index.mjs +418 -1322
- package/dist/model/index.d.mts +642 -0
- package/dist/model/index.d.ts +642 -0
- package/dist/model/index.mjs +2 -0
- package/dist/shared/core.BBgiAAv1.mjs +144 -0
- package/dist/shared/core.BPyJvuMU.mjs +2420 -0
- package/dist/shared/core.BQ4AbfvB.mjs +9228 -0
- package/dist/shared/{core.CoLQkcYL.d.ts → core.DMYY7C8s.d.mts} +398 -249
- package/dist/shared/{core.CoLQkcYL.d.cts → core.DMYY7C8s.d.ts} +398 -249
- package/dist/shared/core.k12s_keD.mjs +203 -0
- package/dist/types/index.d.mts +69 -1
- package/dist/types/index.d.ts +69 -1
- package/dist/types/index.mjs +21 -1
- package/package.json +40 -42
- package/src/builder/Builder.deployment.ts +219 -0
- package/src/builder/Builder.deploymentModel.ts +360 -0
- package/src/builder/Builder.element.ts +17 -19
- package/src/builder/Builder.model.ts +13 -2
- package/src/builder/Builder.test-d.ts +59 -4
- package/src/builder/Builder.ts +238 -53
- package/src/builder/Builder.view.ts +238 -53
- package/src/builder/_types.ts +87 -15
- package/src/compute-view/LikeC4ModelGraph.ts +330 -0
- package/src/compute-view/compute-view.ts +92 -0
- package/src/compute-view/deployment-view/Memory.ts +108 -0
- package/src/compute-view/deployment-view/Stage.ts +145 -0
- package/src/compute-view/deployment-view/__test__/fixture.ts +210 -0
- package/src/compute-view/deployment-view/_types.ts +29 -0
- package/src/compute-view/deployment-view/clean-connections.ts +229 -0
- package/src/compute-view/deployment-view/compute.ts +111 -0
- package/src/compute-view/deployment-view/predicates/deployment-ref.ts +146 -0
- package/src/compute-view/deployment-view/predicates/relation-direct.ts +130 -0
- package/src/compute-view/deployment-view/predicates/relation-in-out.ts +43 -0
- package/src/compute-view/deployment-view/predicates/relation-incoming.ts +46 -0
- package/src/compute-view/deployment-view/predicates/relation-outgoing.ts +49 -0
- package/src/compute-view/deployment-view/predicates/wildcard.ts +29 -0
- package/src/compute-view/deployment-view/utils.ts +212 -0
- package/src/compute-view/dynamic-view/__test__/fixture.ts +58 -0
- package/src/compute-view/dynamic-view/compute.ts +310 -0
- package/src/compute-view/element-view/__test__/__snapshots__/legacy.spec.ts.snap +456 -0
- package/src/compute-view/element-view/__test__/fixture.ts +645 -0
- package/src/compute-view/element-view/compute.ts +734 -0
- package/src/compute-view/element-view/predicates.ts +517 -0
- package/src/compute-view/index.ts +5 -0
- package/src/compute-view/utils/__snapshots__/sortNodes.spec.ts.snap +113 -0
- package/src/compute-view/utils/ancestorsOfNode.ts +19 -0
- package/src/compute-view/utils/applyCustomElementProperties.ts +66 -0
- package/src/compute-view/utils/applyCustomRelationProperties.ts +41 -0
- package/src/compute-view/utils/applyViewRuleStyles.ts +53 -0
- package/src/compute-view/utils/buildComputedNodes.ts +148 -0
- package/src/compute-view/utils/buildElementNotations.ts +63 -0
- package/src/compute-view/utils/derive-edge-props-from-relationships.ts +97 -0
- package/src/compute-view/utils/elementExpressionToPredicate.ts +52 -0
- package/src/compute-view/utils/link-nodes-with-edges.ts +58 -0
- package/src/compute-view/utils/relationExpressionToPredicates.ts +55 -0
- package/src/compute-view/utils/resolve-extended-views.ts +65 -0
- package/src/compute-view/utils/resolve-global-rules.ts +83 -0
- package/src/compute-view/utils/sortNodes.ts +101 -0
- package/src/compute-view/utils/topological-sort.ts +160 -0
- package/src/compute-view/utils/uniqueTags.test.ts +42 -0
- package/src/compute-view/utils/uniqueTags.ts +21 -0
- package/src/compute-view/utils/view-hash.ts +27 -0
- package/src/compute-view/utils/with-readable-edges.ts +31 -0
- package/src/index.ts +5 -1
- package/src/model/DeploymentElementModel.ts +534 -0
- package/src/model/DeploymentModel.ts +364 -0
- package/src/model/ElementModel.ts +195 -0
- package/src/model/LikeC4Model.test-d.ts +151 -0
- package/src/model/LikeC4Model.ts +280 -457
- package/src/model/RelationModel.ts +84 -0
- package/src/model/__test__/fixture.ts +153 -338
- package/src/model/connection/ConnectionModel.ts +94 -0
- package/src/model/connection/DeploymentConnectionModel.ts +99 -0
- package/src/model/connection/deployment.ts +124 -0
- package/src/model/connection/model.ts +123 -0
- package/src/model/index.ts +4 -2
- package/src/model/types.ts +95 -15
- package/src/model/view/EdgeModel.ts +103 -0
- package/src/model/view/LikeC4ViewModel.ts +220 -0
- package/src/model/view/NodeModel.ts +228 -0
- package/src/types/_common.ts +2 -0
- package/src/types/deployments.ts +237 -0
- package/src/types/element.ts +7 -3
- package/src/types/expression.ts +8 -6
- package/src/types/index.ts +1 -0
- package/src/types/model.ts +68 -9
- package/src/types/overview-graph.ts +2 -2
- package/src/types/relation.ts +4 -4
- package/src/types/view-notation.ts +2 -2
- package/src/types/view.ts +104 -30
- package/src/utils/{commonHead.ts → common-head.ts} +2 -0
- package/src/utils/fqn.ts +83 -27
- package/src/utils/getOrCreate.ts +42 -0
- package/src/utils/graphlib.ts +10 -0
- package/src/utils/index.ts +4 -1
- package/src/utils/object-hash.ts +3 -0
- package/src/utils/set.ts +76 -0
- package/src/utils/string-hash.ts +16 -0
- package/dist/index.cjs +0 -5452
- package/dist/index.d.cts +0 -1052
- package/dist/shared/core.CoLQkcYL.d.mts +0 -734
- package/dist/shared/core.v5DxGcX6.mjs +0 -293
- package/dist/shared/core.zN6ZscFQ.cjs +0 -353
- package/dist/types/index.cjs +0 -70
- package/dist/types/index.d.cts +0 -2
- package/src/model/LikeC4DiagramModel.ts +0 -338
- package/src/model/LikeC4ViewModel.ts +0 -320
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import type { AnyTypes, Types, TypesNested } from './_types'
|
|
2
|
+
import type { DeploymentModelBuilder } from './Builder.deploymentModel'
|
|
3
|
+
|
|
4
|
+
type ToNested<T, Id extends string> = T extends TypesNested<infer P, any, any, any, any, any, any, any, infer F>
|
|
5
|
+
? TypesNested<
|
|
6
|
+
`${P}.${Id}`,
|
|
7
|
+
T['ElementKind'],
|
|
8
|
+
T['Fqn'],
|
|
9
|
+
T['ViewId'],
|
|
10
|
+
T['RelationshipKind'],
|
|
11
|
+
T['Tag'],
|
|
12
|
+
T['MetadataKey'],
|
|
13
|
+
T['DeploymentKind'],
|
|
14
|
+
`${P}.${Id}` | F
|
|
15
|
+
>
|
|
16
|
+
: T extends AnyTypes ? TypesNested<
|
|
17
|
+
Id,
|
|
18
|
+
T['ElementKind'],
|
|
19
|
+
T['Fqn'],
|
|
20
|
+
T['ViewId'],
|
|
21
|
+
T['RelationshipKind'],
|
|
22
|
+
T['Tag'],
|
|
23
|
+
T['MetadataKey'],
|
|
24
|
+
T['DeploymentKind'],
|
|
25
|
+
Id | T['DeploymentFqn']
|
|
26
|
+
>
|
|
27
|
+
: never
|
|
28
|
+
|
|
29
|
+
type FromNested<T extends AnyTypes, N> = N extends TypesNested<any, any, any, any, any, any, any, any, infer F>
|
|
30
|
+
? T extends TypesNested<infer P, any, any, any, any, any, any, any, any> ? TypesNested<
|
|
31
|
+
P,
|
|
32
|
+
T['ElementKind'],
|
|
33
|
+
T['Fqn'],
|
|
34
|
+
T['ViewId'],
|
|
35
|
+
T['RelationshipKind'],
|
|
36
|
+
T['Tag'],
|
|
37
|
+
T['MetadataKey'],
|
|
38
|
+
T['DeploymentKind'],
|
|
39
|
+
F
|
|
40
|
+
>
|
|
41
|
+
: T extends AnyTypes ? Types<
|
|
42
|
+
T['ElementKind'],
|
|
43
|
+
T['Fqn'],
|
|
44
|
+
T['ViewId'],
|
|
45
|
+
T['RelationshipKind'],
|
|
46
|
+
T['Tag'],
|
|
47
|
+
T['MetadataKey'],
|
|
48
|
+
T['DeploymentKind'],
|
|
49
|
+
F
|
|
50
|
+
>
|
|
51
|
+
: never
|
|
52
|
+
: never
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Chainable builder to create deployment node
|
|
56
|
+
*/
|
|
57
|
+
export interface AddDeploymentNode<Id extends string> {
|
|
58
|
+
<T extends AnyTypes>(builder: DeploymentModelBuilder<T>): DeploymentModelBuilder<Types.AddDeploymentFqn<T, Id>>
|
|
59
|
+
|
|
60
|
+
with<
|
|
61
|
+
T extends AnyTypes,
|
|
62
|
+
A extends AnyTypes
|
|
63
|
+
>(
|
|
64
|
+
op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>
|
|
65
|
+
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, A>>
|
|
66
|
+
|
|
67
|
+
with<
|
|
68
|
+
T extends AnyTypes,
|
|
69
|
+
A extends AnyTypes,
|
|
70
|
+
B extends AnyTypes
|
|
71
|
+
>(
|
|
72
|
+
op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
|
|
73
|
+
op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>
|
|
74
|
+
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, B>>
|
|
75
|
+
|
|
76
|
+
with<
|
|
77
|
+
T extends AnyTypes,
|
|
78
|
+
A extends AnyTypes,
|
|
79
|
+
B extends AnyTypes,
|
|
80
|
+
C extends AnyTypes
|
|
81
|
+
>(
|
|
82
|
+
op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
|
|
83
|
+
op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
84
|
+
op3: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>
|
|
85
|
+
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, C>>
|
|
86
|
+
|
|
87
|
+
with<
|
|
88
|
+
T extends AnyTypes,
|
|
89
|
+
A extends AnyTypes,
|
|
90
|
+
B extends AnyTypes,
|
|
91
|
+
C extends AnyTypes,
|
|
92
|
+
D extends AnyTypes
|
|
93
|
+
>(
|
|
94
|
+
op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
|
|
95
|
+
op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
96
|
+
op3: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
97
|
+
op4: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>
|
|
98
|
+
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, D>>
|
|
99
|
+
|
|
100
|
+
with<
|
|
101
|
+
T extends AnyTypes,
|
|
102
|
+
A extends AnyTypes,
|
|
103
|
+
B extends AnyTypes,
|
|
104
|
+
C extends AnyTypes,
|
|
105
|
+
D extends AnyTypes,
|
|
106
|
+
E extends AnyTypes
|
|
107
|
+
>(
|
|
108
|
+
op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
|
|
109
|
+
op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
110
|
+
op3: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
111
|
+
op4: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
112
|
+
op5: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>
|
|
113
|
+
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, E>>
|
|
114
|
+
|
|
115
|
+
with<
|
|
116
|
+
T extends AnyTypes,
|
|
117
|
+
A extends AnyTypes,
|
|
118
|
+
B extends AnyTypes,
|
|
119
|
+
C extends AnyTypes,
|
|
120
|
+
D extends AnyTypes,
|
|
121
|
+
E extends AnyTypes,
|
|
122
|
+
F extends AnyTypes
|
|
123
|
+
>(
|
|
124
|
+
op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
|
|
125
|
+
op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
126
|
+
op3: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
127
|
+
op4: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
128
|
+
op5: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
129
|
+
op6: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>
|
|
130
|
+
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, F>>
|
|
131
|
+
|
|
132
|
+
with<
|
|
133
|
+
T extends AnyTypes,
|
|
134
|
+
A extends AnyTypes,
|
|
135
|
+
B extends AnyTypes,
|
|
136
|
+
C extends AnyTypes,
|
|
137
|
+
D extends AnyTypes,
|
|
138
|
+
E extends AnyTypes,
|
|
139
|
+
F extends AnyTypes,
|
|
140
|
+
G extends AnyTypes
|
|
141
|
+
>(
|
|
142
|
+
op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
|
|
143
|
+
op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
144
|
+
op3: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
145
|
+
op4: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
146
|
+
op5: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
147
|
+
op6: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
148
|
+
op7: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>
|
|
149
|
+
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, G>>
|
|
150
|
+
|
|
151
|
+
with<
|
|
152
|
+
T extends AnyTypes,
|
|
153
|
+
A extends AnyTypes,
|
|
154
|
+
B extends AnyTypes,
|
|
155
|
+
C extends AnyTypes,
|
|
156
|
+
D extends AnyTypes,
|
|
157
|
+
E extends AnyTypes,
|
|
158
|
+
F extends AnyTypes,
|
|
159
|
+
G extends AnyTypes,
|
|
160
|
+
H extends AnyTypes
|
|
161
|
+
>(
|
|
162
|
+
op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
|
|
163
|
+
op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
164
|
+
op3: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
165
|
+
op4: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
166
|
+
op5: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
167
|
+
op6: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
168
|
+
op7: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
169
|
+
op8: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>
|
|
170
|
+
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, H>>
|
|
171
|
+
|
|
172
|
+
with<
|
|
173
|
+
T extends AnyTypes,
|
|
174
|
+
A extends AnyTypes,
|
|
175
|
+
B extends AnyTypes,
|
|
176
|
+
C extends AnyTypes,
|
|
177
|
+
D extends AnyTypes,
|
|
178
|
+
E extends AnyTypes,
|
|
179
|
+
F extends AnyTypes,
|
|
180
|
+
G extends AnyTypes,
|
|
181
|
+
H extends AnyTypes,
|
|
182
|
+
I extends AnyTypes
|
|
183
|
+
>(
|
|
184
|
+
op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
|
|
185
|
+
op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
186
|
+
op3: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
187
|
+
op4: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
188
|
+
op5: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
189
|
+
op6: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
190
|
+
op7: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
191
|
+
op8: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
192
|
+
op9: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>
|
|
193
|
+
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, I>>
|
|
194
|
+
|
|
195
|
+
with<
|
|
196
|
+
T extends AnyTypes,
|
|
197
|
+
A extends AnyTypes,
|
|
198
|
+
B extends AnyTypes,
|
|
199
|
+
C extends AnyTypes,
|
|
200
|
+
D extends AnyTypes,
|
|
201
|
+
E extends AnyTypes,
|
|
202
|
+
F extends AnyTypes,
|
|
203
|
+
G extends AnyTypes,
|
|
204
|
+
H extends AnyTypes,
|
|
205
|
+
I extends AnyTypes,
|
|
206
|
+
J extends AnyTypes
|
|
207
|
+
>(
|
|
208
|
+
op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
|
|
209
|
+
op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
210
|
+
op3: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
211
|
+
op4: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
212
|
+
op5: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
213
|
+
op6: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
214
|
+
op7: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
215
|
+
op8: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
216
|
+
op9: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
|
|
217
|
+
op10: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J>
|
|
218
|
+
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, J>>
|
|
219
|
+
}
|
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
import type { DeploymentElement, DeploymentRelation, Fqn } from '../types'
|
|
2
|
+
import type { AnyTypes, Invalid, Types } from './_types'
|
|
3
|
+
import type { Builder } from './Builder'
|
|
4
|
+
import type { AddDeploymentNode } from './Builder.deployment'
|
|
5
|
+
|
|
6
|
+
export interface DeploymentModelBuilder<T extends AnyTypes> {
|
|
7
|
+
addDeployment(node: DeploymentElement): Builder<T>
|
|
8
|
+
addDeploymentRelation(rel: Omit<DeploymentRelation, 'id'>): Builder<T>
|
|
9
|
+
/**
|
|
10
|
+
* Create a fully qualified name from an id (for nested models)
|
|
11
|
+
*/
|
|
12
|
+
fqn(id: string): Fqn
|
|
13
|
+
}
|
|
14
|
+
export function deployment<
|
|
15
|
+
A extends AnyTypes,
|
|
16
|
+
B extends AnyTypes
|
|
17
|
+
>(
|
|
18
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>
|
|
19
|
+
): (input: Builder<A>) => Builder<B>
|
|
20
|
+
export function deployment<
|
|
21
|
+
A extends AnyTypes,
|
|
22
|
+
B extends AnyTypes,
|
|
23
|
+
C extends AnyTypes
|
|
24
|
+
>(
|
|
25
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
26
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>
|
|
27
|
+
): (input: Builder<A>) => Builder<C>
|
|
28
|
+
export function deployment<
|
|
29
|
+
A extends AnyTypes,
|
|
30
|
+
B extends AnyTypes,
|
|
31
|
+
C extends AnyTypes,
|
|
32
|
+
D extends AnyTypes
|
|
33
|
+
>(
|
|
34
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
35
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
36
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>
|
|
37
|
+
): (input: Builder<A>) => Builder<D>
|
|
38
|
+
export function deployment<
|
|
39
|
+
A extends AnyTypes,
|
|
40
|
+
B extends AnyTypes,
|
|
41
|
+
C extends AnyTypes,
|
|
42
|
+
D extends AnyTypes,
|
|
43
|
+
E extends AnyTypes
|
|
44
|
+
>(
|
|
45
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
46
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
47
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
48
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>
|
|
49
|
+
): (input: Builder<A>) => Builder<E>
|
|
50
|
+
export function deployment<
|
|
51
|
+
A extends AnyTypes,
|
|
52
|
+
B extends AnyTypes,
|
|
53
|
+
C extends AnyTypes,
|
|
54
|
+
D extends AnyTypes,
|
|
55
|
+
E extends AnyTypes,
|
|
56
|
+
F extends AnyTypes
|
|
57
|
+
>(
|
|
58
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
59
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
60
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
61
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
62
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>
|
|
63
|
+
): (input: Builder<A>) => Builder<F>
|
|
64
|
+
export function deployment<
|
|
65
|
+
A extends AnyTypes,
|
|
66
|
+
B extends AnyTypes,
|
|
67
|
+
C extends AnyTypes,
|
|
68
|
+
D extends AnyTypes,
|
|
69
|
+
E extends AnyTypes,
|
|
70
|
+
F extends AnyTypes,
|
|
71
|
+
G extends AnyTypes
|
|
72
|
+
>(
|
|
73
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
74
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
75
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
76
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
77
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
78
|
+
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>
|
|
79
|
+
): (input: Builder<A>) => Builder<G>
|
|
80
|
+
export function deployment<
|
|
81
|
+
A extends AnyTypes,
|
|
82
|
+
B extends AnyTypes,
|
|
83
|
+
C extends AnyTypes,
|
|
84
|
+
D extends AnyTypes,
|
|
85
|
+
E extends AnyTypes,
|
|
86
|
+
F extends AnyTypes,
|
|
87
|
+
G extends AnyTypes,
|
|
88
|
+
H extends AnyTypes
|
|
89
|
+
>(
|
|
90
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
91
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
92
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
93
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
94
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
95
|
+
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
96
|
+
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>
|
|
97
|
+
): (input: Builder<A>) => Builder<H>
|
|
98
|
+
export function deployment<
|
|
99
|
+
A extends AnyTypes,
|
|
100
|
+
B extends AnyTypes,
|
|
101
|
+
C extends AnyTypes,
|
|
102
|
+
D extends AnyTypes,
|
|
103
|
+
E extends AnyTypes,
|
|
104
|
+
F extends AnyTypes,
|
|
105
|
+
G extends AnyTypes,
|
|
106
|
+
H extends AnyTypes,
|
|
107
|
+
I extends AnyTypes
|
|
108
|
+
>(
|
|
109
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
110
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
111
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
112
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
113
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
114
|
+
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
115
|
+
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
116
|
+
op8: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>
|
|
117
|
+
): (input: Builder<A>) => Builder<I>
|
|
118
|
+
export function deployment<
|
|
119
|
+
A extends AnyTypes,
|
|
120
|
+
B extends AnyTypes,
|
|
121
|
+
C extends AnyTypes,
|
|
122
|
+
D extends AnyTypes,
|
|
123
|
+
E extends AnyTypes,
|
|
124
|
+
F extends AnyTypes,
|
|
125
|
+
G extends AnyTypes,
|
|
126
|
+
H extends AnyTypes,
|
|
127
|
+
I extends AnyTypes,
|
|
128
|
+
J extends AnyTypes
|
|
129
|
+
>(
|
|
130
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
131
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
132
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
133
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
134
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
135
|
+
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
136
|
+
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
137
|
+
op8: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
|
|
138
|
+
op9: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J>
|
|
139
|
+
): (input: Builder<A>) => Builder<J>
|
|
140
|
+
export function deployment<
|
|
141
|
+
A extends AnyTypes,
|
|
142
|
+
B extends AnyTypes,
|
|
143
|
+
C extends AnyTypes,
|
|
144
|
+
D extends AnyTypes,
|
|
145
|
+
E extends AnyTypes,
|
|
146
|
+
F extends AnyTypes,
|
|
147
|
+
G extends AnyTypes,
|
|
148
|
+
H extends AnyTypes,
|
|
149
|
+
I extends AnyTypes,
|
|
150
|
+
J extends AnyTypes,
|
|
151
|
+
K extends AnyTypes
|
|
152
|
+
>(
|
|
153
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
154
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
155
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
156
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
157
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
158
|
+
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
159
|
+
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
160
|
+
op8: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
|
|
161
|
+
op9: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J>,
|
|
162
|
+
op10: (input: DeploymentModelBuilder<J>) => DeploymentModelBuilder<K>
|
|
163
|
+
): (input: Builder<A>) => Builder<K>
|
|
164
|
+
export function deployment<
|
|
165
|
+
A extends AnyTypes,
|
|
166
|
+
B extends AnyTypes,
|
|
167
|
+
C extends AnyTypes,
|
|
168
|
+
D extends AnyTypes,
|
|
169
|
+
E extends AnyTypes,
|
|
170
|
+
F extends AnyTypes,
|
|
171
|
+
G extends AnyTypes,
|
|
172
|
+
H extends AnyTypes,
|
|
173
|
+
I extends AnyTypes,
|
|
174
|
+
J extends AnyTypes,
|
|
175
|
+
K extends AnyTypes,
|
|
176
|
+
L extends AnyTypes
|
|
177
|
+
>(
|
|
178
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
179
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
180
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
181
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
182
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
183
|
+
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
184
|
+
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
185
|
+
op8: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
|
|
186
|
+
op9: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J>,
|
|
187
|
+
op10: (input: DeploymentModelBuilder<J>) => DeploymentModelBuilder<K>,
|
|
188
|
+
op11: (input: DeploymentModelBuilder<K>) => DeploymentModelBuilder<L>
|
|
189
|
+
): (input: Builder<A>) => Builder<L>
|
|
190
|
+
export function deployment<
|
|
191
|
+
A extends AnyTypes,
|
|
192
|
+
B extends AnyTypes,
|
|
193
|
+
C extends AnyTypes,
|
|
194
|
+
D extends AnyTypes,
|
|
195
|
+
E extends AnyTypes,
|
|
196
|
+
F extends AnyTypes,
|
|
197
|
+
G extends AnyTypes,
|
|
198
|
+
H extends AnyTypes,
|
|
199
|
+
I extends AnyTypes,
|
|
200
|
+
J extends AnyTypes,
|
|
201
|
+
K extends AnyTypes,
|
|
202
|
+
L extends AnyTypes,
|
|
203
|
+
M extends AnyTypes
|
|
204
|
+
>(
|
|
205
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
206
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
207
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
208
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
209
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
210
|
+
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
211
|
+
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
212
|
+
op8: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
|
|
213
|
+
op9: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J>,
|
|
214
|
+
op10: (input: DeploymentModelBuilder<J>) => DeploymentModelBuilder<K>,
|
|
215
|
+
op11: (input: DeploymentModelBuilder<K>) => DeploymentModelBuilder<L>,
|
|
216
|
+
op12: (input: DeploymentModelBuilder<L>) => DeploymentModelBuilder<M>
|
|
217
|
+
): (input: Builder<A>) => Builder<M>
|
|
218
|
+
export function deployment<
|
|
219
|
+
A extends AnyTypes,
|
|
220
|
+
B extends AnyTypes,
|
|
221
|
+
C extends AnyTypes,
|
|
222
|
+
D extends AnyTypes,
|
|
223
|
+
E extends AnyTypes,
|
|
224
|
+
F extends AnyTypes,
|
|
225
|
+
G extends AnyTypes,
|
|
226
|
+
H extends AnyTypes,
|
|
227
|
+
I extends AnyTypes,
|
|
228
|
+
J extends AnyTypes,
|
|
229
|
+
K extends AnyTypes,
|
|
230
|
+
L extends AnyTypes,
|
|
231
|
+
M extends AnyTypes,
|
|
232
|
+
N extends AnyTypes
|
|
233
|
+
>(
|
|
234
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
235
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
236
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
237
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
238
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
239
|
+
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
240
|
+
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
241
|
+
op8: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
|
|
242
|
+
op9: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J>,
|
|
243
|
+
op10: (input: DeploymentModelBuilder<J>) => DeploymentModelBuilder<K>,
|
|
244
|
+
op11: (input: DeploymentModelBuilder<K>) => DeploymentModelBuilder<L>,
|
|
245
|
+
op12: (input: DeploymentModelBuilder<L>) => DeploymentModelBuilder<M>,
|
|
246
|
+
op13: (input: DeploymentModelBuilder<M>) => DeploymentModelBuilder<N>
|
|
247
|
+
): (input: Builder<A>) => Builder<N>
|
|
248
|
+
export function deployment<
|
|
249
|
+
A extends AnyTypes,
|
|
250
|
+
B extends AnyTypes,
|
|
251
|
+
C extends AnyTypes,
|
|
252
|
+
D extends AnyTypes,
|
|
253
|
+
E extends AnyTypes,
|
|
254
|
+
F extends AnyTypes,
|
|
255
|
+
G extends AnyTypes,
|
|
256
|
+
H extends AnyTypes,
|
|
257
|
+
I extends AnyTypes,
|
|
258
|
+
J extends AnyTypes,
|
|
259
|
+
K extends AnyTypes,
|
|
260
|
+
L extends AnyTypes,
|
|
261
|
+
M extends AnyTypes,
|
|
262
|
+
N extends AnyTypes,
|
|
263
|
+
O extends AnyTypes
|
|
264
|
+
>(
|
|
265
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
266
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
267
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
268
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
269
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
270
|
+
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
271
|
+
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
272
|
+
op8: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
|
|
273
|
+
op9: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J>,
|
|
274
|
+
op10: (input: DeploymentModelBuilder<J>) => DeploymentModelBuilder<K>,
|
|
275
|
+
op11: (input: DeploymentModelBuilder<K>) => DeploymentModelBuilder<L>,
|
|
276
|
+
op12: (input: DeploymentModelBuilder<L>) => DeploymentModelBuilder<M>,
|
|
277
|
+
op13: (input: DeploymentModelBuilder<M>) => DeploymentModelBuilder<N>,
|
|
278
|
+
op14: (input: DeploymentModelBuilder<N>) => DeploymentModelBuilder<O>
|
|
279
|
+
): (input: Builder<A>) => Builder<O>
|
|
280
|
+
export function deployment<
|
|
281
|
+
A extends AnyTypes,
|
|
282
|
+
B extends AnyTypes,
|
|
283
|
+
C extends AnyTypes,
|
|
284
|
+
D extends AnyTypes,
|
|
285
|
+
E extends AnyTypes,
|
|
286
|
+
F extends AnyTypes,
|
|
287
|
+
G extends AnyTypes,
|
|
288
|
+
H extends AnyTypes,
|
|
289
|
+
I extends AnyTypes,
|
|
290
|
+
J extends AnyTypes,
|
|
291
|
+
K extends AnyTypes,
|
|
292
|
+
L extends AnyTypes,
|
|
293
|
+
M extends AnyTypes,
|
|
294
|
+
N extends AnyTypes,
|
|
295
|
+
O extends AnyTypes,
|
|
296
|
+
P extends AnyTypes
|
|
297
|
+
>(
|
|
298
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
299
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
300
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
301
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
302
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
303
|
+
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
304
|
+
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
305
|
+
op8: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
|
|
306
|
+
op9: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J>,
|
|
307
|
+
op10: (input: DeploymentModelBuilder<J>) => DeploymentModelBuilder<K>,
|
|
308
|
+
op11: (input: DeploymentModelBuilder<K>) => DeploymentModelBuilder<L>,
|
|
309
|
+
op12: (input: DeploymentModelBuilder<L>) => DeploymentModelBuilder<M>,
|
|
310
|
+
op13: (input: DeploymentModelBuilder<M>) => DeploymentModelBuilder<N>,
|
|
311
|
+
op14: (input: DeploymentModelBuilder<N>) => DeploymentModelBuilder<O>,
|
|
312
|
+
op15: (input: DeploymentModelBuilder<O>) => DeploymentModelBuilder<P>
|
|
313
|
+
): (input: Builder<A>) => Builder<P>
|
|
314
|
+
|
|
315
|
+
export function deployment(...ops: any[]) {
|
|
316
|
+
return (input: Builder<any>) => {
|
|
317
|
+
let builder = input
|
|
318
|
+
for (const op of ops) {
|
|
319
|
+
builder = op(builder)
|
|
320
|
+
}
|
|
321
|
+
return builder
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
export type AddDeploymentRelation<Props = unknown> = <
|
|
326
|
+
T extends AnyTypes,
|
|
327
|
+
Source extends string & T['DeploymentFqn'],
|
|
328
|
+
Target extends string & T['DeploymentFqn']
|
|
329
|
+
>(
|
|
330
|
+
source: Source,
|
|
331
|
+
target: Target,
|
|
332
|
+
titleOrProps?: string | Props
|
|
333
|
+
) => (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<T>
|
|
334
|
+
|
|
335
|
+
export type AddDeployedInstance<Props = unknown> = <
|
|
336
|
+
const Id extends string,
|
|
337
|
+
T extends AnyTypes,
|
|
338
|
+
To extends string & T['Fqn']
|
|
339
|
+
>(
|
|
340
|
+
id: Id,
|
|
341
|
+
to: To,
|
|
342
|
+
titleOrProps?: string | Props | undefined
|
|
343
|
+
) => (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<Types.AddDeploymentFqn<T, Id>>
|
|
344
|
+
|
|
345
|
+
type AddDeploymentNodeHelper<T = unknown> = <const Id extends string>(
|
|
346
|
+
id: Id,
|
|
347
|
+
titleOrProps?: string | T
|
|
348
|
+
) => AddDeploymentNode<Id>
|
|
349
|
+
|
|
350
|
+
export type AddDeploymentNodeHelpers<T extends AnyTypes> = T extends
|
|
351
|
+
Types<any, any, any, any, any, any, infer Kinds extends string, any> ? {
|
|
352
|
+
[Kind in Kinds]: AddDeploymentNodeHelper<T['NewDeploymentNodeProps']>
|
|
353
|
+
}
|
|
354
|
+
: Invalid<'No Deployment Kinds'>
|
|
355
|
+
|
|
356
|
+
export type DeloymentModelHelpers<T extends AnyTypes> = AddDeploymentNodeHelpers<T> & {
|
|
357
|
+
instanceOf: AddDeployedInstance<T['NewDeploymentNodeProps']>
|
|
358
|
+
rel: AddDeploymentRelation<T['NewRelationshipProps']>
|
|
359
|
+
deployment: typeof deployment
|
|
360
|
+
}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
import type { AnyTypes,
|
|
1
|
+
import type { AnyTypes, Types, TypesNested } from './_types'
|
|
2
2
|
import type { ModelBuilder } from './Builder.model'
|
|
3
3
|
|
|
4
|
-
type ToNested<T, Id extends string> = T extends TypesNested<infer P, any, infer F, any, any, any, any
|
|
4
|
+
type ToNested<T, Id extends string> = T extends TypesNested<infer P, any, infer F, any, any, any, any, any, any>
|
|
5
|
+
? TypesNested<
|
|
5
6
|
`${P}.${Id}`,
|
|
6
7
|
T['ElementKind'],
|
|
7
8
|
`${P}.${Id}` | F,
|
|
8
9
|
T['ViewId'],
|
|
9
10
|
T['RelationshipKind'],
|
|
10
11
|
T['Tag'],
|
|
11
|
-
T['MetadataKey']
|
|
12
|
+
T['MetadataKey'],
|
|
13
|
+
T['DeploymentKind'],
|
|
14
|
+
T['DeploymentFqn']
|
|
12
15
|
>
|
|
13
16
|
: T extends AnyTypes ? TypesNested<
|
|
14
17
|
Id,
|
|
@@ -17,19 +20,23 @@ type ToNested<T, Id extends string> = T extends TypesNested<infer P, any, infer
|
|
|
17
20
|
T['ViewId'],
|
|
18
21
|
T['RelationshipKind'],
|
|
19
22
|
T['Tag'],
|
|
20
|
-
T['MetadataKey']
|
|
23
|
+
T['MetadataKey'],
|
|
24
|
+
T['DeploymentKind'],
|
|
25
|
+
T['DeploymentFqn']
|
|
21
26
|
>
|
|
22
27
|
: never
|
|
23
28
|
|
|
24
|
-
type FromNested<T extends AnyTypes, N> = N extends TypesNested<any, any, infer F, any, any, any, any>
|
|
25
|
-
? T extends TypesNested<infer P, any, any, any, any, any, any> ? TypesNested<
|
|
29
|
+
type FromNested<T extends AnyTypes, N> = N extends TypesNested<any, any, infer F, any, any, any, any, any, any>
|
|
30
|
+
? T extends TypesNested<infer P, any, any, any, any, any, any, any, any> ? TypesNested<
|
|
26
31
|
P,
|
|
27
32
|
T['ElementKind'],
|
|
28
33
|
F,
|
|
29
34
|
T['ViewId'],
|
|
30
35
|
T['RelationshipKind'],
|
|
31
36
|
T['Tag'],
|
|
32
|
-
T['MetadataKey']
|
|
37
|
+
T['MetadataKey'],
|
|
38
|
+
T['DeploymentKind'],
|
|
39
|
+
T['DeploymentFqn']
|
|
33
40
|
>
|
|
34
41
|
: T extends AnyTypes ? Types<
|
|
35
42
|
T['ElementKind'],
|
|
@@ -37,7 +44,9 @@ type FromNested<T extends AnyTypes, N> = N extends TypesNested<any, any, infer F
|
|
|
37
44
|
T['ViewId'],
|
|
38
45
|
T['RelationshipKind'],
|
|
39
46
|
T['Tag'],
|
|
40
|
-
T['MetadataKey']
|
|
47
|
+
T['MetadataKey'],
|
|
48
|
+
T['DeploymentKind'],
|
|
49
|
+
T['DeploymentFqn']
|
|
41
50
|
>
|
|
42
51
|
: never
|
|
43
52
|
: never
|
|
@@ -208,14 +217,3 @@ export interface AddElement<Id extends string> {
|
|
|
208
217
|
op10: (input: ModelBuilder<I>) => ModelBuilder<J>
|
|
209
218
|
): (builder: ModelBuilder<T>) => ModelBuilder<FromNested<T, J>>
|
|
210
219
|
}
|
|
211
|
-
|
|
212
|
-
type AddElementHelper<T = unknown> = <const Id extends string>(
|
|
213
|
-
id: Id,
|
|
214
|
-
titleOrProps?: string | T
|
|
215
|
-
) => AddElement<Id>
|
|
216
|
-
|
|
217
|
-
export type AddElementHelpers<T extends AnyTypes> = T extends Types<infer Kinds extends string, any, any, any, any, any>
|
|
218
|
-
? {
|
|
219
|
-
[Kind in Kinds]: AddElementHelper<T['NewElementProps']>
|
|
220
|
-
}
|
|
221
|
-
: Invalid<'No Element Kinds'>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Element, Fqn, Relation } from '../types'
|
|
2
|
-
import type { AnyTypes, AnyTypesNested,
|
|
2
|
+
import type { AnyTypes, AnyTypesNested, Invalid, Types } from './_types'
|
|
3
3
|
import type { Builder } from './Builder'
|
|
4
|
-
import type {
|
|
4
|
+
import type { AddElement } from './Builder.element'
|
|
5
5
|
|
|
6
6
|
export interface ModelBuilder<T extends AnyTypes> {
|
|
7
7
|
addElement(element: Element): Builder<T>
|
|
@@ -339,6 +339,17 @@ export type NestedRelationshipHelper<Props = unknown> = <T extends AnyTypesNeste
|
|
|
339
339
|
titleOrProps?: string | Props
|
|
340
340
|
) => (builder: ModelBuilder<T>) => ModelBuilder<T>
|
|
341
341
|
|
|
342
|
+
type AddElementHelper<T = unknown> = <const Id extends string>(
|
|
343
|
+
id: Id,
|
|
344
|
+
titleOrProps?: string | T
|
|
345
|
+
) => AddElement<Id>
|
|
346
|
+
|
|
347
|
+
export type AddElementHelpers<T extends AnyTypes> = T extends
|
|
348
|
+
Types<infer Kinds extends string, any, any, any, any, any, any, any> ? {
|
|
349
|
+
[Kind in Kinds]: AddElementHelper<T['NewElementProps']>
|
|
350
|
+
}
|
|
351
|
+
: Invalid<'No Element Kinds'>
|
|
352
|
+
|
|
342
353
|
export type ModelHelpers<T extends AnyTypes> = AddElementHelpers<T> & {
|
|
343
354
|
model: typeof model
|
|
344
355
|
rel: RelationshipHelper<T['NewRelationshipProps']>
|