@builder-builder/builder 0.0.6 → 0.0.8
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/check.d.ts +2 -1
- package/dist/check.js +6 -2
- package/dist/entities/builder/builder.d.ts +494 -0
- package/dist/entities/builder/builder.js +84 -0
- package/dist/entities/builder/builders.d.ts +20 -0
- package/dist/entities/builder/builders.js +18 -0
- package/dist/entities/builder/expectation.d.ts +12 -0
- package/dist/entities/builder/index.d.ts +7 -0
- package/dist/entities/builder/index.js +3 -0
- package/dist/entities/builder/methods.d.ts +58 -0
- package/dist/entities/builder/methods.js +30 -0
- package/dist/entities/builder/parameter.d.ts +61 -0
- package/dist/entities/builder/parameter.js +18 -0
- package/dist/entities/builder/state.d.ts +26 -0
- package/dist/entities/builder/validate.d.ts +3 -0
- package/dist/entities/builder/validate.js +108 -0
- package/dist/entities/collection/collection.d.ts +37 -0
- package/dist/entities/collection/collection.js +42 -0
- package/dist/entities/collection/config.d.ts +1094 -0
- package/dist/entities/collection/config.js +23 -0
- package/dist/entities/collection/expectation.d.ts +7 -0
- package/dist/entities/collection/expectation.js +4 -0
- package/dist/entities/collection/index.d.ts +8 -0
- package/dist/entities/collection/index.js +4 -0
- package/dist/entities/collection/when.d.ts +9 -0
- package/dist/entities/collection/when.js +2 -0
- package/dist/entities/component/component.d.ts +403 -0
- package/dist/entities/component/component.js +24 -0
- package/dist/entities/component/details.d.ts +82 -0
- package/dist/entities/component/details.js +17 -0
- package/dist/entities/component/expectation.d.ts +8 -0
- package/dist/entities/component/expectation.js +7 -0
- package/dist/entities/component/index.d.ts +8 -0
- package/dist/entities/component/index.js +4 -0
- package/dist/entities/component/when.d.ts +11 -0
- package/dist/entities/component/when.js +20 -0
- package/dist/entities/errors.d.ts +21 -0
- package/dist/entities/expectation.d.ts +44 -0
- package/dist/entities/expectation.js +23 -0
- package/dist/entities/index.d.ts +18 -0
- package/dist/entities/index.js +9 -0
- package/dist/entities/option/expectation.d.ts +2 -0
- package/dist/entities/option/expectation.js +4 -0
- package/dist/entities/option/index.d.ts +11 -0
- package/dist/entities/option/index.js +6 -0
- package/dist/entities/option/option.d.ts +347 -0
- package/dist/entities/option/option.js +24 -0
- package/dist/entities/option/select.d.ts +49 -0
- package/dist/entities/option/select.js +40 -0
- package/dist/entities/option/toggle.d.ts +39 -0
- package/dist/entities/option/toggle.js +42 -0
- package/dist/entities/option/values.d.ts +63 -0
- package/dist/entities/option/values.js +8 -0
- package/dist/entities/option/when.d.ts +9 -0
- package/dist/entities/option/when.js +2 -0
- package/dist/entities/serialise.d.ts +3801 -0
- package/dist/entities/serialise.js +41 -0
- package/dist/entities/ui/describe.d.ts +100 -0
- package/dist/entities/ui/describe.js +22 -0
- package/dist/entities/ui/index.d.ts +14 -0
- package/dist/entities/ui/index.js +7 -0
- package/dist/entities/ui/label.d.ts +18 -0
- package/dist/entities/ui/label.js +12 -0
- package/dist/entities/ui/page.d.ts +96 -0
- package/dist/entities/ui/page.js +20 -0
- package/dist/entities/ui/pages.d.ts +431 -0
- package/dist/entities/ui/pages.js +29 -0
- package/dist/entities/ui/parameter.d.ts +7 -0
- package/dist/entities/ui/parameter.js +29 -0
- package/dist/entities/ui/ui.d.ts +1582 -0
- package/dist/entities/ui/ui.js +53 -0
- package/dist/entities/ui/uis.d.ts +10 -0
- package/dist/entities/ui/uis.js +20 -0
- package/dist/entities/ui/validate.d.ts +8 -0
- package/dist/entities/ui/validate.js +21 -0
- package/dist/entities/validate.d.ts +28 -0
- package/dist/entities/validate.js +1 -0
- package/dist/entities/when.d.ts +176 -0
- package/dist/entities/when.js +47 -0
- package/dist/exception.d.ts +8 -0
- package/dist/exception.js +7 -0
- package/dist/index.d.ts +37 -13
- package/dist/index.js +22 -5
- package/dist/mappers/assert/builder.d.ts +2 -0
- package/dist/mappers/assert/builder.js +46 -0
- package/dist/mappers/assert/expectation.d.ts +2 -0
- package/dist/mappers/assert/expectation.js +23 -0
- package/dist/mappers/assert/index.d.ts +6 -0
- package/dist/mappers/assert/index.js +4 -0
- package/dist/mappers/assert/model.d.ts +13 -0
- package/dist/mappers/assert/model.js +47 -0
- package/dist/mappers/assert/models.d.ts +33 -0
- package/dist/mappers/assert/models.js +74 -0
- package/dist/mappers/assert/ui.d.ts +2 -0
- package/dist/mappers/assert/ui.js +22 -0
- package/dist/mappers/index.d.ts +7 -0
- package/dist/mappers/index.js +4 -0
- package/dist/mappers/instance/index.d.ts +1 -0
- package/dist/mappers/instance/index.js +1 -0
- package/dist/mappers/instance/instance.d.ts +4 -0
- package/dist/mappers/instance/instance.js +33 -0
- package/dist/mappers/models/component-graph.d.ts +9 -0
- package/dist/{core/component/graph.js → mappers/models/component-graph.js} +3 -3
- package/dist/{core → mappers/models}/graph.d.ts +4 -1
- package/dist/mappers/models/graph.js +17 -0
- package/dist/mappers/models/index.d.ts +1 -0
- package/dist/mappers/models/index.js +1 -0
- package/dist/mappers/models/models.d.ts +3 -0
- package/dist/mappers/models/models.js +37 -0
- package/dist/mappers/models/option-graph.d.ts +9 -0
- package/dist/mappers/models/option-graph.js +77 -0
- package/dist/mappers/order/index.d.ts +2 -0
- package/dist/mappers/order/index.js +1 -0
- package/dist/mappers/order/order.d.ts +14 -0
- package/dist/mappers/order/order.js +31 -0
- package/dist/mappers/render/index.d.ts +4 -0
- package/dist/mappers/render/index.js +2 -0
- package/dist/mappers/render/ordinal.d.ts +1 -0
- package/dist/mappers/render/ordinal.js +20 -0
- package/dist/mappers/render/pages.d.ts +15 -0
- package/dist/mappers/render/pages.js +1 -0
- package/dist/mappers/render/render.d.ts +8 -0
- package/dist/mappers/render/render.js +124 -0
- package/dist/mappers/resolve.d.ts +9 -0
- package/dist/mappers/resolve.js +57 -0
- package/dist/model.d.ts +8 -8
- package/dist/paths.d.ts +5 -16
- package/dist/paths.js +3 -0
- package/dist/primitive.d.ts +5 -0
- package/dist/{schemas/primitives.js → primitive.js} +0 -2
- package/dist/references.d.ts +60 -0
- package/dist/references.js +26 -0
- package/dist/serialisable.d.ts +10 -0
- package/dist/serialisable.js +5 -0
- package/dist/walker/index.d.ts +2 -0
- package/dist/walker/index.js +1 -0
- package/dist/walker/walkable.d.ts +4 -0
- package/dist/walker/walkable.js +4 -0
- package/dist/walker/walker.d.ts +18 -0
- package/dist/walker/walker.js +103 -0
- package/dist/walker/walkers.d.ts +8 -0
- package/dist/walker/walkers.js +51 -0
- package/package.json +10 -4
- package/dist/core/builder.d.ts +0 -70
- package/dist/core/builder.js +0 -124
- package/dist/core/collection/collection.d.ts +0 -32
- package/dist/core/collection/collection.js +0 -37
- package/dist/core/collection/index.d.ts +0 -4
- package/dist/core/collection/index.js +0 -2
- package/dist/core/collection/method.d.ts +0 -30
- package/dist/core/collection/method.js +0 -11
- package/dist/core/component/component.d.ts +0 -9
- package/dist/core/component/component.js +0 -10
- package/dist/core/component/graph.d.ts +0 -9
- package/dist/core/component/index.d.ts +0 -4
- package/dist/core/component/index.js +0 -2
- package/dist/core/component/method.d.ts +0 -11
- package/dist/core/expectation.d.ts +0 -45
- package/dist/core/expectation.js +0 -22
- package/dist/core/graph.js +0 -3
- package/dist/core/index.d.ts +0 -12
- package/dist/core/index.js +0 -6
- package/dist/core/option/graph.d.ts +0 -10
- package/dist/core/option/graph.js +0 -78
- package/dist/core/option/index.d.ts +0 -9
- package/dist/core/option/index.js +0 -5
- package/dist/core/option/method.d.ts +0 -70
- package/dist/core/option/method.js +0 -13
- package/dist/core/option/option.d.ts +0 -30
- package/dist/core/option/option.js +0 -42
- package/dist/core/option/select.d.ts +0 -22
- package/dist/core/option/select.js +0 -34
- package/dist/core/option/toggle.d.ts +0 -14
- package/dist/core/option/toggle.js +0 -27
- package/dist/core/parameter.d.ts +0 -48
- package/dist/core/parameter.js +0 -31
- package/dist/core/when/config.d.ts +0 -20
- package/dist/core/when/config.js +0 -4
- package/dist/core/when/constrain.d.ts +0 -14
- package/dist/core/when/index.d.ts +0 -5
- package/dist/core/when/index.js +0 -2
- package/dist/core/when/nullability.d.ts +0 -18
- package/dist/core/when/resolve.d.ts +0 -18
- package/dist/core/when/resolve.js +0 -22
- package/dist/resolve/index.d.ts +0 -9
- package/dist/resolve/index.js +0 -5
- package/dist/resolve/instance.d.ts +0 -3
- package/dist/resolve/instance.js +0 -26
- package/dist/resolve/models.d.ts +0 -3
- package/dist/resolve/models.js +0 -10
- package/dist/resolve/order.d.ts +0 -19
- package/dist/resolve/order.js +0 -24
- package/dist/resolve/render.d.ts +0 -21
- package/dist/resolve/render.js +0 -171
- package/dist/resolve/validate.d.ts +0 -33
- package/dist/resolve/validate.js +0 -51
- package/dist/schemas/description.d.ts +0 -5
- package/dist/schemas/description.js +0 -3
- package/dist/schemas/index.d.ts +0 -6
- package/dist/schemas/index.js +0 -3
- package/dist/schemas/primitives.d.ts +0 -9
- package/dist/schemas/ui.d.ts +0 -96
- package/dist/schemas/ui.js +0 -23
- package/dist/serialise/deserialise.d.ts +0 -9
- package/dist/serialise/deserialise.js +0 -113
- package/dist/serialise/index.d.ts +0 -4
- package/dist/serialise/index.js +0 -3
- package/dist/serialise/schemas.d.ts +0 -1885
- package/dist/serialise/schemas.js +0 -141
- package/dist/serialise/serialise.d.ts +0 -10
- package/dist/serialise/serialise.js +0 -140
- package/dist/ui.d.ts +0 -18
- package/dist/ui.js +0 -53
- /package/dist/{core/component/method.js → entities/builder/expectation.js} +0 -0
- /package/dist/{core/when/constrain.js → entities/builder/state.js} +0 -0
- /package/dist/{core/when/nullability.js → entities/errors.js} +0 -0
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import * as v from 'valibot';
|
|
2
|
-
import { BuilderParameterSchema } from '../core/parameter.js';
|
|
3
|
-
import { BuilderOptionValuesMapSchema, BuilderOptionValuesSchema } from '../core/option/option.js';
|
|
4
|
-
import { BuilderPathSchema, BuilderPathsSchema, BuilderPrimitiveSchema } from '../schemas/primitives.js';
|
|
5
|
-
export { BuilderOptionValuesMapSchema, BuilderOptionValuesSchema, BuilderParameterSchema };
|
|
6
|
-
export const BuilderSelectTypeSerialisedSchema = v.pipe(v.object({
|
|
7
|
-
type: v.literal('select'),
|
|
8
|
-
options: v.pipe(v.tupleWithRest([v.string()], v.string()), v.readonly()),
|
|
9
|
-
defaultValue: v.nullable(v.string()),
|
|
10
|
-
optional: v.boolean(),
|
|
11
|
-
labels: v.record(v.string(), v.string())
|
|
12
|
-
}), v.readonly());
|
|
13
|
-
export const BuilderToggleTypeSerialisedSchema = v.pipe(v.object({
|
|
14
|
-
type: v.literal('toggle'),
|
|
15
|
-
valueType: v.string(),
|
|
16
|
-
defaultValue: v.nullable(v.union([v.boolean(), v.string(), v.number()])),
|
|
17
|
-
optional: v.boolean()
|
|
18
|
-
}), v.readonly());
|
|
19
|
-
export const BuilderParameterSerialisedSchema = v.pipe(v.object({ type: v.literal('parameter') }), v.readonly());
|
|
20
|
-
export const BuilderValuesSerialisedSchema = v.pipe(v.variant('type', [BuilderSelectTypeSerialisedSchema, BuilderToggleTypeSerialisedSchema]), v.readonly());
|
|
21
|
-
export const BuilderOptionEnableConfigSerialisedSchema = v.pipe(v.object({
|
|
22
|
-
type: v.literal('enable'),
|
|
23
|
-
values: v.union([BuilderValuesSerialisedSchema, BuilderParameterSerialisedSchema])
|
|
24
|
-
}), v.readonly());
|
|
25
|
-
export const BuilderOptionMatchConfigSerialisedSchema = v.pipe(v.object({
|
|
26
|
-
type: v.literal('match'),
|
|
27
|
-
matchPath: BuilderPathSchema,
|
|
28
|
-
selectMap: v.union([
|
|
29
|
-
v.record(v.string(), v.nullable(BuilderValuesSerialisedSchema)),
|
|
30
|
-
BuilderParameterSerialisedSchema
|
|
31
|
-
])
|
|
32
|
-
}), v.readonly());
|
|
33
|
-
export const BuilderOptionUnlessConfigSerialisedSchema = v.pipe(v.object({
|
|
34
|
-
type: v.literal('unless'),
|
|
35
|
-
unlessPath: BuilderPathSchema,
|
|
36
|
-
disabledValues: v.pipe(v.array(BuilderPrimitiveSchema), v.readonly()),
|
|
37
|
-
values: v.union([BuilderValuesSerialisedSchema, BuilderParameterSerialisedSchema])
|
|
38
|
-
}), v.readonly());
|
|
39
|
-
export const BuilderOptionWhenConfigSerialisedSchema = v.pipe(v.variant('type', [
|
|
40
|
-
BuilderOptionEnableConfigSerialisedSchema,
|
|
41
|
-
BuilderOptionMatchConfigSerialisedSchema,
|
|
42
|
-
BuilderOptionUnlessConfigSerialisedSchema
|
|
43
|
-
]), v.readonly());
|
|
44
|
-
export const BuilderOptionSerialisedSchema = v.pipe(v.object({
|
|
45
|
-
name: v.string(),
|
|
46
|
-
values: v.union([BuilderValuesSerialisedSchema, BuilderParameterSerialisedSchema]),
|
|
47
|
-
gatePaths: BuilderPathsSchema,
|
|
48
|
-
config: v.nullable(BuilderOptionWhenConfigSerialisedSchema)
|
|
49
|
-
}), v.readonly());
|
|
50
|
-
export const BuilderComponentSerialisedSchema = v.pipe(v.object({
|
|
51
|
-
name: v.string(),
|
|
52
|
-
paths: BuilderPathsSchema,
|
|
53
|
-
dependencies: v.pipe(v.array(v.string()), v.readonly())
|
|
54
|
-
}), v.readonly());
|
|
55
|
-
const lazyBuilder = () => v.lazy(() => BuilderSerialisedSchema);
|
|
56
|
-
const BuilderSerialisedCollectionConfigObject = v.object({
|
|
57
|
-
builder: lazyBuilder(),
|
|
58
|
-
min: v.number(),
|
|
59
|
-
max: v.number()
|
|
60
|
-
});
|
|
61
|
-
const BuilderSerialisedCollectionEnableConfigObject = v.object({
|
|
62
|
-
type: v.literal('enable'),
|
|
63
|
-
builder: lazyBuilder(),
|
|
64
|
-
min: v.number(),
|
|
65
|
-
max: v.number()
|
|
66
|
-
});
|
|
67
|
-
const BuilderSerialisedCollectionMatchConfigObject = v.object({
|
|
68
|
-
type: v.literal('match'),
|
|
69
|
-
matchPath: BuilderPathSchema,
|
|
70
|
-
selectMap: v.record(v.string(), v.nullable(BuilderSerialisedCollectionConfigObject))
|
|
71
|
-
});
|
|
72
|
-
const BuilderSerialisedCollectionUnlessConfigObject = v.object({
|
|
73
|
-
type: v.literal('unless'),
|
|
74
|
-
unlessPath: BuilderPathSchema,
|
|
75
|
-
disabledValues: v.pipe(v.array(BuilderPrimitiveSchema), v.readonly()),
|
|
76
|
-
builder: lazyBuilder(),
|
|
77
|
-
min: v.number(),
|
|
78
|
-
max: v.number()
|
|
79
|
-
});
|
|
80
|
-
const BuilderSerialisedCollectionObject = v.object({
|
|
81
|
-
name: v.string(),
|
|
82
|
-
builder: lazyBuilder(),
|
|
83
|
-
min: v.number(),
|
|
84
|
-
max: v.number(),
|
|
85
|
-
gatePaths: BuilderPathsSchema,
|
|
86
|
-
config: v.nullable(v.variant('type', [
|
|
87
|
-
BuilderSerialisedCollectionEnableConfigObject,
|
|
88
|
-
BuilderSerialisedCollectionMatchConfigObject,
|
|
89
|
-
BuilderSerialisedCollectionUnlessConfigObject
|
|
90
|
-
]))
|
|
91
|
-
});
|
|
92
|
-
const BuilderSerialisedUIPageObject = v.object({
|
|
93
|
-
type: v.literal('page'),
|
|
94
|
-
label: v.nullable(v.string()),
|
|
95
|
-
paths: BuilderPathsSchema
|
|
96
|
-
});
|
|
97
|
-
const BuilderSerialisedUIDescribeObject = v.object({
|
|
98
|
-
type: v.literal('describe'),
|
|
99
|
-
label: v.nullable(v.string()),
|
|
100
|
-
paths: BuilderPathsSchema
|
|
101
|
-
});
|
|
102
|
-
const lazySerialisedUIItems = () => v.lazy(() => BuilderUIItemsSerialisedSchema);
|
|
103
|
-
const BuilderSerialisedUICollectionObject = v.object({
|
|
104
|
-
type: v.literal('collection'),
|
|
105
|
-
name: v.string(),
|
|
106
|
-
label: v.string(),
|
|
107
|
-
items: lazySerialisedUIItems()
|
|
108
|
-
});
|
|
109
|
-
export const BuilderCollectionConfigSerialisedSchema = v.pipe(BuilderSerialisedCollectionConfigObject, v.readonly());
|
|
110
|
-
export const BuilderCollectionEnableConfigSerialisedSchema = v.pipe(BuilderSerialisedCollectionEnableConfigObject, v.readonly());
|
|
111
|
-
export const BuilderCollectionMatchConfigSerialisedSchema = v.pipe(BuilderSerialisedCollectionMatchConfigObject, v.readonly());
|
|
112
|
-
export const BuilderCollectionUnlessConfigSerialisedSchema = v.pipe(BuilderSerialisedCollectionUnlessConfigObject, v.readonly());
|
|
113
|
-
export const BuilderCollectionWhenConfigSerialisedSchema = v.pipe(v.variant('type', [
|
|
114
|
-
BuilderSerialisedCollectionEnableConfigObject,
|
|
115
|
-
BuilderSerialisedCollectionMatchConfigObject,
|
|
116
|
-
BuilderSerialisedCollectionUnlessConfigObject
|
|
117
|
-
]), v.readonly());
|
|
118
|
-
export const BuilderCollectionSerialisedSchema = v.pipe(BuilderSerialisedCollectionObject, v.readonly());
|
|
119
|
-
export const BuilderExpectationSerialisedSchema = v.pipe(v.object({
|
|
120
|
-
name: v.string(),
|
|
121
|
-
kind: v.picklist(['option', 'component', 'collection'])
|
|
122
|
-
}), v.readonly());
|
|
123
|
-
export const BuilderSerialisedSchema = v.pipe(v.object({
|
|
124
|
-
options: v.pipe(v.array(BuilderOptionSerialisedSchema), v.readonly()),
|
|
125
|
-
components: v.pipe(v.array(BuilderComponentSerialisedSchema), v.readonly()),
|
|
126
|
-
collections: v.pipe(v.array(BuilderSerialisedCollectionObject), v.readonly()),
|
|
127
|
-
expectations: v.pipe(v.array(BuilderExpectationSerialisedSchema), v.readonly())
|
|
128
|
-
}), v.readonly());
|
|
129
|
-
export const BuilderUIPageSerialisedSchema = v.pipe(BuilderSerialisedUIPageObject, v.readonly());
|
|
130
|
-
export const BuilderUIDescribeSerialisedSchema = v.pipe(BuilderSerialisedUIDescribeObject, v.readonly());
|
|
131
|
-
export const BuilderUICollectionSerialisedSchema = v.pipe(BuilderSerialisedUICollectionObject, v.readonly());
|
|
132
|
-
export const BuilderUIItemSerialisedSchema = v.pipe(v.variant('type', [
|
|
133
|
-
BuilderSerialisedUIPageObject,
|
|
134
|
-
BuilderSerialisedUIDescribeObject,
|
|
135
|
-
BuilderSerialisedUICollectionObject
|
|
136
|
-
]), v.readonly());
|
|
137
|
-
export const BuilderUIItemsSerialisedSchema = v.pipe(v.array(v.variant('type', [
|
|
138
|
-
BuilderSerialisedUIPageObject,
|
|
139
|
-
BuilderSerialisedUIDescribeObject,
|
|
140
|
-
BuilderSerialisedUICollectionObject
|
|
141
|
-
])), v.readonly());
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { BuilderGeneric } from '../core/index';
|
|
2
|
-
import type { BuilderSerialised, BuilderUISerialised } from './schemas';
|
|
3
|
-
import type { BuilderUIGeneric } from '../ui';
|
|
4
|
-
export declare const serialise: {
|
|
5
|
-
builder: typeof serialiseBuilder;
|
|
6
|
-
ui: typeof serialiseUI;
|
|
7
|
-
};
|
|
8
|
-
declare function serialiseBuilder(builder: BuilderGeneric): BuilderSerialised;
|
|
9
|
-
declare function serialiseUI(input: BuilderUIGeneric): BuilderUISerialised;
|
|
10
|
-
export {};
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import * as v from 'valibot';
|
|
2
|
-
import { BuilderCollection, BuilderComponent, BuilderOption, BuilderParameter, BuilderParameterSchema, BuilderSelectType } from '../core/index.js';
|
|
3
|
-
export const serialise = {
|
|
4
|
-
builder: serialiseBuilder,
|
|
5
|
-
ui: serialiseUI
|
|
6
|
-
};
|
|
7
|
-
function serialiseBuilder(builder) {
|
|
8
|
-
return {
|
|
9
|
-
options: builder.options.map(serialiseOption),
|
|
10
|
-
components: builder.components.map(serialiseComponent),
|
|
11
|
-
collections: builder.collections.map(serialiseCollection),
|
|
12
|
-
expectations: builder.expectations.map(serialiseExpectation)
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
function serialiseUI(input) {
|
|
16
|
-
return input.items;
|
|
17
|
-
}
|
|
18
|
-
function serialiseOption(option) {
|
|
19
|
-
return {
|
|
20
|
-
name: option.name,
|
|
21
|
-
values: serialiseValues(option.values),
|
|
22
|
-
gatePaths: option.gatePaths,
|
|
23
|
-
config: serialiseOptionWhenConfig(option.config)
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
function serialiseComponent(component) {
|
|
27
|
-
return {
|
|
28
|
-
name: component.name,
|
|
29
|
-
paths: component.paths,
|
|
30
|
-
dependencies: component.dependencies
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
function serialiseExpectation(expectation) {
|
|
34
|
-
return {
|
|
35
|
-
name: expectation.name,
|
|
36
|
-
kind: expectation.kind
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
function serialiseCollection(collection) {
|
|
40
|
-
return {
|
|
41
|
-
name: collection.name,
|
|
42
|
-
builder: serialiseBuilder(collection.builder),
|
|
43
|
-
min: collection.min,
|
|
44
|
-
max: collection.max,
|
|
45
|
-
gatePaths: collection.gatePaths,
|
|
46
|
-
config: serialiseCollectionWhenConfig(collection.config)
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
function serialiseValues(optionValues) {
|
|
50
|
-
if (v.is(BuilderParameterSchema, optionValues)) {
|
|
51
|
-
return { type: 'parameter' };
|
|
52
|
-
}
|
|
53
|
-
if (v.is(v.instance(BuilderSelectType), optionValues)) {
|
|
54
|
-
return {
|
|
55
|
-
type: 'select',
|
|
56
|
-
options: optionValues.options,
|
|
57
|
-
defaultValue: optionValues.defaultValue,
|
|
58
|
-
optional: optionValues.isOptional,
|
|
59
|
-
labels: optionValues.optionLabels
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
return {
|
|
63
|
-
type: 'toggle',
|
|
64
|
-
valueType: optionValues.valueSchema.expects,
|
|
65
|
-
defaultValue: optionValues.defaultValue,
|
|
66
|
-
optional: optionValues.isOptional
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
function serialiseOptionWhenConfig(config) {
|
|
70
|
-
if (config === null) {
|
|
71
|
-
return null;
|
|
72
|
-
}
|
|
73
|
-
switch (config.type) {
|
|
74
|
-
case 'enable': {
|
|
75
|
-
return { type: 'enable', values: serialiseValues(config.values) };
|
|
76
|
-
}
|
|
77
|
-
case 'match': {
|
|
78
|
-
if (v.is(BuilderParameterSchema, config.selectMap)) {
|
|
79
|
-
return {
|
|
80
|
-
type: 'match',
|
|
81
|
-
matchPath: config.matchPath,
|
|
82
|
-
selectMap: { type: 'parameter' }
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
return {
|
|
86
|
-
type: 'match',
|
|
87
|
-
matchPath: config.matchPath,
|
|
88
|
-
selectMap: Object.fromEntries(Object.entries(config.selectMap).map(([key, value]) => [
|
|
89
|
-
key,
|
|
90
|
-
value ? serialiseValues(value) : null
|
|
91
|
-
]))
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
case 'unless': {
|
|
95
|
-
return {
|
|
96
|
-
type: 'unless',
|
|
97
|
-
unlessPath: config.unlessPath,
|
|
98
|
-
disabledValues: config.disabledValues,
|
|
99
|
-
values: serialiseValues(config.values)
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
function serialiseCollectionWhenConfig(config) {
|
|
105
|
-
if (config === null) {
|
|
106
|
-
return null;
|
|
107
|
-
}
|
|
108
|
-
switch (config.type) {
|
|
109
|
-
case 'enable': {
|
|
110
|
-
return {
|
|
111
|
-
type: 'enable',
|
|
112
|
-
builder: serialiseBuilder(config.builder),
|
|
113
|
-
min: config.min,
|
|
114
|
-
max: config.max
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
case 'match': {
|
|
118
|
-
return {
|
|
119
|
-
type: 'match',
|
|
120
|
-
matchPath: config.matchPath,
|
|
121
|
-
selectMap: Object.fromEntries(Object.entries(config.selectMap).map(([key, value]) => [
|
|
122
|
-
key,
|
|
123
|
-
value
|
|
124
|
-
? { builder: serialiseBuilder(value.builder), min: value.min, max: value.max }
|
|
125
|
-
: null
|
|
126
|
-
]))
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
case 'unless': {
|
|
130
|
-
return {
|
|
131
|
-
type: 'unless',
|
|
132
|
-
unlessPath: config.unlessPath,
|
|
133
|
-
disabledValues: config.disabledValues,
|
|
134
|
-
builder: serialiseBuilder(config.builder),
|
|
135
|
-
min: config.min,
|
|
136
|
-
max: config.max
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
package/dist/ui.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { BuilderModelPaths } from './paths';
|
|
2
|
-
import type { BuilderCollectionNamesOf, BuilderGeneric } from './core/index';
|
|
3
|
-
import type { BuilderExpectationEntries, BuilderExpectations, BuilderModelAsserted } from './core/expectation';
|
|
4
|
-
import type { BuilderUIItems } from './schemas/index';
|
|
5
|
-
export type BuilderUIGeneric = BuilderUI<BuilderGeneric>;
|
|
6
|
-
export type BuilderUIs = ReadonlyArray<BuilderUI<BuilderGeneric | null>>;
|
|
7
|
-
export declare class BuilderUI<Builder extends BuilderGeneric | null = BuilderGeneric> {
|
|
8
|
-
readonly builder: Builder;
|
|
9
|
-
readonly items: BuilderUIItems;
|
|
10
|
-
readonly expectations: BuilderExpectationEntries;
|
|
11
|
-
constructor(builder: Builder, items?: BuilderUIItems, expectations?: BuilderExpectationEntries);
|
|
12
|
-
expect<const Expectations extends BuilderExpectations>(...expectations: Expectations): BuilderUI<BuilderModelAsserted<Builder, Expectations>>;
|
|
13
|
-
page(label: string | null, paths: BuilderModelPaths<Builder>): BuilderUI<Builder>;
|
|
14
|
-
describe(label: string | null, paths: BuilderModelPaths<Builder>): BuilderUI<Builder>;
|
|
15
|
-
collection<const Name extends BuilderCollectionNamesOf<Builder>>(name: Name, label: string, itemUI: BuilderUI<BuilderGeneric | null>): BuilderUI<Builder>;
|
|
16
|
-
}
|
|
17
|
-
export declare function ui(): BuilderUI<null>;
|
|
18
|
-
export declare function ui<const Builder extends BuilderGeneric>(builder: Builder, ...uis: BuilderUIs): BuilderUI<Builder>;
|
package/dist/ui.js
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import * as v from 'valibot';
|
|
2
|
-
import { BuilderExpectation } from './core/expectation.js';
|
|
3
|
-
import { check } from './check.js';
|
|
4
|
-
export class BuilderUI {
|
|
5
|
-
builder;
|
|
6
|
-
items;
|
|
7
|
-
expectations;
|
|
8
|
-
constructor(builder, items = [], expectations = []) {
|
|
9
|
-
this.builder = builder;
|
|
10
|
-
this.items = items;
|
|
11
|
-
this.expectations = expectations;
|
|
12
|
-
}
|
|
13
|
-
expect(...expectations) {
|
|
14
|
-
return new BuilderUI(
|
|
15
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- type narrowing cast, validated at merge time
|
|
16
|
-
this.builder, this.items, [...this.expectations, ...expectations]);
|
|
17
|
-
}
|
|
18
|
-
page(label, paths) {
|
|
19
|
-
return new BuilderUI(this.builder, [...this.items, { type: 'page', label, paths }], this.expectations);
|
|
20
|
-
}
|
|
21
|
-
describe(label, paths) {
|
|
22
|
-
return new BuilderUI(this.builder, [...this.items, { type: 'describe', label, paths }], this.expectations);
|
|
23
|
-
}
|
|
24
|
-
collection(name, label, itemUI) {
|
|
25
|
-
if (this.builder) {
|
|
26
|
-
const foundCollection = this.builder.collections.find((entry) => entry.name === name);
|
|
27
|
-
check.truthy(foundCollection, `Collection '${name}' not found! ❌`);
|
|
28
|
-
}
|
|
29
|
-
return new BuilderUI(this.builder, [...this.items, { type: 'collection', name, label, items: itemUI.items }], this.expectations);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
export function ui(builder, ...uis) {
|
|
33
|
-
if (!builder) {
|
|
34
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- null builder for partial UIs, typed as BuilderUI<null>
|
|
35
|
-
return new BuilderUI(null);
|
|
36
|
-
}
|
|
37
|
-
const merged = uis.reduce((accumulated, currentUI) => {
|
|
38
|
-
return new BuilderUI(
|
|
39
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- accumulated.builder is always the real builder from the first argument
|
|
40
|
-
accumulated.builder, [...accumulated.items, ...currentUI.items], [...accumulated.expectations, ...currentUI.expectations]);
|
|
41
|
-
}, new BuilderUI(builder));
|
|
42
|
-
merged.expectations.forEach((expectation) => {
|
|
43
|
-
if (v.is(v.instance(BuilderExpectation), expectation)) {
|
|
44
|
-
if (expectation.kind === 'option') {
|
|
45
|
-
expectation.validate(merged.builder.options);
|
|
46
|
-
}
|
|
47
|
-
else if (expectation.kind === 'collection') {
|
|
48
|
-
expectation.validate(merged.builder.collections);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
return merged;
|
|
53
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|