@lucania/schema 3.1.2 → 3.1.3
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/build/builder.d.ts +4 -0
- package/build/index.js +28 -24
- package/build/typing/toolbox.d.ts +1 -1
- package/package.json +1 -1
package/build/builder.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ import { NumberSchema, NumberSource } from "./schema/NumberSchema";
|
|
|
11
11
|
import { ObjectSchema, ObjectSource, ObjectSubschema } from "./schema/ObjectSchema";
|
|
12
12
|
import { OrSetSchema, OrSetSchemaSource } from "./schema/OrSetSchema";
|
|
13
13
|
import { StringSchema, StringSource } from "./schema/StringSchema";
|
|
14
|
+
import { TupleSchema, TupleSource } from "./schema/TupleSchema";
|
|
14
15
|
import { BaseSchemaAny } from "./typing/extended";
|
|
15
16
|
import { DefaultValue, ModelValue, SourceValue } from "./typing/toolbox";
|
|
16
17
|
/**
|
|
@@ -147,6 +148,9 @@ export declare namespace Schema {
|
|
|
147
148
|
function Enumeration<Members extends string[]>(subschema: TypedMembers<Members>): EnumerationSchema<Members, true, undefined>;
|
|
148
149
|
function Enumeration<Members extends string[], Required extends boolean>(subschema: TypedMembers<Members>, required: Required): EnumerationSchema<Members, Required, undefined>;
|
|
149
150
|
function Enumeration<Members extends string[], Required extends boolean, Default extends DefaultValue<EnumerationSource<Members>>>(subschema: TypedMembers<Members>, required: Required, defaultValue: Default): EnumerationSchema<Members, Required, Default>;
|
|
151
|
+
function Tuple<Members extends BaseSchemaAny[]>(members: TypedMembers<Members>): TupleSchema<Members, true, undefined>;
|
|
152
|
+
function Tuple<Members extends BaseSchemaAny[], Required extends boolean>(members: TypedMembers<Members>, required: Required): TupleSchema<Members, Required, undefined>;
|
|
153
|
+
function Tuple<Members extends BaseSchemaAny[], Required extends boolean, Default extends DefaultValue<TupleSource<Members>>>(members: TypedMembers<Members>, required: Required, defaultValue: Default): TupleSchema<Members, Required, Default>;
|
|
150
154
|
function OrSet<MemberSchemas extends BaseSchemaAny[]>(subschema: TypedMembers<MemberSchemas>): OrSetSchema<MemberSchemas, true, undefined>;
|
|
151
155
|
function OrSet<MemberSchemas extends BaseSchemaAny[], Required extends boolean>(subschema: TypedMembers<MemberSchemas>, required: Required): OrSetSchema<MemberSchemas, Required, undefined>;
|
|
152
156
|
function OrSet<MemberSchemas extends BaseSchemaAny[], Required extends boolean, Default extends DefaultValue<OrSetSchemaSource<MemberSchemas>>>(subschema: TypedMembers<MemberSchemas>, required: Required, defaultValue: Default): OrSetSchema<MemberSchemas, Required, Default>;
|
package/build/index.js
CHANGED
|
@@ -856,6 +856,30 @@
|
|
|
856
856
|
}
|
|
857
857
|
}
|
|
858
858
|
|
|
859
|
+
class TupleSchema extends BaseSchema {
|
|
860
|
+
subschema;
|
|
861
|
+
constructor(subschema, required, defaultValue, additionalValidationPasses) {
|
|
862
|
+
super(required, defaultValue, additionalValidationPasses);
|
|
863
|
+
this.subschema = subschema;
|
|
864
|
+
}
|
|
865
|
+
get type() { return "Tuple"; }
|
|
866
|
+
_validate(source, options, pass) {
|
|
867
|
+
return source;
|
|
868
|
+
}
|
|
869
|
+
convert(value, pass) {
|
|
870
|
+
return this.subschema.map((schema, i) => schema.validate(value[i]));
|
|
871
|
+
}
|
|
872
|
+
clone() {
|
|
873
|
+
return new TupleSchema(this.subschema, this._required, this._default, this._additionalValidationPasses);
|
|
874
|
+
}
|
|
875
|
+
getJsonSchema() {
|
|
876
|
+
return {
|
|
877
|
+
type: "Tuple",
|
|
878
|
+
description: this._getJsonSchemaDescription(),
|
|
879
|
+
};
|
|
880
|
+
}
|
|
881
|
+
}
|
|
882
|
+
|
|
859
883
|
/**
|
|
860
884
|
* A collection of helper functions used to create the standard set of schemas.
|
|
861
885
|
*/
|
|
@@ -901,6 +925,10 @@
|
|
|
901
925
|
return new EnumerationSchema($members, required, defaultValue);
|
|
902
926
|
}
|
|
903
927
|
Schema.Enumeration = Enumeration;
|
|
928
|
+
function Tuple({ $members }, required = true, defaultValue = undefined) {
|
|
929
|
+
return new TupleSchema($members, required, defaultValue);
|
|
930
|
+
}
|
|
931
|
+
Schema.Tuple = Tuple;
|
|
904
932
|
function OrSet({ $members }, required = true, defaultValue = undefined) {
|
|
905
933
|
return new OrSetSchema($members, required, defaultValue);
|
|
906
934
|
}
|
|
@@ -923,30 +951,6 @@
|
|
|
923
951
|
Schema.Values = Values;
|
|
924
952
|
})(exports.Schema || (exports.Schema = {}));
|
|
925
953
|
|
|
926
|
-
class TupleSchema extends BaseSchema {
|
|
927
|
-
subschema;
|
|
928
|
-
constructor(subschema, required, defaultValue, additionalValidationPasses) {
|
|
929
|
-
super(required, defaultValue, additionalValidationPasses);
|
|
930
|
-
this.subschema = subschema;
|
|
931
|
-
}
|
|
932
|
-
get type() { return "Tuple"; }
|
|
933
|
-
_validate(source, options, pass) {
|
|
934
|
-
return source;
|
|
935
|
-
}
|
|
936
|
-
convert(value, pass) {
|
|
937
|
-
return this.subschema.map((schema, i) => schema.validate(value[i]));
|
|
938
|
-
}
|
|
939
|
-
clone() {
|
|
940
|
-
return new TupleSchema(this.subschema, this._required, this._default, this._additionalValidationPasses);
|
|
941
|
-
}
|
|
942
|
-
getJsonSchema() {
|
|
943
|
-
return {
|
|
944
|
-
type: "Tuple",
|
|
945
|
-
description: this._getJsonSchemaDescription(),
|
|
946
|
-
};
|
|
947
|
-
}
|
|
948
|
-
}
|
|
949
|
-
|
|
950
954
|
exports.$ = exports.Schema;
|
|
951
955
|
exports.AnySchema = AnySchema;
|
|
952
956
|
exports.ArraySchema = ArraySchema;
|
|
@@ -9,7 +9,7 @@ export type SourceRequirement<Layout extends BaseSchemaAny> = (Layout extends Ba
|
|
|
9
9
|
export type SourceValue<Source, Required extends boolean, Default extends DefaultValue<Source>> = (Required extends true ? (undefined extends Default ? (Source) : (Source | undefined)) : Source | undefined);
|
|
10
10
|
export type ModelRequirement<Layout extends BaseSchemaAny> = (Layout extends BaseSchema<any, any, infer Required, infer Default> ? (Required extends true ? (true) : (Default extends undefined ? false : true)) : never);
|
|
11
11
|
export type ModelValue<Source, Model, Required extends boolean, Default extends DefaultValue<Source>> = (Required extends true ? Model : Default extends undefined ? Model | undefined : Model);
|
|
12
|
-
export type DefaultValue<
|
|
12
|
+
export type DefaultValue<Source> = undefined | Source | ((pass: ValidationPass) => Source);
|
|
13
13
|
export type AdditionalValidatorBeforeType = ("beforeAll" | "beforeDefault" | "afterDefault");
|
|
14
14
|
export type AdditionalValidatorAfterType = ("beforeConversion" | "afterConversion" | "afterAll");
|
|
15
15
|
/**
|