@palmares/schemas 0.2.14 → 0.2.15
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/CHANGELOG.md +10 -0
- package/dist/src/adapter/index.d.ts +6 -0
- package/dist/src/adapter/index.d.ts.map +1 -1
- package/dist/src/index.cjs +18 -13
- package/dist/src/index.d.ts +24 -15
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +15 -10
- package/dist/src/model.cjs +13 -8
- package/dist/src/model.d.ts +7 -7
- package/dist/src/model.d.ts.map +1 -1
- package/dist/src/model.js +13 -8
- package/dist/src/schema/array.cjs +13 -8
- package/dist/src/schema/array.d.ts +25 -29
- package/dist/src/schema/array.d.ts.map +1 -1
- package/dist/src/schema/array.js +13 -8
- package/dist/src/schema/boolean.cjs +13 -8
- package/dist/src/schema/boolean.d.ts +23 -21
- package/dist/src/schema/boolean.d.ts.map +1 -1
- package/dist/src/schema/boolean.js +13 -8
- package/dist/src/schema/datetime.cjs +13 -8
- package/dist/src/schema/datetime.d.ts +23 -21
- package/dist/src/schema/datetime.d.ts.map +1 -1
- package/dist/src/schema/datetime.js +13 -8
- package/dist/src/schema/index.cjs +13 -8
- package/dist/src/schema/index.js +13 -8
- package/dist/src/schema/number.cjs +13 -8
- package/dist/src/schema/number.d.ts +24 -21
- package/dist/src/schema/number.d.ts.map +1 -1
- package/dist/src/schema/number.js +13 -8
- package/dist/src/schema/object.cjs +13 -8
- package/dist/src/schema/object.d.ts +23 -20
- package/dist/src/schema/object.d.ts.map +1 -1
- package/dist/src/schema/object.js +13 -8
- package/dist/src/schema/schema.cjs +13 -8
- package/dist/src/schema/schema.d.ts +34 -31
- package/dist/src/schema/schema.d.ts.map +1 -1
- package/dist/src/schema/schema.js +13 -8
- package/dist/src/schema/string.cjs +13 -8
- package/dist/src/schema/string.d.ts +26 -24
- package/dist/src/schema/string.d.ts.map +1 -1
- package/dist/src/schema/string.js +13 -8
- package/dist/src/schema/types.d.ts +40 -17
- package/dist/src/schema/types.d.ts.map +1 -1
- package/dist/src/schema/union.cjs +13 -8
- package/dist/src/schema/union.d.ts +25 -23
- package/dist/src/schema/union.d.ts.map +1 -1
- package/dist/src/schema/union.js +13 -8
- package/dist/src/types.d.ts +3 -8
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +4 -3
- package/dist/tsconfig.types.tsbuildinfo +0 -1
@@ -432,6 +432,7 @@ var Schema = class _Schema {
|
|
432
432
|
static {
|
433
433
|
__name(this, "Schema");
|
434
434
|
}
|
435
|
+
"~standard";
|
435
436
|
$$type = "$PSchema";
|
436
437
|
fieldType = "schema";
|
437
438
|
// Those functions will assume control of the validation process on adapters, instead of the schema.
|
@@ -614,7 +615,10 @@ var Schema = class _Schema {
|
|
614
615
|
const shouldCallToInternalDuringParse = hasToInternalCallback && (options.toInternalToBubbleUp?.length === 0 || Array.isArray(options.toInternalToBubbleUp) === false);
|
615
616
|
const hasNoErrors = parseResult.errors === void 0 || (parseResult.errors || []).length === 0;
|
616
617
|
await Promise.all(this.__refinements.map(async (refinement) => {
|
617
|
-
const errorOrNothing = await Promise.resolve(refinement(
|
618
|
+
const errorOrNothing = await Promise.resolve(refinement({
|
619
|
+
value: parseResult.parsed,
|
620
|
+
context: options.context
|
621
|
+
}));
|
618
622
|
if (typeof errorOrNothing === "undefined") return;
|
619
623
|
parseResult.errors.push({
|
620
624
|
isValid: false,
|
@@ -647,8 +651,6 @@ var Schema = class _Schema {
|
|
647
651
|
* ```
|
648
652
|
*
|
649
653
|
* @param refinementCallback - The callback that will be called to validate the value.
|
650
|
-
* @param options - Options for the refinement.
|
651
|
-
* @param options.isAsync - Whether the callback is async or not. Defaults to true.
|
652
654
|
*/
|
653
655
|
refine(refinementCallback) {
|
654
656
|
this.__refinements.push(refinementCallback);
|
@@ -903,17 +905,19 @@ var Schema = class _Schema {
|
|
903
905
|
* @returns An object with the property isValid, if the value is valid, the function `save` will be present.
|
904
906
|
* If the value is invalid, the property errors will be present.
|
905
907
|
*/
|
906
|
-
async validate(value, context) {
|
908
|
+
async validate(value, context = {}) {
|
907
909
|
const { errors, parsed } = await this.__parse(value, [], {
|
908
910
|
context
|
909
911
|
});
|
910
912
|
if ((errors || []).length > 0) return {
|
911
913
|
isValid: false,
|
912
|
-
errors
|
914
|
+
errors,
|
915
|
+
save: void 0
|
913
916
|
};
|
914
917
|
return {
|
915
918
|
isValid: true,
|
916
|
-
save: /* @__PURE__ */ __name(async () => this._save.bind(this)(parsed, context), "save")
|
919
|
+
save: /* @__PURE__ */ __name(async () => this._save.bind(this)(parsed, context), "save"),
|
920
|
+
errors: void 0
|
917
921
|
};
|
918
922
|
}
|
919
923
|
/**
|
@@ -926,8 +930,9 @@ var Schema = class _Schema {
|
|
926
930
|
*/
|
927
931
|
async _save(value, context) {
|
928
932
|
if (this.__saveCallback) {
|
929
|
-
|
930
|
-
|
933
|
+
let result = this.__saveCallback(value);
|
934
|
+
if (typeof result === "function") result = result(context);
|
935
|
+
return this.data(result instanceof Promise ? await result : result);
|
931
936
|
}
|
932
937
|
return this.data(value);
|
933
938
|
}
|
@@ -1,7 +1,11 @@
|
|
1
|
+
import type { ArraySchema } from './array';
|
1
2
|
import type { BooleanSchema } from './boolean';
|
3
|
+
import type { DatetimeSchema } from './datetime';
|
4
|
+
import type { NumberSchema } from './number';
|
2
5
|
import type { ObjectSchema } from './object';
|
3
6
|
import type { Schema } from './schema';
|
4
7
|
import type { StringSchema } from './string';
|
8
|
+
import type { UnionSchema } from './union';
|
5
9
|
import type { SchemaAdapter } from '../adapter';
|
6
10
|
import type { FieldAdapter } from '../adapter/fields';
|
7
11
|
import type { ErrorCodes } from '../adapter/types';
|
@@ -10,10 +14,12 @@ import type { Validator } from '../validators/utils';
|
|
10
14
|
export type OnlyFieldAdaptersFromSchemaAdapter = keyof {
|
11
15
|
[key in keyof SchemaAdapter as SchemaAdapter[key] extends FieldAdapter ? key : never]: SchemaAdapter[key];
|
12
16
|
};
|
13
|
-
export type
|
17
|
+
export type AllSchemaTypes = ArraySchema<any, any, any> | BooleanSchema<any, any> | ObjectSchema<any, any, any> | Schema<any, any> | StringSchema<any, any> | DatetimeSchema<any, any> | UnionSchema<any, any, any> | NumberSchema<any, any>;
|
18
|
+
export type DefinitionsOfSchemaType<TSchemaAdapter extends SchemaAdapter = SchemaAdapter> = {
|
14
19
|
schemaType: 'array' | 'object' | 'string' | 'number' | 'boolean' | 'union' | 'datetime' | 'field' | 'datetime';
|
15
|
-
schemaAdapter:
|
16
|
-
|
20
|
+
schemaAdapter: TSchemaAdapter;
|
21
|
+
context: any;
|
22
|
+
hasSave: boolean;
|
17
23
|
};
|
18
24
|
export type ValidationFallbackCallbackType = Validator['fallbacks'][number];
|
19
25
|
export type ValidationFallbackCallbackReturnType = {
|
@@ -32,8 +38,26 @@ export type ValidationFallbackReturnType = {
|
|
32
38
|
name: string;
|
33
39
|
callback: ValidationFallbackCallbackType;
|
34
40
|
};
|
35
|
-
type TypesOfSchema = Schema extends Schema<infer TType, any> ? TType : never;
|
36
|
-
type ExtractTypeFromSchemaByTypeOfSchema<TSchema extends
|
41
|
+
export type TypesOfSchema<TSchema = Schema> = TSchema extends Schema<infer TType, any> | ArraySchema<infer TType, any, any> | UnionSchema<infer TType, any, any> | NumberSchema<infer TType, any> | StringSchema<infer TType, any> | ObjectSchema<infer TType, any, any> | BooleanSchema<infer TType, any> | DatetimeSchema<infer TType, any> ? TType : never;
|
42
|
+
export type ExtractTypeFromSchemaByTypeOfSchema<TSchema extends AllSchemaTypes, TTypeToExtract extends keyof TypesOfSchema = 'input'> = TSchema extends Schema<{
|
43
|
+
input: infer TInputType;
|
44
|
+
validate: infer TValidateType;
|
45
|
+
internal: infer TInternalType;
|
46
|
+
output: infer TOutputType;
|
47
|
+
representation: infer TRepresentationType;
|
48
|
+
}, any> | ArraySchema<{
|
49
|
+
input: infer TInputType;
|
50
|
+
validate: infer TValidateType;
|
51
|
+
internal: infer TInternalType;
|
52
|
+
output: infer TOutputType;
|
53
|
+
representation: infer TRepresentationType;
|
54
|
+
}, any, any> | UnionSchema<{
|
55
|
+
input: infer TInputType;
|
56
|
+
validate: infer TValidateType;
|
57
|
+
internal: infer TInternalType;
|
58
|
+
output: infer TOutputType;
|
59
|
+
representation: infer TRepresentationType;
|
60
|
+
}, any, any> | NumberSchema<{
|
37
61
|
input: infer TInputType;
|
38
62
|
validate: infer TValidateType;
|
39
63
|
internal: infer TInternalType;
|
@@ -57,23 +81,22 @@ type ExtractTypeFromSchemaByTypeOfSchema<TSchema extends Schema, TTypeToExtract
|
|
57
81
|
internal: infer TInternalType;
|
58
82
|
output: infer TOutputType;
|
59
83
|
representation: infer TRepresentationType;
|
84
|
+
}, any> | DatetimeSchema<{
|
85
|
+
input: infer TInputType;
|
86
|
+
validate: infer TValidateType;
|
87
|
+
internal: infer TInternalType;
|
88
|
+
output: infer TOutputType;
|
89
|
+
representation: infer TRepresentationType;
|
60
90
|
}, any> ? TTypeToExtract extends 'input' ? TInputType : TTypeToExtract extends 'validate' ? TValidateType : TTypeToExtract extends 'internal' ? TInternalType : TTypeToExtract extends 'output' ? TOutputType : TRepresentationType : never;
|
61
|
-
export type ExtractTypeFromObjectOfSchemas<TData extends Record<string, Schema
|
91
|
+
export type ExtractTypeFromObjectOfSchemas<TData extends Record<string, Schema<any, any>>, TTypeToExtract extends keyof TypesOfSchema = 'input'> = {
|
62
92
|
[key in keyof TData as undefined extends ExtractTypeFromSchemaByTypeOfSchema<TData[key], TTypeToExtract> ? never : key]: ExtractTypeFromSchemaByTypeOfSchema<TData[key], TTypeToExtract>;
|
63
93
|
} & {
|
64
94
|
[key in keyof TData as undefined extends ExtractTypeFromSchemaByTypeOfSchema<TData[key], TTypeToExtract> ? key : never]?: ExtractTypeFromSchemaByTypeOfSchema<TData[key], TTypeToExtract>;
|
65
95
|
};
|
66
|
-
export type ExtractTypeFromUnionOfSchemas<TSchemas extends readonly
|
67
|
-
|
68
|
-
internal: infer TInternal;
|
69
|
-
output: infer TOutput;
|
70
|
-
representation: infer TRepresentation;
|
71
|
-
validate: infer TValidate;
|
72
|
-
}> ? (TType extends 'output' ? TOutput : TType extends 'representation' ? TRepresentation : TType extends 'internal' ? TInternal : TType extends 'validate' ? TValidate : TInput) | ExtractTypeFromUnionOfSchemas<TRestOfSchemas extends readonly Schema[] ? TRestOfSchemas : [], TType> : unknown : never;
|
73
|
-
export type ExtractTypeFromArrayOfSchemas<TSchemas extends readonly [Schema, ...Schema[]] | [[Schema]], TTypeToExtract extends keyof TypesOfSchema = 'input', TResult extends any[] = []> = TSchemas extends readonly [infer TSchema, ...infer TRestSchemas] ? TSchema extends Schema ? TRestSchemas extends readonly [Schema, ...Schema[]] ? ExtractTypeFromArrayOfSchemas<TRestSchemas, TTypeToExtract, [
|
96
|
+
export type ExtractTypeFromUnionOfSchemas<TSchemas extends readonly AllSchemaTypes[] = [], TType extends 'input' | 'output' | 'representation' | 'internal' | 'validate' = 'input'> = TSchemas extends readonly [infer TFirstSchema, ...infer TRestOfSchemas] ? TFirstSchema extends AllSchemaTypes ? ExtractTypeFromSchemaByTypeOfSchema<TFirstSchema, TType> | ExtractTypeFromUnionOfSchemas<TRestOfSchemas extends readonly Schema[] ? TRestOfSchemas : [], TType> : unknown : never;
|
97
|
+
export type ExtractTypeFromArrayOfSchemas<TSchemas extends readonly [AllSchemaTypes, ...AllSchemaTypes[]] | [[AllSchemaTypes]], TTypeToExtract extends keyof TypesOfSchema = 'input', TResult extends any[] = []> = TSchemas extends readonly [infer TSchema, ...infer TRestSchemas] ? TSchema extends AllSchemaTypes ? TRestSchemas extends readonly [AllSchemaTypes, ...AllSchemaTypes[]] ? ExtractTypeFromArrayOfSchemas<TRestSchemas, TTypeToExtract, [
|
74
98
|
...TResult,
|
75
99
|
ExtractTypeFromSchemaByTypeOfSchema<TSchema, TTypeToExtract>
|
76
|
-
]> : [...TResult, ExtractTypeFromSchemaByTypeOfSchema<TSchema, TTypeToExtract>] : TSchemas extends [[infer TSchema]] ? TSchema extends
|
77
|
-
export type ExtractUnionTypesFromSchemas<TSchemas extends readonly
|
78
|
-
export {};
|
100
|
+
]> : [...TResult, ExtractTypeFromSchemaByTypeOfSchema<TSchema, TTypeToExtract>] : TSchemas extends [[infer TSchema]] ? TSchema extends AllSchemaTypes ? ExtractTypeFromSchemaByTypeOfSchema<TSchema, TTypeToExtract>[] : never : never : never;
|
101
|
+
export type ExtractUnionTypesFromSchemas<TSchemas extends readonly AllSchemaTypes[]> = TypesOfSchema<TSchemas[number]>;
|
79
102
|
//# sourceMappingURL=types.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/schema/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,MAAM,kCAAkC,GAAG,MAAM;KACpD,GAAG,IAAI,MAAM,aAAa,IAAI,aAAa,CAAC,GAAG,CAAC,SAAS,YAAY,GAAG,GAAG,GAAG,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC;CAC1G,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/schema/types.ts"],"names":[],"mappings":"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"}
|
@@ -450,6 +450,7 @@ var Schema = class _Schema {
|
|
450
450
|
static {
|
451
451
|
__name(this, "Schema");
|
452
452
|
}
|
453
|
+
"~standard";
|
453
454
|
$$type = "$PSchema";
|
454
455
|
fieldType = "schema";
|
455
456
|
// Those functions will assume control of the validation process on adapters, instead of the schema.
|
@@ -632,7 +633,10 @@ var Schema = class _Schema {
|
|
632
633
|
const shouldCallToInternalDuringParse = hasToInternalCallback && (options.toInternalToBubbleUp?.length === 0 || Array.isArray(options.toInternalToBubbleUp) === false);
|
633
634
|
const hasNoErrors = parseResult.errors === void 0 || (parseResult.errors || []).length === 0;
|
634
635
|
await Promise.all(this.__refinements.map(async (refinement) => {
|
635
|
-
const errorOrNothing = await Promise.resolve(refinement(
|
636
|
+
const errorOrNothing = await Promise.resolve(refinement({
|
637
|
+
value: parseResult.parsed,
|
638
|
+
context: options.context
|
639
|
+
}));
|
636
640
|
if (typeof errorOrNothing === "undefined") return;
|
637
641
|
parseResult.errors.push({
|
638
642
|
isValid: false,
|
@@ -665,8 +669,6 @@ var Schema = class _Schema {
|
|
665
669
|
* ```
|
666
670
|
*
|
667
671
|
* @param refinementCallback - The callback that will be called to validate the value.
|
668
|
-
* @param options - Options for the refinement.
|
669
|
-
* @param options.isAsync - Whether the callback is async or not. Defaults to true.
|
670
672
|
*/
|
671
673
|
refine(refinementCallback) {
|
672
674
|
this.__refinements.push(refinementCallback);
|
@@ -921,17 +923,19 @@ var Schema = class _Schema {
|
|
921
923
|
* @returns An object with the property isValid, if the value is valid, the function `save` will be present.
|
922
924
|
* If the value is invalid, the property errors will be present.
|
923
925
|
*/
|
924
|
-
async validate(value, context) {
|
926
|
+
async validate(value, context = {}) {
|
925
927
|
const { errors, parsed } = await this.__parse(value, [], {
|
926
928
|
context
|
927
929
|
});
|
928
930
|
if ((errors || []).length > 0) return {
|
929
931
|
isValid: false,
|
930
|
-
errors
|
932
|
+
errors,
|
933
|
+
save: void 0
|
931
934
|
};
|
932
935
|
return {
|
933
936
|
isValid: true,
|
934
|
-
save: /* @__PURE__ */ __name(async () => this._save.bind(this)(parsed, context), "save")
|
937
|
+
save: /* @__PURE__ */ __name(async () => this._save.bind(this)(parsed, context), "save"),
|
938
|
+
errors: void 0
|
935
939
|
};
|
936
940
|
}
|
937
941
|
/**
|
@@ -944,8 +948,9 @@ var Schema = class _Schema {
|
|
944
948
|
*/
|
945
949
|
async _save(value, context) {
|
946
950
|
if (this.__saveCallback) {
|
947
|
-
|
948
|
-
|
951
|
+
let result = this.__saveCallback(value);
|
952
|
+
if (typeof result === "function") result = result(context);
|
953
|
+
return this.data(result instanceof Promise ? await result : result);
|
949
954
|
}
|
950
955
|
return this.data(value);
|
951
956
|
}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { Schema } from './schema';
|
2
|
-
import type { DefinitionsOfSchemaType, ExtractTypeFromUnionOfSchemas } from './types';
|
2
|
+
import type { AllSchemaTypes, DefinitionsOfSchemaType, ExtractTypeFromUnionOfSchemas } from './types';
|
3
|
+
import type { SchemaAdapter } from '../adapter';
|
3
4
|
import type { FieldAdapter } from '../adapter/fields';
|
4
5
|
import type { Narrow } from '@palmares/core';
|
5
6
|
export declare class UnionSchema<TType extends {
|
@@ -14,7 +15,7 @@ export declare class UnionSchema<TType extends {
|
|
14
15
|
validate: unknown;
|
15
16
|
internal: unknown;
|
16
17
|
representation: unknown;
|
17
|
-
}, TDefinitions extends DefinitionsOfSchemaType = DefinitionsOfSchemaType
|
18
|
+
}, TDefinitions extends DefinitionsOfSchemaType = DefinitionsOfSchemaType<SchemaAdapter & Palmares.PSchemaAdapter>, TSchemas extends readonly [Schema<any, any>, Schema<any, any>, ...Schema<any, any>[]] = [
|
18
19
|
Schema<any, any>,
|
19
20
|
Schema<any, any>,
|
20
21
|
...Schema<any, any>[]
|
@@ -24,7 +25,7 @@ export declare class UnionSchema<TType extends {
|
|
24
25
|
message: string;
|
25
26
|
check: (value: TType['input']) => boolean;
|
26
27
|
};
|
27
|
-
protected __schemas: Set<Schema<any, DefinitionsOfSchemaType
|
28
|
+
protected __schemas: Set<Schema<any, DefinitionsOfSchemaType<SchemaAdapter & Palmares.PSchemaAdapter>>>;
|
28
29
|
constructor(schemas: TSchemas);
|
29
30
|
protected __transformToAdapter(options: Parameters<Schema['__transformToAdapter']>[0]): Promise<ReturnType<FieldAdapter['translate']>>;
|
30
31
|
/**
|
@@ -49,18 +50,18 @@ export declare class UnionSchema<TType extends {
|
|
49
50
|
* @param options - Options for the refinement.
|
50
51
|
* @param options.isAsync - Whether the callback is async or not. Defaults to true.
|
51
52
|
*/
|
52
|
-
refine
|
53
|
+
refine<TRefinementCallback extends (args: {
|
54
|
+
value: TType['input'];
|
55
|
+
context: TDefinitions['context'];
|
56
|
+
}) => Promise<void | undefined | {
|
53
57
|
code: string;
|
54
58
|
message: string;
|
55
|
-
}
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
internal: TType["internal"];
|
62
|
-
output: TType["output"];
|
63
|
-
representation: TType["representation"];
|
59
|
+
}>>(refinementCallback: TRefinementCallback): UnionSchema<{
|
60
|
+
input: TType['input'];
|
61
|
+
validate: TType['validate'];
|
62
|
+
internal: TType['internal'];
|
63
|
+
output: TType['output'];
|
64
|
+
representation: TType['representation'];
|
64
65
|
}, TDefinitions, TSchemas>;
|
65
66
|
/**
|
66
67
|
* Allows the value to be either undefined or null.
|
@@ -264,14 +265,15 @@ export declare class UnionSchema<TType extends {
|
|
264
265
|
*
|
265
266
|
* @returns The schema.
|
266
267
|
*/
|
267
|
-
onSave
|
268
|
-
input: TType[
|
269
|
-
validate: TType[
|
270
|
-
internal: TType[
|
271
|
-
output: TType[
|
272
|
-
representation: TType[
|
273
|
-
}, TDefinitions & {
|
268
|
+
onSave<TSave extends ((value: TType['internal']) => (context: any) => Promise<TType['output']>) | ((value: TType['internal']) => Promise<TType['output']>)>(callback: TSave): UnionSchema<{
|
269
|
+
input: TType['input'];
|
270
|
+
validate: TType['validate'];
|
271
|
+
internal: TType['internal'];
|
272
|
+
output: TType['output'];
|
273
|
+
representation: TType['representation'];
|
274
|
+
}, Omit<TDefinitions, 'hasSave' | 'context'> & {
|
274
275
|
hasSave: true;
|
276
|
+
context: ReturnType<TSave> extends (context: any) => any ? Parameters<ReturnType<TSave>>[0] : any;
|
275
277
|
}, TSchemas>;
|
276
278
|
/**
|
277
279
|
* This function is used to add a default value to the schema. If the value is either undefined or null, the default
|
@@ -463,20 +465,20 @@ export declare class UnionSchema<TType extends {
|
|
463
465
|
*
|
464
466
|
* @returns The schema with a new return type.
|
465
467
|
*/
|
466
|
-
toValidate<TValidate>(toValidateCallback: (value: TType['input']) => Promise<TValidate> | TValidate): UnionSchema<{
|
468
|
+
toValidate<TValidate>(toValidateCallback: (value: TType['input'], context: TDefinitions['context']) => Promise<TValidate> | TValidate): UnionSchema<{
|
467
469
|
input: TType["input"];
|
468
470
|
validate: TValidate;
|
469
471
|
internal: TType["internal"];
|
470
472
|
output: TType["output"];
|
471
473
|
representation: TType["representation"];
|
472
474
|
}, TDefinitions, TSchemas>;
|
473
|
-
static new<TSchemas extends readonly [
|
475
|
+
static new<TSchemas extends readonly [AllSchemaTypes, AllSchemaTypes, ...AllSchemaTypes[]], TDefinitions extends DefinitionsOfSchemaType = DefinitionsOfSchemaType<SchemaAdapter & Palmares.PSchemaAdapter>>(schemas: Narrow<TSchemas>): UnionSchema<{
|
474
476
|
input: ExtractTypeFromUnionOfSchemas<TSchemas, 'input'>;
|
475
477
|
internal: ExtractTypeFromUnionOfSchemas<TSchemas, 'internal'>;
|
476
478
|
output: ExtractTypeFromUnionOfSchemas<TSchemas, 'output'>;
|
477
479
|
representation: ExtractTypeFromUnionOfSchemas<TSchemas, 'representation'>;
|
478
480
|
validate: ExtractTypeFromUnionOfSchemas<TSchemas, 'validate'>;
|
479
|
-
}>;
|
481
|
+
}, TDefinitions>;
|
480
482
|
}
|
481
483
|
export declare const union: typeof UnionSchema.new;
|
482
484
|
//# sourceMappingURL=union.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"union.d.ts","sourceRoot":"","sources":["../../../src/schema/union.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AASlC,OAAO,KAAK,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,SAAS,CAAC;
|
1
|
+
{"version":3,"file":"union.d.ts","sourceRoot":"","sources":["../../../src/schema/union.ts"],"names":[],"mappings":"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"}
|
package/dist/src/schema/union.js
CHANGED
@@ -425,6 +425,7 @@ var Schema = class _Schema {
|
|
425
425
|
static {
|
426
426
|
__name(this, "Schema");
|
427
427
|
}
|
428
|
+
"~standard";
|
428
429
|
$$type = "$PSchema";
|
429
430
|
fieldType = "schema";
|
430
431
|
// Those functions will assume control of the validation process on adapters, instead of the schema.
|
@@ -607,7 +608,10 @@ var Schema = class _Schema {
|
|
607
608
|
const shouldCallToInternalDuringParse = hasToInternalCallback && (options.toInternalToBubbleUp?.length === 0 || Array.isArray(options.toInternalToBubbleUp) === false);
|
608
609
|
const hasNoErrors = parseResult.errors === void 0 || (parseResult.errors || []).length === 0;
|
609
610
|
await Promise.all(this.__refinements.map(async (refinement) => {
|
610
|
-
const errorOrNothing = await Promise.resolve(refinement(
|
611
|
+
const errorOrNothing = await Promise.resolve(refinement({
|
612
|
+
value: parseResult.parsed,
|
613
|
+
context: options.context
|
614
|
+
}));
|
611
615
|
if (typeof errorOrNothing === "undefined") return;
|
612
616
|
parseResult.errors.push({
|
613
617
|
isValid: false,
|
@@ -640,8 +644,6 @@ var Schema = class _Schema {
|
|
640
644
|
* ```
|
641
645
|
*
|
642
646
|
* @param refinementCallback - The callback that will be called to validate the value.
|
643
|
-
* @param options - Options for the refinement.
|
644
|
-
* @param options.isAsync - Whether the callback is async or not. Defaults to true.
|
645
647
|
*/
|
646
648
|
refine(refinementCallback) {
|
647
649
|
this.__refinements.push(refinementCallback);
|
@@ -896,17 +898,19 @@ var Schema = class _Schema {
|
|
896
898
|
* @returns An object with the property isValid, if the value is valid, the function `save` will be present.
|
897
899
|
* If the value is invalid, the property errors will be present.
|
898
900
|
*/
|
899
|
-
async validate(value, context) {
|
901
|
+
async validate(value, context = {}) {
|
900
902
|
const { errors, parsed } = await this.__parse(value, [], {
|
901
903
|
context
|
902
904
|
});
|
903
905
|
if ((errors || []).length > 0) return {
|
904
906
|
isValid: false,
|
905
|
-
errors
|
907
|
+
errors,
|
908
|
+
save: void 0
|
906
909
|
};
|
907
910
|
return {
|
908
911
|
isValid: true,
|
909
|
-
save: /* @__PURE__ */ __name(async () => this._save.bind(this)(parsed, context), "save")
|
912
|
+
save: /* @__PURE__ */ __name(async () => this._save.bind(this)(parsed, context), "save"),
|
913
|
+
errors: void 0
|
910
914
|
};
|
911
915
|
}
|
912
916
|
/**
|
@@ -919,8 +923,9 @@ var Schema = class _Schema {
|
|
919
923
|
*/
|
920
924
|
async _save(value, context) {
|
921
925
|
if (this.__saveCallback) {
|
922
|
-
|
923
|
-
|
926
|
+
let result = this.__saveCallback(value);
|
927
|
+
if (typeof result === "function") result = result(context);
|
928
|
+
return this.data(result instanceof Promise ? await result : result);
|
924
929
|
}
|
925
930
|
return this.data(value);
|
926
931
|
}
|
package/dist/src/types.d.ts
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
import type { SchemaAdapter } from './adapter';
|
2
2
|
import type { Schema } from './schema/schema';
|
3
|
+
import type { AllSchemaTypes, ExtractTypeFromSchemaByTypeOfSchema } from './schema/types';
|
3
4
|
import type { ValidatorTypes } from './validators/types';
|
4
5
|
export type MaybePromise<T> = T | Promise<T>;
|
5
6
|
export type SchemasSettingsType = {
|
@@ -26,7 +27,7 @@ export type SupportedSchemas = 'number' | 'object' | 'union' | 'string' | 'array
|
|
26
27
|
* - 'internal' - The data after it's transformed for the `toSave` callback.
|
27
28
|
* - 'validate' - The data for `toValidate` callback.
|
28
29
|
*/
|
29
|
-
export type Infer<TSchema extends
|
30
|
+
export type Infer<TSchema extends AllSchemaTypes,
|
30
31
|
/**
|
31
32
|
* - 'input' - The data passed to `.parse` and `.validate` functions.
|
32
33
|
* - 'output' - (use `'representation'` to get the data format you are
|
@@ -36,11 +37,5 @@ export type Infer<TSchema extends Schema<any, any>,
|
|
36
37
|
* - 'internal' - The data after it's transformed for the `toSave` callback.
|
37
38
|
* - 'validate' - The data for `toValidate` callback.
|
38
39
|
*/
|
39
|
-
TType extends 'input' | 'output' | 'representation' | 'internal' | 'validate' = 'input'> = TSchema
|
40
|
-
input: infer TInput;
|
41
|
-
internal: infer TInternal;
|
42
|
-
output: infer TOutput;
|
43
|
-
representation: infer TRepresentation;
|
44
|
-
validate: infer TValidate;
|
45
|
-
}, any> ? TType extends 'output' ? TOutput : TType extends 'representation' ? TRepresentation : TType extends 'internal' ? TInternal : TType extends 'validate' ? TValidate : TInput : never;
|
40
|
+
TType extends 'input' | 'output' | 'representation' | 'internal' | 'validate' = 'input'> = ExtractTypeFromSchemaByTypeOfSchema<TSchema, TType>;
|
46
41
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/src/types.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,EAAE,OAAO,aAAa,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,UAAU,IAAI;KAC7C,IAAI,IAAI,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK;QACpE,IAAI,EAAE,cAAc,CAAC;QACrB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;KAChF;CACF,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAE3G;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,KAAK,CACf,OAAO,SAAS,
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,mCAAmC,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,EAAE,OAAO,aAAa,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,UAAU,IAAI;KAC7C,IAAI,IAAI,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK;QACpE,IAAI,EAAE,cAAc,CAAC;QACrB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;KAChF;CACF,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAE3G;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,KAAK,CACf,OAAO,SAAS,cAAc;AAC9B;;;;;;;;GAQG;AACH,KAAK,SAAS,OAAO,GAAG,QAAQ,GAAG,gBAAgB,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,IACrF,mCAAmC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@palmares/schemas",
|
3
|
-
"version": "0.2.
|
3
|
+
"version": "0.2.15",
|
4
4
|
"description": "This defines a default schema definition for validation of data, it abstract popular schema validation libraries like zod, yup, valibot and others\"",
|
5
5
|
"main": "./dist/src/index.cjs",
|
6
6
|
"module": "./dist/src/index.js",
|
@@ -35,9 +35,10 @@
|
|
35
35
|
},
|
36
36
|
"homepage": "https://github.com/palmaresHQ/palmares#readme",
|
37
37
|
"dependencies": {
|
38
|
-
"@
|
38
|
+
"@standard-schema/spec": "^1.0.0",
|
39
39
|
"@palmares/core": "0.2.6",
|
40
|
-
"@palmares/server": "0.
|
40
|
+
"@palmares/server": "0.3.0",
|
41
|
+
"@palmares/databases": "0.2.14"
|
41
42
|
},
|
42
43
|
"scripts": {
|
43
44
|
"clear": "rimraf ./dist",
|