@likec4/core 1.18.0 → 1.19.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/LICENSE +1 -1
- package/dist/builder/index.d.mts +502 -0
- package/dist/builder/index.d.ts +502 -0
- package/dist/builder/index.js +871 -0
- package/dist/compute-view/index.d.mts +9 -78
- package/dist/compute-view/index.d.ts +9 -78
- package/dist/compute-view/index.js +78 -0
- package/dist/index.d.mts +9 -730
- package/dist/index.d.ts +9 -730
- package/dist/{index.mjs → index.js} +7 -784
- package/dist/model/index.d.mts +218 -606
- package/dist/model/index.d.ts +218 -606
- package/dist/model/index.js +1 -0
- package/dist/shared/chunk-RAAYCPUM.M-JWF7SS.js +21 -0
- package/dist/shared/core.BIfgabEw.d.ts +719 -0
- package/dist/shared/core.BZ9Msq7w.d.mts +719 -0
- package/dist/shared/{core.DMYY7C8s.d.mts → core.C05RDLhi.d.ts} +179 -230
- package/dist/shared/{core.DMYY7C8s.d.ts → core.CmYMqgha.d.mts} +179 -230
- package/dist/shared/core.D6-fWbM3.d.ts +127 -0
- package/dist/shared/core.D74xkKkG.d.mts +148 -0
- package/dist/shared/core.D74xkKkG.d.ts +148 -0
- package/dist/shared/core.sLaWHBjR.d.mts +127 -0
- package/dist/shared/index.-BdzdI2C.js +7443 -0
- package/dist/shared/object_hash.CE_oF3I3.js +1222 -0
- package/dist/shared/view.CyZrG8BJ.js +354 -0
- package/dist/types/index.d.mts +4 -2
- package/dist/types/index.d.ts +4 -2
- package/dist/types/index.js +20 -0
- package/dist/utils/index.d.mts +404 -0
- package/dist/utils/index.d.ts +404 -0
- package/dist/utils/index.js +330 -0
- package/package.json +47 -33
- package/src/builder/Builder-style1.test-d.ts +190 -0
- package/src/builder/Builder-style2.test-d.ts +175 -0
- package/src/builder/Builder.deployment.ts +25 -20
- package/src/builder/Builder.deploymentModel.ts +80 -55
- package/src/builder/Builder.element.ts +2 -0
- package/src/builder/Builder.model.ts +57 -43
- package/src/builder/Builder.ts +412 -431
- package/src/builder/Builder.view-common.ts +234 -0
- package/src/builder/Builder.view-deployment.ts +135 -0
- package/src/builder/Builder.view-element.ts +189 -0
- package/src/builder/Builder.views.ts +109 -33
- package/src/builder/Builder.with.ts +475 -0
- package/src/builder/__snapshots__/Builder-style1.spec.ts.snap +374 -0
- package/src/builder/__snapshots__/Builder-style2.spec.ts.snap +183 -0
- package/src/builder/__snapshots__/Builder.spec.ts.snap +374 -0
- package/src/builder/_types.ts +28 -5
- package/src/builder/index.ts +10 -4
- package/src/colors/index.ts +2 -2
- package/src/compute-view/compute-view.ts +45 -54
- package/src/compute-view/deployment-view/__test__/TestHelper.ts +236 -0
- package/src/compute-view/deployment-view/__test__/fixture.ts +50 -62
- package/src/compute-view/deployment-view/_types.ts +26 -18
- package/src/compute-view/deployment-view/clean-connections.ts +173 -164
- package/src/compute-view/deployment-view/compute.ts +51 -37
- package/src/compute-view/deployment-view/memory/index.ts +9 -0
- package/src/compute-view/deployment-view/memory/memory.ts +97 -0
- package/src/compute-view/deployment-view/predicates/elements.ts +144 -0
- package/src/compute-view/deployment-view/predicates/relation-direct.ts +183 -76
- package/src/compute-view/deployment-view/predicates/relation-in-out.ts +38 -20
- package/src/compute-view/deployment-view/predicates/relation-incoming.ts +72 -23
- package/src/compute-view/deployment-view/predicates/relation-outgoing.ts +61 -22
- package/src/compute-view/deployment-view/predicates/wildcard.ts +15 -15
- package/src/compute-view/deployment-view/stages/stage-exclude.ts +5 -0
- package/src/compute-view/deployment-view/stages/stage-final.ts +245 -0
- package/src/compute-view/deployment-view/stages/stage-include.ts +95 -0
- package/src/compute-view/deployment-view/utils.ts +95 -31
- package/src/compute-view/dynamic-view/__test__/fixture.ts +4 -4
- package/src/compute-view/dynamic-view/compute.ts +59 -45
- package/src/compute-view/element-view/__test__/TestHelper.ts +258 -0
- package/src/compute-view/element-view/__test__/__snapshots__/legacy.spec.ts.snap +64 -62
- package/src/compute-view/element-view/__test__/fixture.ts +147 -117
- package/src/compute-view/element-view/_types.ts +48 -0
- package/src/compute-view/element-view/clean-connections.ts +113 -0
- package/src/compute-view/element-view/compute.ts +264 -683
- package/src/compute-view/element-view/memory/NodeGroup.ts +31 -0
- package/src/compute-view/element-view/memory/index.ts +10 -0
- package/src/compute-view/element-view/memory/memory.ts +177 -0
- package/src/compute-view/element-view/memory/stage-exclude.ts +59 -0
- package/src/compute-view/element-view/memory/stage-final.ts +129 -0
- package/src/compute-view/element-view/memory/stage-include.ts +128 -0
- package/src/compute-view/element-view/predicates/_utils.ts +86 -0
- package/src/compute-view/element-view/predicates/element-expand.ts +33 -0
- package/src/compute-view/element-view/predicates/element-kind-tag.ts +26 -0
- package/src/compute-view/element-view/predicates/element-ref.ts +37 -0
- package/src/compute-view/element-view/predicates/relation-direct.ts +309 -0
- package/src/compute-view/element-view/predicates/relation-in-out.ts +66 -0
- package/src/compute-view/element-view/predicates/relation-in.ts +118 -0
- package/src/compute-view/element-view/predicates/relation-out.ts +116 -0
- package/src/compute-view/element-view/predicates/wildcard.ts +88 -0
- package/src/compute-view/element-view/utils.ts +59 -0
- package/src/compute-view/index.ts +3 -4
- package/src/compute-view/memory/AbstractMemory.ts +45 -0
- package/src/compute-view/memory/AbstractStageExclude.ts +216 -0
- package/src/compute-view/memory/AbstractStageInclude.ts +200 -0
- package/src/compute-view/memory/_types.ts +147 -0
- package/src/compute-view/memory/index.ts +5 -0
- package/src/compute-view/memory/ops.ts +43 -0
- package/src/compute-view/utils/buildComputedNodes.ts +4 -4
- package/src/compute-view/utils/elementExpressionToPredicate.ts +1 -3
- package/src/compute-view/utils/link-nodes-with-edges.ts +3 -7
- package/src/compute-view/utils/{derive-edge-props-from-relationships.ts → merge-props-from-relationships.ts} +54 -23
- package/src/compute-view/utils/relationExpressionToPredicates.ts +2 -2
- package/src/compute-view/utils/resolve-extended-views.ts +44 -40
- package/src/compute-view/utils/resolve-global-rules.ts +6 -6
- package/src/compute-view/utils/topological-sort.ts +167 -71
- package/src/compute-view/utils/with-readable-edges.ts +14 -9
- package/src/index.ts +22 -16
- package/src/model/DeploymentElementModel.ts +150 -85
- package/src/model/DeploymentModel.ts +27 -21
- package/src/model/ElementModel.ts +51 -25
- package/src/model/LikeC4Model.test-d.ts +4 -3
- package/src/model/LikeC4Model.ts +98 -42
- package/src/model/RelationModel.ts +5 -4
- package/src/model/__test__/fixture.ts +5 -9
- package/src/model/connection/Connection.ts +72 -0
- package/src/model/connection/deployment/DeploymentConnectionModel.ts +178 -0
- package/src/model/connection/{deployment.ts → deployment/find.ts} +14 -18
- package/src/model/connection/deployment/index.ts +8 -0
- package/src/model/connection/index.ts +22 -0
- package/src/model/connection/model/ConnectionModel.ts +157 -0
- package/src/model/connection/{model.ts → model/find.ts} +43 -49
- package/src/model/connection/model/index.ts +8 -0
- package/src/model/connection/ops.ts +274 -0
- package/src/model/guards.ts +9 -0
- package/src/model/index.ts +45 -3
- package/src/model/types.ts +35 -18
- package/src/model/view/EdgeModel.ts +6 -6
- package/src/model/view/LikeC4ViewModel.ts +14 -8
- package/src/model/view/NodeModel.ts +6 -5
- package/src/types/_common.ts +53 -1
- package/src/types/deployments.ts +88 -156
- package/src/types/element.ts +2 -2
- package/src/types/expression-v2.ts +172 -0
- package/src/types/expression.ts +9 -5
- package/src/types/global.ts +3 -3
- package/src/types/index.ts +220 -13
- package/src/types/model.ts +28 -24
- package/src/types/operators.ts +1 -1
- package/src/types/relation.ts +14 -10
- package/src/types/theme.ts +0 -1
- package/src/types/view.ts +20 -18
- package/src/utils/const.ts +1 -0
- package/src/utils/fqn.ts +140 -49
- package/src/utils/getOrCreate.ts +1 -1
- package/src/utils/index.ts +74 -9
- package/src/utils/iterable/_types.ts +5 -0
- package/src/utils/iterable/filter.ts +55 -0
- package/src/utils/iterable/flat.ts +17 -0
- package/src/utils/iterable/index.ts +12 -0
- package/src/utils/iterable/map.ts +40 -0
- package/src/utils/iterable/reduce.ts +24 -0
- package/src/utils/iterable/some.ts +36 -0
- package/src/utils/iterable/to.ts +19 -0
- package/src/utils/iterable/unique.ts +29 -0
- package/src/utils/relations.ts +3 -64
- package/src/utils/set.ts +11 -9
- package/src/utils/string-hash.ts +1 -1
- package/dist/compute-view/index.mjs +0 -79
- package/dist/model/index.mjs +0 -2
- package/dist/shared/core.BBgiAAv1.mjs +0 -144
- package/dist/shared/core.BPyJvuMU.mjs +0 -2420
- package/dist/shared/core.BQ4AbfvB.mjs +0 -9228
- package/dist/shared/core.k12s_keD.mjs +0 -203
- package/dist/types/index.mjs +0 -21
- package/src/builder/Builder.test-d.ts +0 -124
- package/src/builder/Builder.view.ts +0 -543
- package/src/compute-view/LikeC4ModelGraph.ts +0 -330
- package/src/compute-view/deployment-view/Memory.ts +0 -108
- package/src/compute-view/deployment-view/Stage.ts +0 -145
- package/src/compute-view/deployment-view/predicates/deployment-ref.ts +0 -146
- package/src/compute-view/element-view/predicates.ts +0 -517
- package/src/compute-view/utils/sortNodes.ts +0 -101
- package/src/model/connection/ConnectionModel.ts +0 -94
- package/src/model/connection/DeploymentConnectionModel.ts +0 -99
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { expectTypeOf, test } from 'vitest'
|
|
2
|
+
import type { LikeC4Model } from '../model/LikeC4Model'
|
|
3
|
+
import type { ParsedLikeC4Model } from '../types'
|
|
4
|
+
import { Builder } from './Builder'
|
|
5
|
+
|
|
6
|
+
test('Builder types - style 2', () => {
|
|
7
|
+
const m = Builder
|
|
8
|
+
.specification({
|
|
9
|
+
elements: {
|
|
10
|
+
actor: {
|
|
11
|
+
style: {
|
|
12
|
+
shape: 'person',
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
system: {},
|
|
16
|
+
component: {},
|
|
17
|
+
},
|
|
18
|
+
deployments: {
|
|
19
|
+
env: {},
|
|
20
|
+
vm: {},
|
|
21
|
+
},
|
|
22
|
+
relationships: {
|
|
23
|
+
like: {},
|
|
24
|
+
dislike: {},
|
|
25
|
+
},
|
|
26
|
+
tags: ['tag1', 'tag2', 'tag1'],
|
|
27
|
+
})
|
|
28
|
+
.model(({ actor, system, component, relTo }, _) =>
|
|
29
|
+
_(
|
|
30
|
+
actor('alice'),
|
|
31
|
+
actor('bob'),
|
|
32
|
+
system('cloud').with(
|
|
33
|
+
component('backend').with(
|
|
34
|
+
component('api'),
|
|
35
|
+
component('db'),
|
|
36
|
+
),
|
|
37
|
+
component('frontend').with(
|
|
38
|
+
// @ts-expect-error
|
|
39
|
+
relTo('non-existing'),
|
|
40
|
+
),
|
|
41
|
+
),
|
|
42
|
+
)
|
|
43
|
+
)
|
|
44
|
+
.deployment(({ env, vm, instanceOf }, _) =>
|
|
45
|
+
_(
|
|
46
|
+
env('prod').with(
|
|
47
|
+
vm('vm1'),
|
|
48
|
+
vm('vm2'),
|
|
49
|
+
),
|
|
50
|
+
env('dev').with(
|
|
51
|
+
vm('vm1'),
|
|
52
|
+
instanceOf('cloud.backend.api'),
|
|
53
|
+
instanceOf(
|
|
54
|
+
'wrong',
|
|
55
|
+
// @ts-expect-error
|
|
56
|
+
'non-existing',
|
|
57
|
+
),
|
|
58
|
+
vm('vm2'),
|
|
59
|
+
),
|
|
60
|
+
)
|
|
61
|
+
)
|
|
62
|
+
// Test Element View
|
|
63
|
+
.views(({ view, $include, $style }, _) =>
|
|
64
|
+
_(
|
|
65
|
+
// rules inside
|
|
66
|
+
view(
|
|
67
|
+
'view',
|
|
68
|
+
// @ts-expect-error
|
|
69
|
+
$include('wrong'),
|
|
70
|
+
// @ts-expect-error #tag22 is not defined
|
|
71
|
+
$include('cloud.backend', {
|
|
72
|
+
where: 'tag is #tag22',
|
|
73
|
+
}),
|
|
74
|
+
),
|
|
75
|
+
// using with
|
|
76
|
+
view('view').with(
|
|
77
|
+
// @ts-expect-error
|
|
78
|
+
$include('wrong'),
|
|
79
|
+
// @ts-expect-error
|
|
80
|
+
$style('wrong', { color: 'red' }),
|
|
81
|
+
),
|
|
82
|
+
)
|
|
83
|
+
)
|
|
84
|
+
// Test Element View Of
|
|
85
|
+
.views(({ viewOf, $rules, $include }, _) =>
|
|
86
|
+
_(
|
|
87
|
+
viewOf('view-of', 'cloud.backend'),
|
|
88
|
+
// @ts-expect-error
|
|
89
|
+
viewOf('view-of', 'wrong'),
|
|
90
|
+
viewOf(
|
|
91
|
+
'view-of',
|
|
92
|
+
'cloud.backend.api',
|
|
93
|
+
$rules(
|
|
94
|
+
// @ts-expect-error
|
|
95
|
+
$include('wrong'),
|
|
96
|
+
),
|
|
97
|
+
),
|
|
98
|
+
viewOf(
|
|
99
|
+
'view-of',
|
|
100
|
+
'cloud.backend.api',
|
|
101
|
+
$rules(
|
|
102
|
+
// @ts-expect-error
|
|
103
|
+
$include('wrong'),
|
|
104
|
+
),
|
|
105
|
+
).with(
|
|
106
|
+
$include('* -> alice.*'),
|
|
107
|
+
// @ts-expect-error
|
|
108
|
+
$include('wrong'),
|
|
109
|
+
),
|
|
110
|
+
viewOf(
|
|
111
|
+
'view-of',
|
|
112
|
+
// @ts-expect-error
|
|
113
|
+
'cloud.backensd.api',
|
|
114
|
+
'Title',
|
|
115
|
+
).with(
|
|
116
|
+
$include('* -> alice.*'),
|
|
117
|
+
// @ts-expect-error
|
|
118
|
+
$include('wrong'),
|
|
119
|
+
),
|
|
120
|
+
)
|
|
121
|
+
)
|
|
122
|
+
// Test Deployment View
|
|
123
|
+
.views(({ deploymentView, $rules, $include }, _) =>
|
|
124
|
+
_(
|
|
125
|
+
deploymentView(
|
|
126
|
+
'deployment',
|
|
127
|
+
$rules(
|
|
128
|
+
// @ts-expect-error
|
|
129
|
+
$include('pr'),
|
|
130
|
+
),
|
|
131
|
+
),
|
|
132
|
+
deploymentView(
|
|
133
|
+
'deployment',
|
|
134
|
+
'Title',
|
|
135
|
+
$rules(
|
|
136
|
+
// @ts-expect-error
|
|
137
|
+
$include('pr'),
|
|
138
|
+
),
|
|
139
|
+
),
|
|
140
|
+
deploymentView('deployment').with(
|
|
141
|
+
// @ts-expect-error
|
|
142
|
+
$include('pr'),
|
|
143
|
+
),
|
|
144
|
+
)
|
|
145
|
+
)
|
|
146
|
+
|
|
147
|
+
expectTypeOf(m.Types.Fqn).toEqualTypeOf(
|
|
148
|
+
'' as 'alice' | 'bob' | 'cloud' | 'cloud.backend' | 'cloud.backend.api' | 'cloud.backend.db' | 'cloud.frontend',
|
|
149
|
+
)
|
|
150
|
+
expectTypeOf(m.Types.ViewId).toEqualTypeOf(
|
|
151
|
+
'' as 'view' | 'view-of' | 'deployment',
|
|
152
|
+
)
|
|
153
|
+
expectTypeOf(m.Types.DeploymentFqn).toEqualTypeOf(
|
|
154
|
+
'' as 'prod' | 'dev' | 'prod.vm1' | 'prod.vm2' | 'dev.vm1' | 'dev.vm2' | 'dev.api' | 'dev.wrong',
|
|
155
|
+
)
|
|
156
|
+
|
|
157
|
+
expectTypeOf(m.build()).toEqualTypeOf(
|
|
158
|
+
{} as ParsedLikeC4Model<
|
|
159
|
+
'actor' | 'system' | 'component',
|
|
160
|
+
'like' | 'dislike',
|
|
161
|
+
'tag1' | 'tag2',
|
|
162
|
+
'alice' | 'bob' | 'cloud' | 'cloud.backend' | 'cloud.backend.api' | 'cloud.backend.db' | 'cloud.frontend',
|
|
163
|
+
'view' | 'view-of' | 'deployment',
|
|
164
|
+
'prod' | 'dev' | 'prod.vm1' | 'prod.vm2' | 'dev.vm1' | 'dev.vm2' | 'dev.api' | 'dev.wrong'
|
|
165
|
+
>,
|
|
166
|
+
)
|
|
167
|
+
|
|
168
|
+
expectTypeOf(m.toLikeC4Model()).toEqualTypeOf(
|
|
169
|
+
{} as LikeC4Model.Computed<
|
|
170
|
+
'alice' | 'bob' | 'cloud' | 'cloud.backend' | 'cloud.backend.api' | 'cloud.backend.db' | 'cloud.frontend',
|
|
171
|
+
'prod' | 'dev' | 'prod.vm1' | 'prod.vm2' | 'dev.vm1' | 'dev.vm2' | 'dev.api' | 'dev.wrong',
|
|
172
|
+
'view' | 'view-of' | 'deployment'
|
|
173
|
+
>,
|
|
174
|
+
)
|
|
175
|
+
})
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AnyTypes, Types, TypesNested } from './_types'
|
|
2
2
|
import type { DeploymentModelBuilder } from './Builder.deploymentModel'
|
|
3
|
+
import type { ModelBuilder } from './Builder.model'
|
|
3
4
|
|
|
4
5
|
type ToNested<T, Id extends string> = T extends TypesNested<infer P, any, any, any, any, any, any, any, infer F>
|
|
5
6
|
? TypesNested<
|
|
@@ -57,31 +58,35 @@ type FromNested<T extends AnyTypes, N> = N extends TypesNested<any, any, any, an
|
|
|
57
58
|
export interface AddDeploymentNode<Id extends string> {
|
|
58
59
|
<T extends AnyTypes>(builder: DeploymentModelBuilder<T>): DeploymentModelBuilder<Types.AddDeploymentFqn<T, Id>>
|
|
59
60
|
|
|
61
|
+
with<T extends AnyTypes>(): (
|
|
62
|
+
builder: DeploymentModelBuilder<T>,
|
|
63
|
+
) => DeploymentModelBuilder<Types.AddDeploymentFqn<T, Id>>
|
|
64
|
+
|
|
60
65
|
with<
|
|
61
66
|
T extends AnyTypes,
|
|
62
|
-
A extends AnyTypes
|
|
67
|
+
A extends AnyTypes,
|
|
63
68
|
>(
|
|
64
|
-
op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A
|
|
69
|
+
op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
|
|
65
70
|
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, A>>
|
|
66
71
|
|
|
67
72
|
with<
|
|
68
73
|
T extends AnyTypes,
|
|
69
74
|
A extends AnyTypes,
|
|
70
|
-
B extends AnyTypes
|
|
75
|
+
B extends AnyTypes,
|
|
71
76
|
>(
|
|
72
77
|
op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
|
|
73
|
-
op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B
|
|
78
|
+
op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
74
79
|
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, B>>
|
|
75
80
|
|
|
76
81
|
with<
|
|
77
82
|
T extends AnyTypes,
|
|
78
83
|
A extends AnyTypes,
|
|
79
84
|
B extends AnyTypes,
|
|
80
|
-
C extends AnyTypes
|
|
85
|
+
C extends AnyTypes,
|
|
81
86
|
>(
|
|
82
87
|
op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
|
|
83
88
|
op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
84
|
-
op3: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C
|
|
89
|
+
op3: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
85
90
|
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, C>>
|
|
86
91
|
|
|
87
92
|
with<
|
|
@@ -89,12 +94,12 @@ export interface AddDeploymentNode<Id extends string> {
|
|
|
89
94
|
A extends AnyTypes,
|
|
90
95
|
B extends AnyTypes,
|
|
91
96
|
C extends AnyTypes,
|
|
92
|
-
D extends AnyTypes
|
|
97
|
+
D extends AnyTypes,
|
|
93
98
|
>(
|
|
94
99
|
op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
|
|
95
100
|
op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
96
101
|
op3: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
97
|
-
op4: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D
|
|
102
|
+
op4: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
98
103
|
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, D>>
|
|
99
104
|
|
|
100
105
|
with<
|
|
@@ -103,13 +108,13 @@ export interface AddDeploymentNode<Id extends string> {
|
|
|
103
108
|
B extends AnyTypes,
|
|
104
109
|
C extends AnyTypes,
|
|
105
110
|
D extends AnyTypes,
|
|
106
|
-
E extends AnyTypes
|
|
111
|
+
E extends AnyTypes,
|
|
107
112
|
>(
|
|
108
113
|
op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
|
|
109
114
|
op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
110
115
|
op3: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
111
116
|
op4: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
112
|
-
op5: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E
|
|
117
|
+
op5: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
113
118
|
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, E>>
|
|
114
119
|
|
|
115
120
|
with<
|
|
@@ -119,14 +124,14 @@ export interface AddDeploymentNode<Id extends string> {
|
|
|
119
124
|
C extends AnyTypes,
|
|
120
125
|
D extends AnyTypes,
|
|
121
126
|
E extends AnyTypes,
|
|
122
|
-
F extends AnyTypes
|
|
127
|
+
F extends AnyTypes,
|
|
123
128
|
>(
|
|
124
129
|
op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
|
|
125
130
|
op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
126
131
|
op3: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
127
132
|
op4: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
128
133
|
op5: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
129
|
-
op6: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F
|
|
134
|
+
op6: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
130
135
|
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, F>>
|
|
131
136
|
|
|
132
137
|
with<
|
|
@@ -137,7 +142,7 @@ export interface AddDeploymentNode<Id extends string> {
|
|
|
137
142
|
D extends AnyTypes,
|
|
138
143
|
E extends AnyTypes,
|
|
139
144
|
F extends AnyTypes,
|
|
140
|
-
G extends AnyTypes
|
|
145
|
+
G extends AnyTypes,
|
|
141
146
|
>(
|
|
142
147
|
op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
|
|
143
148
|
op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
@@ -145,7 +150,7 @@ export interface AddDeploymentNode<Id extends string> {
|
|
|
145
150
|
op4: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
146
151
|
op5: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
147
152
|
op6: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
148
|
-
op7: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G
|
|
153
|
+
op7: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
149
154
|
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, G>>
|
|
150
155
|
|
|
151
156
|
with<
|
|
@@ -157,7 +162,7 @@ export interface AddDeploymentNode<Id extends string> {
|
|
|
157
162
|
E extends AnyTypes,
|
|
158
163
|
F extends AnyTypes,
|
|
159
164
|
G extends AnyTypes,
|
|
160
|
-
H extends AnyTypes
|
|
165
|
+
H extends AnyTypes,
|
|
161
166
|
>(
|
|
162
167
|
op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
|
|
163
168
|
op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
@@ -166,7 +171,7 @@ export interface AddDeploymentNode<Id extends string> {
|
|
|
166
171
|
op5: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
167
172
|
op6: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
168
173
|
op7: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
169
|
-
op8: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H
|
|
174
|
+
op8: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
170
175
|
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, H>>
|
|
171
176
|
|
|
172
177
|
with<
|
|
@@ -179,7 +184,7 @@ export interface AddDeploymentNode<Id extends string> {
|
|
|
179
184
|
F extends AnyTypes,
|
|
180
185
|
G extends AnyTypes,
|
|
181
186
|
H extends AnyTypes,
|
|
182
|
-
I extends AnyTypes
|
|
187
|
+
I extends AnyTypes,
|
|
183
188
|
>(
|
|
184
189
|
op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
|
|
185
190
|
op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
@@ -189,7 +194,7 @@ export interface AddDeploymentNode<Id extends string> {
|
|
|
189
194
|
op6: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
190
195
|
op7: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
191
196
|
op8: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
192
|
-
op9: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I
|
|
197
|
+
op9: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
|
|
193
198
|
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, I>>
|
|
194
199
|
|
|
195
200
|
with<
|
|
@@ -203,7 +208,7 @@ export interface AddDeploymentNode<Id extends string> {
|
|
|
203
208
|
G extends AnyTypes,
|
|
204
209
|
H extends AnyTypes,
|
|
205
210
|
I extends AnyTypes,
|
|
206
|
-
J extends AnyTypes
|
|
211
|
+
J extends AnyTypes,
|
|
207
212
|
>(
|
|
208
213
|
op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
|
|
209
214
|
op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
@@ -214,6 +219,6 @@ export interface AddDeploymentNode<Id extends string> {
|
|
|
214
219
|
op7: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
215
220
|
op8: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
216
221
|
op9: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
|
|
217
|
-
op10: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J
|
|
222
|
+
op10: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J>,
|
|
218
223
|
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, J>>
|
|
219
224
|
}
|
|
@@ -1,51 +1,54 @@
|
|
|
1
|
+
import type { LastArrayElement, Split } from 'type-fest'
|
|
1
2
|
import type { DeploymentElement, DeploymentRelation, Fqn } from '../types'
|
|
2
|
-
import type { AnyTypes, Invalid, Types } from './_types'
|
|
3
|
+
import type { AnyTypes, Invalid, Types, ValidId } from './_types'
|
|
3
4
|
import type { Builder } from './Builder'
|
|
4
5
|
import type { AddDeploymentNode } from './Builder.deployment'
|
|
5
6
|
|
|
6
|
-
export interface DeploymentModelBuilder<T extends AnyTypes> {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
export interface DeploymentModelBuilder<T extends AnyTypes> extends Builder<T> {
|
|
8
|
+
__addDeployment(node: DeploymentElement): Builder<T>
|
|
9
|
+
__addDeploymentRelation(rel: Omit<DeploymentRelation, 'id'>): Builder<T>
|
|
9
10
|
/**
|
|
10
11
|
* Create a fully qualified name from an id (for nested models)
|
|
11
12
|
*/
|
|
12
|
-
|
|
13
|
+
__fqn(id: string): Fqn
|
|
13
14
|
}
|
|
15
|
+
|
|
16
|
+
export function deployment<A extends AnyTypes>(): (input: Builder<A>) => Builder<A>
|
|
14
17
|
export function deployment<
|
|
15
18
|
A extends AnyTypes,
|
|
16
|
-
B extends AnyTypes
|
|
19
|
+
B extends AnyTypes,
|
|
17
20
|
>(
|
|
18
|
-
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B
|
|
21
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
19
22
|
): (input: Builder<A>) => Builder<B>
|
|
20
23
|
export function deployment<
|
|
21
24
|
A extends AnyTypes,
|
|
22
25
|
B extends AnyTypes,
|
|
23
|
-
C extends AnyTypes
|
|
26
|
+
C extends AnyTypes,
|
|
24
27
|
>(
|
|
25
28
|
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
26
|
-
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C
|
|
29
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
27
30
|
): (input: Builder<A>) => Builder<C>
|
|
28
31
|
export function deployment<
|
|
29
32
|
A extends AnyTypes,
|
|
30
33
|
B extends AnyTypes,
|
|
31
34
|
C extends AnyTypes,
|
|
32
|
-
D extends AnyTypes
|
|
35
|
+
D extends AnyTypes,
|
|
33
36
|
>(
|
|
34
37
|
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
35
38
|
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
36
|
-
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D
|
|
39
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
37
40
|
): (input: Builder<A>) => Builder<D>
|
|
38
41
|
export function deployment<
|
|
39
42
|
A extends AnyTypes,
|
|
40
43
|
B extends AnyTypes,
|
|
41
44
|
C extends AnyTypes,
|
|
42
45
|
D extends AnyTypes,
|
|
43
|
-
E extends AnyTypes
|
|
46
|
+
E extends AnyTypes,
|
|
44
47
|
>(
|
|
45
48
|
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
46
49
|
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
47
50
|
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
48
|
-
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E
|
|
51
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
49
52
|
): (input: Builder<A>) => Builder<E>
|
|
50
53
|
export function deployment<
|
|
51
54
|
A extends AnyTypes,
|
|
@@ -53,13 +56,13 @@ export function deployment<
|
|
|
53
56
|
C extends AnyTypes,
|
|
54
57
|
D extends AnyTypes,
|
|
55
58
|
E extends AnyTypes,
|
|
56
|
-
F extends AnyTypes
|
|
59
|
+
F extends AnyTypes,
|
|
57
60
|
>(
|
|
58
61
|
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
59
62
|
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
60
63
|
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
61
64
|
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
62
|
-
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F
|
|
65
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
63
66
|
): (input: Builder<A>) => Builder<F>
|
|
64
67
|
export function deployment<
|
|
65
68
|
A extends AnyTypes,
|
|
@@ -68,14 +71,14 @@ export function deployment<
|
|
|
68
71
|
D extends AnyTypes,
|
|
69
72
|
E extends AnyTypes,
|
|
70
73
|
F extends AnyTypes,
|
|
71
|
-
G extends AnyTypes
|
|
74
|
+
G extends AnyTypes,
|
|
72
75
|
>(
|
|
73
76
|
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
74
77
|
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
75
78
|
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
76
79
|
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
77
80
|
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
78
|
-
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G
|
|
81
|
+
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
79
82
|
): (input: Builder<A>) => Builder<G>
|
|
80
83
|
export function deployment<
|
|
81
84
|
A extends AnyTypes,
|
|
@@ -85,7 +88,7 @@ export function deployment<
|
|
|
85
88
|
E extends AnyTypes,
|
|
86
89
|
F extends AnyTypes,
|
|
87
90
|
G extends AnyTypes,
|
|
88
|
-
H extends AnyTypes
|
|
91
|
+
H extends AnyTypes,
|
|
89
92
|
>(
|
|
90
93
|
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
91
94
|
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
@@ -93,7 +96,7 @@ export function deployment<
|
|
|
93
96
|
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
94
97
|
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
95
98
|
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
96
|
-
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H
|
|
99
|
+
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
97
100
|
): (input: Builder<A>) => Builder<H>
|
|
98
101
|
export function deployment<
|
|
99
102
|
A extends AnyTypes,
|
|
@@ -104,7 +107,7 @@ export function deployment<
|
|
|
104
107
|
F extends AnyTypes,
|
|
105
108
|
G extends AnyTypes,
|
|
106
109
|
H extends AnyTypes,
|
|
107
|
-
I extends AnyTypes
|
|
110
|
+
I extends AnyTypes,
|
|
108
111
|
>(
|
|
109
112
|
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
110
113
|
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
@@ -113,7 +116,7 @@ export function deployment<
|
|
|
113
116
|
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
114
117
|
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
115
118
|
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
116
|
-
op8: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I
|
|
119
|
+
op8: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
|
|
117
120
|
): (input: Builder<A>) => Builder<I>
|
|
118
121
|
export function deployment<
|
|
119
122
|
A extends AnyTypes,
|
|
@@ -125,7 +128,7 @@ export function deployment<
|
|
|
125
128
|
G extends AnyTypes,
|
|
126
129
|
H extends AnyTypes,
|
|
127
130
|
I extends AnyTypes,
|
|
128
|
-
J extends AnyTypes
|
|
131
|
+
J extends AnyTypes,
|
|
129
132
|
>(
|
|
130
133
|
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
131
134
|
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
@@ -135,7 +138,7 @@ export function deployment<
|
|
|
135
138
|
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
136
139
|
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
137
140
|
op8: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
|
|
138
|
-
op9: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J
|
|
141
|
+
op9: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J>,
|
|
139
142
|
): (input: Builder<A>) => Builder<J>
|
|
140
143
|
export function deployment<
|
|
141
144
|
A extends AnyTypes,
|
|
@@ -148,7 +151,7 @@ export function deployment<
|
|
|
148
151
|
H extends AnyTypes,
|
|
149
152
|
I extends AnyTypes,
|
|
150
153
|
J extends AnyTypes,
|
|
151
|
-
K extends AnyTypes
|
|
154
|
+
K extends AnyTypes,
|
|
152
155
|
>(
|
|
153
156
|
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
154
157
|
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
@@ -159,7 +162,7 @@ export function deployment<
|
|
|
159
162
|
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
160
163
|
op8: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
|
|
161
164
|
op9: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J>,
|
|
162
|
-
op10: (input: DeploymentModelBuilder<J>) => DeploymentModelBuilder<K
|
|
165
|
+
op10: (input: DeploymentModelBuilder<J>) => DeploymentModelBuilder<K>,
|
|
163
166
|
): (input: Builder<A>) => Builder<K>
|
|
164
167
|
export function deployment<
|
|
165
168
|
A extends AnyTypes,
|
|
@@ -173,7 +176,7 @@ export function deployment<
|
|
|
173
176
|
I extends AnyTypes,
|
|
174
177
|
J extends AnyTypes,
|
|
175
178
|
K extends AnyTypes,
|
|
176
|
-
L extends AnyTypes
|
|
179
|
+
L extends AnyTypes,
|
|
177
180
|
>(
|
|
178
181
|
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
179
182
|
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
@@ -185,7 +188,7 @@ export function deployment<
|
|
|
185
188
|
op8: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
|
|
186
189
|
op9: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J>,
|
|
187
190
|
op10: (input: DeploymentModelBuilder<J>) => DeploymentModelBuilder<K>,
|
|
188
|
-
op11: (input: DeploymentModelBuilder<K>) => DeploymentModelBuilder<L
|
|
191
|
+
op11: (input: DeploymentModelBuilder<K>) => DeploymentModelBuilder<L>,
|
|
189
192
|
): (input: Builder<A>) => Builder<L>
|
|
190
193
|
export function deployment<
|
|
191
194
|
A extends AnyTypes,
|
|
@@ -200,7 +203,7 @@ export function deployment<
|
|
|
200
203
|
J extends AnyTypes,
|
|
201
204
|
K extends AnyTypes,
|
|
202
205
|
L extends AnyTypes,
|
|
203
|
-
M extends AnyTypes
|
|
206
|
+
M extends AnyTypes,
|
|
204
207
|
>(
|
|
205
208
|
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
206
209
|
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
@@ -213,7 +216,7 @@ export function deployment<
|
|
|
213
216
|
op9: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J>,
|
|
214
217
|
op10: (input: DeploymentModelBuilder<J>) => DeploymentModelBuilder<K>,
|
|
215
218
|
op11: (input: DeploymentModelBuilder<K>) => DeploymentModelBuilder<L>,
|
|
216
|
-
op12: (input: DeploymentModelBuilder<L>) => DeploymentModelBuilder<M
|
|
219
|
+
op12: (input: DeploymentModelBuilder<L>) => DeploymentModelBuilder<M>,
|
|
217
220
|
): (input: Builder<A>) => Builder<M>
|
|
218
221
|
export function deployment<
|
|
219
222
|
A extends AnyTypes,
|
|
@@ -229,7 +232,7 @@ export function deployment<
|
|
|
229
232
|
K extends AnyTypes,
|
|
230
233
|
L extends AnyTypes,
|
|
231
234
|
M extends AnyTypes,
|
|
232
|
-
N extends AnyTypes
|
|
235
|
+
N extends AnyTypes,
|
|
233
236
|
>(
|
|
234
237
|
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
235
238
|
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
@@ -243,7 +246,7 @@ export function deployment<
|
|
|
243
246
|
op10: (input: DeploymentModelBuilder<J>) => DeploymentModelBuilder<K>,
|
|
244
247
|
op11: (input: DeploymentModelBuilder<K>) => DeploymentModelBuilder<L>,
|
|
245
248
|
op12: (input: DeploymentModelBuilder<L>) => DeploymentModelBuilder<M>,
|
|
246
|
-
op13: (input: DeploymentModelBuilder<M>) => DeploymentModelBuilder<N
|
|
249
|
+
op13: (input: DeploymentModelBuilder<M>) => DeploymentModelBuilder<N>,
|
|
247
250
|
): (input: Builder<A>) => Builder<N>
|
|
248
251
|
export function deployment<
|
|
249
252
|
A extends AnyTypes,
|
|
@@ -260,7 +263,7 @@ export function deployment<
|
|
|
260
263
|
L extends AnyTypes,
|
|
261
264
|
M extends AnyTypes,
|
|
262
265
|
N extends AnyTypes,
|
|
263
|
-
O extends AnyTypes
|
|
266
|
+
O extends AnyTypes,
|
|
264
267
|
>(
|
|
265
268
|
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
266
269
|
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
@@ -275,7 +278,7 @@ export function deployment<
|
|
|
275
278
|
op11: (input: DeploymentModelBuilder<K>) => DeploymentModelBuilder<L>,
|
|
276
279
|
op12: (input: DeploymentModelBuilder<L>) => DeploymentModelBuilder<M>,
|
|
277
280
|
op13: (input: DeploymentModelBuilder<M>) => DeploymentModelBuilder<N>,
|
|
278
|
-
op14: (input: DeploymentModelBuilder<N>) => DeploymentModelBuilder<O
|
|
281
|
+
op14: (input: DeploymentModelBuilder<N>) => DeploymentModelBuilder<O>,
|
|
279
282
|
): (input: Builder<A>) => Builder<O>
|
|
280
283
|
export function deployment<
|
|
281
284
|
A extends AnyTypes,
|
|
@@ -293,7 +296,7 @@ export function deployment<
|
|
|
293
296
|
M extends AnyTypes,
|
|
294
297
|
N extends AnyTypes,
|
|
295
298
|
O extends AnyTypes,
|
|
296
|
-
P extends AnyTypes
|
|
299
|
+
P extends AnyTypes,
|
|
297
300
|
>(
|
|
298
301
|
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
299
302
|
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
@@ -309,7 +312,7 @@ export function deployment<
|
|
|
309
312
|
op12: (input: DeploymentModelBuilder<L>) => DeploymentModelBuilder<M>,
|
|
310
313
|
op13: (input: DeploymentModelBuilder<M>) => DeploymentModelBuilder<N>,
|
|
311
314
|
op14: (input: DeploymentModelBuilder<N>) => DeploymentModelBuilder<O>,
|
|
312
|
-
op15: (input: DeploymentModelBuilder<O>) => DeploymentModelBuilder<P
|
|
315
|
+
op15: (input: DeploymentModelBuilder<O>) => DeploymentModelBuilder<P>,
|
|
313
316
|
): (input: Builder<A>) => Builder<P>
|
|
314
317
|
|
|
315
318
|
export function deployment(...ops: any[]) {
|
|
@@ -322,29 +325,32 @@ export function deployment(...ops: any[]) {
|
|
|
322
325
|
}
|
|
323
326
|
}
|
|
324
327
|
|
|
325
|
-
|
|
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>
|
|
328
|
+
type NameFromFqn<FQN extends string> = LastArrayElement<Split<FQN, '.'>>
|
|
334
329
|
|
|
335
|
-
export type AddDeployedInstance<Props = unknown> =
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
330
|
+
export type AddDeployedInstance<Props = unknown> = {
|
|
331
|
+
// instanceOf(target, titleOrProps?)
|
|
332
|
+
<
|
|
333
|
+
const T extends AnyTypes,
|
|
334
|
+
Id extends string & T['Fqn'],
|
|
335
|
+
>(
|
|
336
|
+
target: Id,
|
|
337
|
+
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<Types.AddDeploymentFqn<T, NameFromFqn<Id>>>
|
|
338
|
+
|
|
339
|
+
// instanceOf(id, target, titleOrProps?)
|
|
340
|
+
<
|
|
341
|
+
const Id extends string,
|
|
342
|
+
T extends AnyTypes,
|
|
343
|
+
Target extends string & T['Fqn'],
|
|
344
|
+
>(
|
|
345
|
+
id: ValidId<Id>,
|
|
346
|
+
target: Target,
|
|
347
|
+
titleOrProps?: string | Props | undefined,
|
|
348
|
+
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<Types.AddDeploymentFqn<T, Id>>
|
|
349
|
+
}
|
|
344
350
|
|
|
345
351
|
type AddDeploymentNodeHelper<T = unknown> = <const Id extends string>(
|
|
346
|
-
id: Id
|
|
347
|
-
titleOrProps?: string | T
|
|
352
|
+
id: ValidId<Id>,
|
|
353
|
+
titleOrProps?: string | T,
|
|
348
354
|
) => AddDeploymentNode<Id>
|
|
349
355
|
|
|
350
356
|
export type AddDeploymentNodeHelpers<T extends AnyTypes> = T extends
|
|
@@ -353,8 +359,27 @@ export type AddDeploymentNodeHelpers<T extends AnyTypes> = T extends
|
|
|
353
359
|
}
|
|
354
360
|
: Invalid<'No Deployment Kinds'>
|
|
355
361
|
|
|
362
|
+
export type AddDeploymentRelation<Props = unknown> = <
|
|
363
|
+
T extends AnyTypes,
|
|
364
|
+
Source extends string & T['DeploymentFqn'],
|
|
365
|
+
Target extends string & T['DeploymentFqn'],
|
|
366
|
+
>(
|
|
367
|
+
source: Source,
|
|
368
|
+
target: Target,
|
|
369
|
+
titleOrProps?: string | Props,
|
|
370
|
+
) => (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<T>
|
|
371
|
+
|
|
356
372
|
export type DeloymentModelHelpers<T extends AnyTypes> = AddDeploymentNodeHelpers<T> & {
|
|
357
373
|
instanceOf: AddDeployedInstance<T['NewDeploymentNodeProps']>
|
|
358
374
|
rel: AddDeploymentRelation<T['NewRelationshipProps']>
|
|
359
375
|
deployment: typeof deployment
|
|
360
376
|
}
|
|
377
|
+
|
|
378
|
+
export type DeloymentModelBuildFunction<A extends AnyTypes, B extends AnyTypes> = (
|
|
379
|
+
helpers: DeloymentModelHelpers<A> & {
|
|
380
|
+
_: DeloymentModelHelpers<A>['deployment']
|
|
381
|
+
},
|
|
382
|
+
add: DeloymentModelHelpers<A>['deployment'],
|
|
383
|
+
) =>
|
|
384
|
+
| ((builder: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>)
|
|
385
|
+
| ((builder: Builder<A>) => Builder<B>)
|