@builder-builder/builder 0.0.18 → 0.0.20
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/bb.d.ts +5 -6
- package/dist/bb.js +7 -4
- package/dist/entities/builder/builder.d.ts +2 -4
- package/dist/entities/collection/config.d.ts +101 -0
- package/dist/entities/collection/config.js +1 -0
- package/dist/entities/collection/index.d.ts +2 -2
- package/dist/entities/collection/index.js +1 -1
- package/dist/entities/component/component.d.ts +3 -3
- package/dist/entities/component/component.js +4 -4
- package/dist/entities/component/config.d.ts +135 -0
- package/dist/entities/component/{details.js → config.js} +7 -6
- package/dist/entities/component/index.d.ts +2 -2
- package/dist/entities/component/index.js +1 -1
- package/dist/entities/component/when.d.ts +5 -5
- package/dist/entities/component/when.js +3 -3
- package/dist/entities/index.d.ts +8 -9
- package/dist/entities/index.js +3 -3
- package/dist/entities/kind.d.ts +1 -1
- package/dist/entities/model/index.d.ts +1 -1
- package/dist/entities/model/methods.d.ts +8 -8
- package/dist/entities/model/methods.js +2 -2
- package/dist/entities/model/models.d.ts +1 -1
- package/dist/entities/option/config.d.ts +109 -0
- package/dist/entities/option/config.js +15 -0
- package/dist/entities/option/index.d.ts +6 -6
- package/dist/entities/option/index.js +3 -3
- package/dist/entities/option/option.d.ts +3 -3
- package/dist/entities/option/option.js +4 -4
- package/dist/entities/option/select.d.ts +14 -14
- package/dist/entities/option/select.js +5 -5
- package/dist/entities/option/toggle.d.ts +10 -10
- package/dist/entities/option/toggle.js +7 -7
- package/dist/entities/option/when.d.ts +5 -5
- package/dist/entities/{refs.d.ts → references.d.ts} +2 -2
- package/dist/entities/serialise.d.ts +4 -4
- package/dist/entities/serialise.js +10 -10
- package/dist/entities/ui/input.d.ts +1 -2
- package/dist/entities/ui/ui.d.ts +1 -2
- package/dist/entities/ui/uis.d.ts +1 -1
- package/dist/entities/ui/uis.js +1 -1
- package/dist/entities/validated.d.ts +5 -5
- package/dist/environment.d.ts +1 -1
- package/dist/index.d.ts +11 -10
- package/dist/index.js +2 -2
- package/dist/mappers/index.d.ts +3 -5
- package/dist/mappers/index.js +2 -3
- package/dist/mappers/instance.d.ts +2 -2
- package/dist/mappers/instance.js +6 -6
- package/dist/mappers/order.d.ts +2 -2
- package/dist/mappers/order.js +4 -4
- package/dist/mappers/render/pages.d.ts +2 -2
- package/dist/mappers/render/render.d.ts +2 -2
- package/dist/mappers/render/render.js +11 -11
- package/dist/mappers/resolve.d.ts +11 -8
- package/dist/mappers/resolve.js +46 -27
- package/dist/mappers/variants/option-graph.d.ts +2 -2
- package/dist/private.d.ts +1 -1
- package/dist/private.js +1 -1
- package/dist/validate/builder.d.ts +2 -2
- package/dist/validate/index.d.ts +1 -0
- package/dist/validate/model.d.ts +2 -2
- package/dist/validate/model.js +3 -2
- package/dist/validate/paths.d.ts +1 -2
- package/dist/validate/paths.js +3 -20
- package/dist/validate/pricing.d.ts +2 -2
- package/dist/validate/resolve.d.ts +2 -2
- package/dist/validate/ui.d.ts +2 -2
- package/dist/validate/ui.js +3 -2
- package/dist/validate/variants.js +14 -3
- package/package.json +1 -1
- package/dist/entities/component/details.d.ts +0 -66
- package/dist/entities/entry.d.ts +0 -4
- package/dist/entities/option/values.d.ts +0 -49
- package/dist/entities/option/values.js +0 -14
- package/dist/entities/refs.js +0 -1
- /package/dist/entities/{entry.js → references.js} +0 -0
package/dist/validate/model.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { check } from '../check.js';
|
|
2
2
|
import { BuilderModelSerialisedSchema, BuilderWhenSerialisedSchema, model, modelsMerge, serialise } from '../entities/index.js';
|
|
3
|
+
import { resolveCollections } from '../mappers/index.js';
|
|
3
4
|
import { validate } from './brand.js';
|
|
4
5
|
import { BuilderValidateErrors } from './errors.js';
|
|
5
6
|
import { checkExpectations } from './expectations.js';
|
|
6
|
-
import { checkPath
|
|
7
|
+
import { checkPath } from './paths.js';
|
|
7
8
|
import { resolver } from './resolve.js';
|
|
8
9
|
const EMPTY_MODEL = validate(serialise.model(model()));
|
|
9
10
|
export function validateModel(input, references = [], errors = new BuilderValidateErrors()) {
|
|
@@ -135,7 +136,7 @@ export function validateModelStructure(input, resolve, errors) {
|
|
|
135
136
|
}
|
|
136
137
|
}
|
|
137
138
|
function checkCollectionBounds(collection) {
|
|
138
|
-
|
|
139
|
+
resolveCollections(collection).forEach(({ min, max }) => {
|
|
139
140
|
if (typeof min !== 'number' || typeof max !== 'number') {
|
|
140
141
|
return;
|
|
141
142
|
}
|
package/dist/validate/paths.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { BuilderModelSerialised } from '../entities/index';
|
|
2
2
|
import type { BuilderPath } from '../paths';
|
|
3
3
|
import type { BuilderValidateErrors } from './errors';
|
|
4
4
|
export declare function checkPath(model: BuilderModelSerialised, path: BuilderPath, errors: BuilderValidateErrors): void;
|
|
5
|
-
export declare function collectionConfigs(collection: BuilderCollectionSerialised): ReadonlyArray<BuilderCollectionConfigSerialised>;
|
package/dist/validate/paths.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as v from 'valibot';
|
|
2
2
|
import { check } from '../check.js';
|
|
3
|
-
import {
|
|
3
|
+
import { BuilderModelSerialisedSchema } from '../entities/index.js';
|
|
4
|
+
import { resolveCollections } from '../mappers/index.js';
|
|
4
5
|
const NumberSchema = v.number();
|
|
5
6
|
const StringSchema = v.string();
|
|
6
7
|
export function checkPath(model, path, errors) {
|
|
@@ -17,24 +18,6 @@ export function checkPath(model, path, errors) {
|
|
|
17
18
|
errors.invalidPath('option-not-found');
|
|
18
19
|
}
|
|
19
20
|
}
|
|
20
|
-
export function collectionConfigs(collection) {
|
|
21
|
-
const { payload } = collection;
|
|
22
|
-
if (check.is(BuilderCollectionConfigSerialisedSchema, payload)) {
|
|
23
|
-
return [payload];
|
|
24
|
-
}
|
|
25
|
-
if (!check.is(BuilderWhenSerialisedSchema, payload)) {
|
|
26
|
-
return [];
|
|
27
|
-
}
|
|
28
|
-
if (payload.type === 'match') {
|
|
29
|
-
if (!check.is(BuilderCollectionSelectMapSerialisedSchema, payload.selectMap)) {
|
|
30
|
-
return [];
|
|
31
|
-
}
|
|
32
|
-
return Object.values(payload.selectMap).flatMap((value) => check.is(BuilderCollectionConfigSerialisedSchema, value) ? [value] : []);
|
|
33
|
-
}
|
|
34
|
-
return check.is(BuilderCollectionConfigSerialisedSchema, payload.payload)
|
|
35
|
-
? [payload.payload]
|
|
36
|
-
: [];
|
|
37
|
-
}
|
|
38
21
|
function walkPath(candidates, remaining, errors) {
|
|
39
22
|
if (remaining.length === 0) {
|
|
40
23
|
return candidates;
|
|
@@ -46,7 +29,7 @@ function walkPath(candidates, remaining, errors) {
|
|
|
46
29
|
}
|
|
47
30
|
const matchedConfigs = candidates.flatMap((current) => {
|
|
48
31
|
const collection = current.collections.find((entry) => entry.name === collectionName);
|
|
49
|
-
return collection == null ? [] : [
|
|
32
|
+
return collection == null ? [] : [resolveCollections(collection)];
|
|
50
33
|
});
|
|
51
34
|
if (matchedConfigs.length === 0) {
|
|
52
35
|
errors.invalidPath('missing-collection');
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { BuilderModelSerialised, BuilderPricingSerialised, BuilderPricingValidated,
|
|
1
|
+
import type { BuilderModelSerialised, BuilderPricingSerialised, BuilderPricingValidated, BuilderReferences } from '../entities/index';
|
|
2
2
|
import type { BuilderResolve } from './resolve';
|
|
3
3
|
import type { ValidationResult } from './result';
|
|
4
4
|
import { BuilderValidateErrors } from './errors.js';
|
|
5
5
|
export type BuilderPricingValidationResult = ValidationResult<BuilderPricingValidated>;
|
|
6
|
-
export declare function validatePricing(input: unknown, references?:
|
|
6
|
+
export declare function validatePricing(input: unknown, references?: BuilderReferences, errors?: BuilderValidateErrors): BuilderPricingValidationResult;
|
|
7
7
|
export declare function validatePricingStructure(input: BuilderPricingSerialised, resolve: BuilderResolve, errors: BuilderValidateErrors): BuilderPricingSerialised;
|
|
8
8
|
export declare function checkPricingExpectations(model: BuilderModelSerialised, pricing: BuilderPricingSerialised, errors: BuilderValidateErrors): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BuilderBindings,
|
|
1
|
+
import type { BuilderBindings, BuilderReferences } from '../entities/index';
|
|
2
2
|
import type { BuilderValidateErrors } from './errors';
|
|
3
3
|
export type BuilderResolve = (value: unknown) => unknown;
|
|
4
|
-
export declare function resolver(errors: BuilderValidateErrors, references?:
|
|
4
|
+
export declare function resolver(errors: BuilderValidateErrors, references?: BuilderReferences, bindings?: BuilderBindings): BuilderResolve;
|
package/dist/validate/ui.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { BuilderModelSerialised,
|
|
1
|
+
import type { BuilderModelSerialised, BuilderReferences, BuilderUISerialised, BuilderUIValidated } from '../entities/index';
|
|
2
2
|
import type { BuilderResolve } from './resolve';
|
|
3
3
|
import type { ValidationResult } from './result';
|
|
4
4
|
import { BuilderValidateErrors } from './errors.js';
|
|
5
5
|
export type BuilderUIValidationResult = ValidationResult<BuilderUIValidated>;
|
|
6
|
-
export declare function validateUI(input: unknown, references?:
|
|
6
|
+
export declare function validateUI(input: unknown, references?: BuilderReferences, errors?: BuilderValidateErrors): BuilderUIValidationResult;
|
|
7
7
|
export declare function validateUIStructure(ui: BuilderUISerialised, resolve: BuilderResolve, errors: BuilderValidateErrors): BuilderUIValidated;
|
|
8
8
|
export declare function checkUIExpectations(mergedModel: BuilderModelSerialised, ui: BuilderUIValidated, errors: BuilderValidateErrors): void;
|
package/dist/validate/ui.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { check } from '../check.js';
|
|
2
2
|
import { BuilderModelSerialisedSchema, BuilderUIInputMetadataSchema, BuilderUISerialisedSchema, modelsMerge, serialise, uis } from '../entities/index.js';
|
|
3
|
+
import { resolveCollections } from '../mappers/index.js';
|
|
3
4
|
import { validate } from './brand.js';
|
|
4
5
|
import { BuilderValidateErrors } from './errors.js';
|
|
5
6
|
import { checkExpectations } from './expectations.js';
|
|
6
|
-
import { checkPath
|
|
7
|
+
import { checkPath } from './paths.js';
|
|
7
8
|
import { resolver } from './resolve.js';
|
|
8
9
|
export function validateUI(input, references = [], errors = new BuilderValidateErrors()) {
|
|
9
10
|
if (!check.is(BuilderUISerialisedSchema, input)) {
|
|
@@ -118,7 +119,7 @@ export function checkUIExpectations(mergedModel, ui, errors) {
|
|
|
118
119
|
if (collection == null) {
|
|
119
120
|
return;
|
|
120
121
|
}
|
|
121
|
-
const innerModels =
|
|
122
|
+
const innerModels = resolveCollections(collection).flatMap(({ model: configModel }) => check.is(BuilderModelSerialisedSchema, configModel) ? [configModel] : []);
|
|
122
123
|
innerModels.forEach((innerModel) => {
|
|
123
124
|
const mergedInnerModel = modelsMerge(innerModel);
|
|
124
125
|
errors.scope('items', () => walkItems(mergedInnerModel, pages.items));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { check } from '../check.js';
|
|
2
|
-
import { detailValueSchema } from '../entities/index.js';
|
|
2
|
+
import { BuilderComponentConfigSerialisedSchema, detailValueSchema } from '../entities/index.js';
|
|
3
3
|
import { BuilderComponentVariantsSchema } from '../instance.js';
|
|
4
|
-
import { createVariants
|
|
4
|
+
import { createVariants } from '../mappers/index.js';
|
|
5
5
|
import { validate } from './brand.js';
|
|
6
6
|
import { BuilderValidateErrors } from './errors.js';
|
|
7
7
|
export function validateVariants(model, input, options = {}, errors = new BuilderValidateErrors()) {
|
|
@@ -66,7 +66,7 @@ export function validateVariants(model, input, options = {}, errors = new Builde
|
|
|
66
66
|
}
|
|
67
67
|
componentVariants.forEach(({ instance, details = {} }, index) => {
|
|
68
68
|
errors.scope(index, () => {
|
|
69
|
-
const resolved =
|
|
69
|
+
const resolved = variantDetails(entry, instance);
|
|
70
70
|
const fields = resolved?.fields ?? [];
|
|
71
71
|
const expectedNames = new Set(fields.map(({ name }) => name));
|
|
72
72
|
errors.scope('details', () => {
|
|
@@ -97,6 +97,17 @@ export function validateVariants(model, input, options = {}, errors = new Builde
|
|
|
97
97
|
});
|
|
98
98
|
return [validate(variants), errors.errors];
|
|
99
99
|
}
|
|
100
|
+
function variantDetails(component, variantInstance) {
|
|
101
|
+
const { payload } = component;
|
|
102
|
+
if (check.is(BuilderComponentConfigSerialisedSchema, payload)) {
|
|
103
|
+
return payload;
|
|
104
|
+
}
|
|
105
|
+
if (payload.type === 'match') {
|
|
106
|
+
const value = variantInstance[String(payload.matchPath.at(-1))];
|
|
107
|
+
return payload.selectMap[String(value)] ?? null;
|
|
108
|
+
}
|
|
109
|
+
return payload.payload;
|
|
110
|
+
}
|
|
100
111
|
function sortedKey(instance) {
|
|
101
112
|
const entries = Object.entries(instance).filter(([, value]) => value != null);
|
|
102
113
|
return JSON.stringify(entries.sort(([keyA], [keyB]) => keyA.localeCompare(keyB)));
|
package/package.json
CHANGED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import type { Paramable } from '../../references';
|
|
2
|
-
import type { BuilderTags } from '../tags';
|
|
3
|
-
import type { BuilderComponentFields } from './field';
|
|
4
|
-
import * as v from 'valibot';
|
|
5
|
-
export declare class BuilderComponentDetails<const Fields extends Paramable<BuilderComponentFields> = Paramable<BuilderComponentFields>> {
|
|
6
|
-
readonly type: 'component-details';
|
|
7
|
-
readonly fields: Fields;
|
|
8
|
-
readonly tags?: BuilderTags;
|
|
9
|
-
constructor(fields: Fields, tags?: BuilderTags);
|
|
10
|
-
tag(...tags: Array<string>): BuilderComponentDetails<Fields>;
|
|
11
|
-
}
|
|
12
|
-
export declare const BuilderComponentDetailsSchema: v.InstanceSchema<typeof BuilderComponentDetails, undefined>;
|
|
13
|
-
export declare const BuilderComponentDetailsSerialisedSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
14
|
-
readonly fields: v.UnionSchema<[v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
15
|
-
readonly type: v.LiteralSchema<"parameter", undefined>;
|
|
16
|
-
readonly id: v.StringSchema<undefined>;
|
|
17
|
-
readonly name: v.StringSchema<undefined>;
|
|
18
|
-
}, undefined>, v.ReadonlyAction<{
|
|
19
|
-
type: "parameter";
|
|
20
|
-
id: string;
|
|
21
|
-
name: string;
|
|
22
|
-
}>]>, v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
23
|
-
readonly type: v.LiteralSchema<"ref", undefined>;
|
|
24
|
-
readonly id: v.StringSchema<undefined>;
|
|
25
|
-
}, undefined>, v.ReadonlyAction<{
|
|
26
|
-
type: "ref";
|
|
27
|
-
id: string;
|
|
28
|
-
}>]>, v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
29
|
-
readonly type: v.LiteralSchema<"component-field", undefined>;
|
|
30
|
-
readonly name: v.StringSchema<undefined>;
|
|
31
|
-
readonly valueType: v.PicklistSchema<["string", "boolean", "number"], undefined>;
|
|
32
|
-
readonly isOptional: v.BooleanSchema<undefined>;
|
|
33
|
-
readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
|
|
34
|
-
}, undefined>, v.ReadonlyAction<{
|
|
35
|
-
type: "component-field";
|
|
36
|
-
name: string;
|
|
37
|
-
valueType: "string" | "number" | "boolean";
|
|
38
|
-
isOptional: boolean;
|
|
39
|
-
tags?: readonly string[] | undefined;
|
|
40
|
-
}>]>, undefined>, v.ReadonlyAction<Readonly<{
|
|
41
|
-
type: "component-field";
|
|
42
|
-
name: string;
|
|
43
|
-
valueType: "string" | "number" | "boolean";
|
|
44
|
-
isOptional: boolean;
|
|
45
|
-
tags?: readonly string[] | undefined;
|
|
46
|
-
}>[]>]>], undefined>;
|
|
47
|
-
readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
|
|
48
|
-
}, undefined>, v.ReadonlyAction<{
|
|
49
|
-
fields: Readonly<{
|
|
50
|
-
type: "parameter";
|
|
51
|
-
id: string;
|
|
52
|
-
name: string;
|
|
53
|
-
}> | Readonly<{
|
|
54
|
-
type: "ref";
|
|
55
|
-
id: string;
|
|
56
|
-
}> | readonly Readonly<{
|
|
57
|
-
type: "component-field";
|
|
58
|
-
name: string;
|
|
59
|
-
valueType: "string" | "number" | "boolean";
|
|
60
|
-
isOptional: boolean;
|
|
61
|
-
tags?: readonly string[] | undefined;
|
|
62
|
-
}>[];
|
|
63
|
-
tags?: readonly string[] | undefined;
|
|
64
|
-
}>]>;
|
|
65
|
-
export type BuilderComponentDetailsSerialised = v.InferOutput<typeof BuilderComponentDetailsSerialisedSchema>;
|
|
66
|
-
export declare function componentDetails<const Fields extends BuilderComponentFields>(...fields: Fields): BuilderComponentDetails<Fields>;
|
package/dist/entities/entry.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { BuilderCollectionSerialised } from './collection/index';
|
|
2
|
-
import type { BuilderComponentSerialised } from './component/index';
|
|
3
|
-
import type { BuilderOptionSerialised } from './option/index';
|
|
4
|
-
export type BuilderModelEntrySerialised = BuilderOptionSerialised | BuilderComponentSerialised | BuilderCollectionSerialised;
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import * as v from 'valibot';
|
|
2
|
-
export declare const BuilderOptionValuesSchema: v.UnionSchema<[v.InstanceSchema<typeof import("./select.js").BuilderSelectType, undefined>, v.InstanceSchema<typeof import("./toggle.js").BuilderToggleType, undefined>], undefined>;
|
|
3
|
-
export type BuilderOptionValues = v.InferOutput<typeof BuilderOptionValuesSchema>;
|
|
4
|
-
export declare const BuilderOptionValuesSerialisedSchema: v.SchemaWithPipe<readonly [v.VariantSchema<"type", [v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
5
|
-
readonly type: v.LiteralSchema<"select", undefined>;
|
|
6
|
-
readonly options: v.SchemaWithPipe<readonly [v.TupleWithRestSchema<[v.StringSchema<undefined>], v.StringSchema<undefined>, undefined>, v.ReadonlyAction<[string, ...string[]]>]>;
|
|
7
|
-
readonly defaultValue: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
8
|
-
readonly isOptional: v.BooleanSchema<undefined>;
|
|
9
|
-
readonly optionLabels: v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>;
|
|
10
|
-
readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
|
|
11
|
-
}, undefined>, v.ReadonlyAction<{
|
|
12
|
-
type: "select";
|
|
13
|
-
readonly options: readonly [string, ...string[]];
|
|
14
|
-
defaultValue: string | null;
|
|
15
|
-
isOptional: boolean;
|
|
16
|
-
optionLabels: {
|
|
17
|
-
[x: string]: string;
|
|
18
|
-
};
|
|
19
|
-
tags?: readonly string[] | undefined;
|
|
20
|
-
}>]>, v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
21
|
-
readonly type: v.LiteralSchema<"toggle", undefined>;
|
|
22
|
-
readonly valueType: v.PicklistSchema<["string", "boolean", "number"], undefined>;
|
|
23
|
-
readonly defaultValue: v.NullableSchema<v.UnionSchema<[v.BooleanSchema<undefined>, v.StringSchema<undefined>, v.NumberSchema<undefined>], undefined>, undefined>;
|
|
24
|
-
readonly isOptional: v.BooleanSchema<undefined>;
|
|
25
|
-
readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
|
|
26
|
-
}, undefined>, v.ReadonlyAction<{
|
|
27
|
-
type: "toggle";
|
|
28
|
-
valueType: "string" | "number" | "boolean";
|
|
29
|
-
defaultValue: string | number | boolean | null;
|
|
30
|
-
isOptional: boolean;
|
|
31
|
-
tags?: readonly string[] | undefined;
|
|
32
|
-
}>]>], undefined>, v.ReadonlyAction<Readonly<{
|
|
33
|
-
type: "select";
|
|
34
|
-
readonly options: readonly [string, ...string[]];
|
|
35
|
-
defaultValue: string | null;
|
|
36
|
-
isOptional: boolean;
|
|
37
|
-
optionLabels: {
|
|
38
|
-
[x: string]: string;
|
|
39
|
-
};
|
|
40
|
-
tags?: readonly string[] | undefined;
|
|
41
|
-
}> | Readonly<{
|
|
42
|
-
type: "toggle";
|
|
43
|
-
valueType: "string" | "number" | "boolean";
|
|
44
|
-
defaultValue: string | number | boolean | null;
|
|
45
|
-
isOptional: boolean;
|
|
46
|
-
tags?: readonly string[] | undefined;
|
|
47
|
-
}>>]>;
|
|
48
|
-
export type BuilderOptionValuesSerialised = v.InferOutput<typeof BuilderOptionValuesSerialisedSchema>;
|
|
49
|
-
export declare function optionValueSchema(payload: BuilderOptionValuesSerialised): v.GenericSchema;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import * as v from 'valibot';
|
|
2
|
-
import { BuilderSelectTypeSchema, BuilderSelectTypeSerialisedSchema, selectValueSchema } from './select.js';
|
|
3
|
-
import { BuilderToggleTypeSchema, BuilderToggleTypeSerialisedSchema, toggleValueSchema } from './toggle.js';
|
|
4
|
-
export const BuilderOptionValuesSchema = v.union([
|
|
5
|
-
BuilderSelectTypeSchema,
|
|
6
|
-
BuilderToggleTypeSchema
|
|
7
|
-
]);
|
|
8
|
-
export const BuilderOptionValuesSerialisedSchema = v.pipe(v.variant('type', [BuilderSelectTypeSerialisedSchema, BuilderToggleTypeSerialisedSchema]), v.readonly());
|
|
9
|
-
export function optionValueSchema(payload) {
|
|
10
|
-
if (payload.type === 'select') {
|
|
11
|
-
return selectValueSchema(payload.options, payload.isOptional);
|
|
12
|
-
}
|
|
13
|
-
return toggleValueSchema(payload.valueType, payload.isOptional);
|
|
14
|
-
}
|
package/dist/entities/refs.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
File without changes
|