@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
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# @palmares/schemas
|
2
2
|
|
3
|
+
## 0.2.15
|
4
|
+
|
5
|
+
### Patch Changes
|
6
|
+
|
7
|
+
- Updated dependencies [bfe2d46]
|
8
|
+
- Updated dependencies [58e5187]
|
9
|
+
- Updated dependencies [fa22823]
|
10
|
+
- Updated dependencies [8bd331a]
|
11
|
+
- @palmares/server@0.3.0
|
12
|
+
|
3
13
|
## 0.2.14
|
4
14
|
|
5
15
|
### Patch Changes
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapter/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,qBAAa,aAAa;IACxB,MAAM,SAAqB;IAC3B,IAAI,EAAG,MAAM,CAAC;IACd,KAAK,EAAG,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,MAAM,EAAG,kBAAkB,CAAC;IAC5B,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,eAAe,EAAE,GAAG,CAAC;IAGf,WAAW,CACf,MAAM,EAAE,GAAG,EACX,SAAS,CAAC,EAAE,GAAG,GACd,OAAO,CAAC;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;QAC1B,IAAI,EAAE,UAAU,CAAC;KAClB,CAAC;CAGH"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapter/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,qBAAa,aAAa;IACxB,MAAM,SAAqB;IAC3B,IAAI,EAAG,MAAM,CAAC;IACd,KAAK,EAAG,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,MAAM,EAAG,kBAAkB,CAAC;IAC5B,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,eAAe,EAAE,GAAG,CAAC;IAGf,WAAW,CACf,MAAM,EAAE,GAAG,EACX,SAAS,CAAC,EAAE,GAAG,GACd,OAAO,CAAC;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;QAC1B,IAAI,EAAE,UAAU,CAAC;KAClB,CAAC;CAGH;AAED,OAAO,CAAC,MAAM,CAAC;IAEb,UAAU,QAAQ,CAAC;QACjB,UAAU,cAAc;SAAG;KAC5B;CACF"}
|
package/dist/src/index.cjs
CHANGED
@@ -19,8 +19,8 @@ var __copyProps = (to, from, except, desc) => {
|
|
19
19
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
20
20
|
|
21
21
|
// src/index.ts
|
22
|
-
var
|
23
|
-
__export(
|
22
|
+
var index_exports = {};
|
23
|
+
__export(index_exports, {
|
24
24
|
ArrayFieldAdapter: () => ArrayFieldAdapter,
|
25
25
|
ArraySchema: () => ArraySchema,
|
26
26
|
BooleanFieldAdapter: () => BooleanFieldAdapter,
|
@@ -46,7 +46,7 @@ __export(src_exports, {
|
|
46
46
|
compile: () => compile,
|
47
47
|
datetime: () => datetime,
|
48
48
|
datetimeFieldAdapter: () => datetimeFieldAdapter,
|
49
|
-
default: () =>
|
49
|
+
default: () => index_default,
|
50
50
|
fieldAdapter: () => fieldAdapter,
|
51
51
|
getDefaultAdapter: () => getDefaultAdapter,
|
52
52
|
getSchemasWithDefaultAdapter: () => getSchemasWithDefaultAdapter,
|
@@ -63,7 +63,7 @@ __export(src_exports, {
|
|
63
63
|
union: () => union,
|
64
64
|
unionFieldAdapter: () => unionFieldAdapter
|
65
65
|
});
|
66
|
-
module.exports = __toCommonJS(
|
66
|
+
module.exports = __toCommonJS(index_exports);
|
67
67
|
|
68
68
|
// src/exceptions.ts
|
69
69
|
var SchemaAdapterNotImplementedError = class extends Error {
|
@@ -568,6 +568,7 @@ var Schema = class _Schema {
|
|
568
568
|
static {
|
569
569
|
__name(this, "Schema");
|
570
570
|
}
|
571
|
+
"~standard";
|
571
572
|
$$type = "$PSchema";
|
572
573
|
fieldType = "schema";
|
573
574
|
// Those functions will assume control of the validation process on adapters, instead of the schema.
|
@@ -750,7 +751,10 @@ var Schema = class _Schema {
|
|
750
751
|
const shouldCallToInternalDuringParse = hasToInternalCallback && (options.toInternalToBubbleUp?.length === 0 || Array.isArray(options.toInternalToBubbleUp) === false);
|
751
752
|
const hasNoErrors = parseResult.errors === void 0 || (parseResult.errors || []).length === 0;
|
752
753
|
await Promise.all(this.__refinements.map(async (refinement) => {
|
753
|
-
const errorOrNothing = await Promise.resolve(refinement(
|
754
|
+
const errorOrNothing = await Promise.resolve(refinement({
|
755
|
+
value: parseResult.parsed,
|
756
|
+
context: options.context
|
757
|
+
}));
|
754
758
|
if (typeof errorOrNothing === "undefined") return;
|
755
759
|
parseResult.errors.push({
|
756
760
|
isValid: false,
|
@@ -783,8 +787,6 @@ var Schema = class _Schema {
|
|
783
787
|
* ```
|
784
788
|
*
|
785
789
|
* @param refinementCallback - The callback that will be called to validate the value.
|
786
|
-
* @param options - Options for the refinement.
|
787
|
-
* @param options.isAsync - Whether the callback is async or not. Defaults to true.
|
788
790
|
*/
|
789
791
|
refine(refinementCallback) {
|
790
792
|
this.__refinements.push(refinementCallback);
|
@@ -1039,17 +1041,19 @@ var Schema = class _Schema {
|
|
1039
1041
|
* @returns An object with the property isValid, if the value is valid, the function `save` will be present.
|
1040
1042
|
* If the value is invalid, the property errors will be present.
|
1041
1043
|
*/
|
1042
|
-
async validate(value, context) {
|
1044
|
+
async validate(value, context = {}) {
|
1043
1045
|
const { errors, parsed } = await this.__parse(value, [], {
|
1044
1046
|
context
|
1045
1047
|
});
|
1046
1048
|
if ((errors || []).length > 0) return {
|
1047
1049
|
isValid: false,
|
1048
|
-
errors
|
1050
|
+
errors,
|
1051
|
+
save: void 0
|
1049
1052
|
};
|
1050
1053
|
return {
|
1051
1054
|
isValid: true,
|
1052
|
-
save: /* @__PURE__ */ __name(async () => this._save.bind(this)(parsed, context), "save")
|
1055
|
+
save: /* @__PURE__ */ __name(async () => this._save.bind(this)(parsed, context), "save"),
|
1056
|
+
errors: void 0
|
1053
1057
|
};
|
1054
1058
|
}
|
1055
1059
|
/**
|
@@ -1062,8 +1066,9 @@ var Schema = class _Schema {
|
|
1062
1066
|
*/
|
1063
1067
|
async _save(value, context) {
|
1064
1068
|
if (this.__saveCallback) {
|
1065
|
-
|
1066
|
-
|
1069
|
+
let result = this.__saveCallback(value);
|
1070
|
+
if (typeof result === "function") result = result(context);
|
1071
|
+
return this.data(result instanceof Promise ? await result : result);
|
1067
1072
|
}
|
1068
1073
|
return this.data(value);
|
1069
1074
|
}
|
@@ -6364,7 +6369,7 @@ function schemaHandler(input, output) {
|
|
6364
6369
|
__name(schemaHandler, "schemaHandler");
|
6365
6370
|
|
6366
6371
|
// src/index.ts
|
6367
|
-
var
|
6372
|
+
var index_default = schemasDomain;
|
6368
6373
|
function getSchemasWithDefaultAdapter() {
|
6369
6374
|
return {
|
6370
6375
|
number: /* @__PURE__ */ __name(() => NumberSchema.new(), "number"),
|
package/dist/src/index.d.ts
CHANGED
@@ -11,7 +11,7 @@ import { StringSchema, string } from './schema/string';
|
|
11
11
|
import { UnionSchema, union } from './schema/union';
|
12
12
|
import type { DefinitionsOfSchemaType, ExtractTypeFromObjectOfSchemas } from './schema/types';
|
13
13
|
import type { Narrow } from '@palmares/core';
|
14
|
-
import type { Model, ModelFields } from '@palmares/databases';
|
14
|
+
import type { InferModel, Model, ModelFields } from '@palmares/databases';
|
15
15
|
export { FieldAdapter, fieldAdapter } from './adapter/fields';
|
16
16
|
export { NumberFieldAdapter, numberFieldAdapter } from './adapter/fields/number';
|
17
17
|
export { ObjectFieldAdapter, objectFieldAdapter } from './adapter/fields/object';
|
@@ -42,6 +42,7 @@ export declare function getSchemasWithDefaultAdapter<TAdapter extends SchemaAdap
|
|
42
42
|
schemaAdapter: TAdapter;
|
43
43
|
schemaType: "number";
|
44
44
|
hasSave: false;
|
45
|
+
context: any;
|
45
46
|
}>;
|
46
47
|
string: () => StringSchema<{
|
47
48
|
input: string;
|
@@ -53,14 +54,9 @@ export declare function getSchemasWithDefaultAdapter<TAdapter extends SchemaAdap
|
|
53
54
|
schemaAdapter: TAdapter;
|
54
55
|
schemaType: "string";
|
55
56
|
hasSave: false;
|
57
|
+
context: any;
|
56
58
|
}>;
|
57
|
-
array: <TSchemas extends readonly [Schema, ...Schema[]] | [[Schema]]>(...schemas: TSchemas) => TSchemas extends [[
|
58
|
-
input: any;
|
59
|
-
validate: any;
|
60
|
-
internal: any;
|
61
|
-
output: any;
|
62
|
-
representation: any;
|
63
|
-
}, DefinitionsOfSchemaType>]] ? ArraySchema<{
|
59
|
+
array: <TSchemas extends readonly [Schema, ...Schema[]] | [[Schema]]>(...schemas: TSchemas) => TSchemas extends [[import("./schema/types").AllSchemaTypes]] ? ArraySchema<{
|
64
60
|
input: import("./schema/types").ExtractTypeFromArrayOfSchemas<TSchemas, "input", []>;
|
65
61
|
validate: import("./schema/types").ExtractTypeFromArrayOfSchemas<TSchemas, "validate", []>;
|
66
62
|
internal: import("./schema/types").ExtractTypeFromArrayOfSchemas<TSchemas, "internal", []>;
|
@@ -70,6 +66,7 @@ export declare function getSchemasWithDefaultAdapter<TAdapter extends SchemaAdap
|
|
70
66
|
schemaAdapter: TAdapter;
|
71
67
|
schemaType: "array";
|
72
68
|
hasSave: false;
|
69
|
+
context: any;
|
73
70
|
}, TSchemas> : ArraySchema<{
|
74
71
|
input: import("./schema/types").ExtractTypeFromArrayOfSchemas<TSchemas, "input", []>;
|
75
72
|
validate: import("./schema/types").ExtractTypeFromArrayOfSchemas<TSchemas, "validate", []>;
|
@@ -80,6 +77,7 @@ export declare function getSchemasWithDefaultAdapter<TAdapter extends SchemaAdap
|
|
80
77
|
schemaAdapter: TAdapter;
|
81
78
|
schemaType: "array";
|
82
79
|
hasSave: false;
|
80
|
+
context: any;
|
83
81
|
}, TSchemas> & {
|
84
82
|
maxLength: never;
|
85
83
|
minLength: never;
|
@@ -94,6 +92,7 @@ export declare function getSchemasWithDefaultAdapter<TAdapter extends SchemaAdap
|
|
94
92
|
schemaAdapter: TAdapter;
|
95
93
|
schemaType: "boolean";
|
96
94
|
hasSave: false;
|
95
|
+
context: any;
|
97
96
|
}>;
|
98
97
|
object: <TData extends Record<any, Schema<any, any>>>(data: TData) => ObjectSchema<{
|
99
98
|
input: ExtractTypeFromObjectOfSchemas<TData, "input">;
|
@@ -105,6 +104,7 @@ export declare function getSchemasWithDefaultAdapter<TAdapter extends SchemaAdap
|
|
105
104
|
schemaAdapter: TAdapter;
|
106
105
|
schemaType: "object";
|
107
106
|
hasSave: false;
|
107
|
+
context: any;
|
108
108
|
}, TData>;
|
109
109
|
union: <TSchemas extends readonly [Schema<any, any>, Schema<any, any>, ...Schema<any, any>[]]>(...schemas: Narrow<TSchemas>) => UnionSchema<{
|
110
110
|
input: import("./schema/types").ExtractTypeFromUnionOfSchemas<TSchemas, "input">;
|
@@ -112,7 +112,12 @@ export declare function getSchemasWithDefaultAdapter<TAdapter extends SchemaAdap
|
|
112
112
|
output: import("./schema/types").ExtractTypeFromUnionOfSchemas<TSchemas, "output">;
|
113
113
|
representation: import("./schema/types").ExtractTypeFromUnionOfSchemas<TSchemas, "representation">;
|
114
114
|
validate: import("./schema/types").ExtractTypeFromUnionOfSchemas<TSchemas, "validate">;
|
115
|
-
},
|
115
|
+
}, {
|
116
|
+
schemaAdapter: TAdapter;
|
117
|
+
schemaType: "union";
|
118
|
+
hasSave: false;
|
119
|
+
context: any;
|
120
|
+
}, [Schema<any, any>, Schema<any, any>, ...Schema<any, any>[]]>;
|
116
121
|
datetime: () => DatetimeSchema<{
|
117
122
|
input: Date;
|
118
123
|
validate: Date;
|
@@ -123,6 +128,7 @@ export declare function getSchemasWithDefaultAdapter<TAdapter extends SchemaAdap
|
|
123
128
|
schemaAdapter: TAdapter;
|
124
129
|
schemaType: "datetime";
|
125
130
|
hasSave: false;
|
131
|
+
context: any;
|
126
132
|
}>;
|
127
133
|
/**
|
128
134
|
* Different from other models, this function is a factory function that returns either an ObjectSchema or
|
@@ -210,18 +216,18 @@ export declare function getSchemasWithDefaultAdapter<TAdapter extends SchemaAdap
|
|
210
216
|
*
|
211
217
|
* @returns - If you pass the `many` option as true, we return an ArraySchema, otherwise we return an ObjectSchema.
|
212
218
|
*/
|
213
|
-
modelSchema: <TModel extends ReturnType<typeof Model>, const TOmit extends readonly (keyof ModelFields<InstanceType<TModel>>)[] | undefined[] = undefined[], const TShow extends readonly (keyof ModelFields<InstanceType<TModel>>)[] | undefined[] = undefined[], TMany extends boolean = false, TFields extends Record<any, Schema<any, DefinitionsOfSchemaType>> | undefined = undefined,
|
219
|
+
modelSchema: <TModel extends ReturnType<typeof Model>, const TOmit extends readonly (keyof ModelFields<InstanceType<TModel>>)[] | undefined[] = undefined[], const TShow extends readonly (keyof ModelFields<InstanceType<TModel>>)[] | undefined[] = undefined[], TMany extends boolean = false, TFields extends Record<any, Schema<any, DefinitionsOfSchemaType>> | undefined = undefined, TAllModelFieldsRead = InferModel<InstanceType<TModel>, "read">, TAllModelFieldsCreate = InferModel<InstanceType<TModel>, "create">, TFieldsOnModelRead = TOmit extends undefined[] ? TShow extends undefined[] ? TAllModelFieldsRead : Pick<TAllModelFieldsRead, TShow[number] extends keyof TAllModelFieldsRead ? TShow[number] : never> : Omit<TAllModelFieldsRead, TOmit[number] extends keyof TAllModelFieldsRead ? TOmit[number] : never>, TFieldsOnModelCreateOrUpdate = TOmit extends undefined[] ? TShow extends undefined[] ? TAllModelFieldsCreate : Pick<TAllModelFieldsCreate, TShow[number] extends keyof TAllModelFieldsCreate ? TShow[number] : never> : Omit<TAllModelFieldsCreate, TOmit[number] extends keyof TAllModelFieldsCreate ? TOmit[number] : never>, TReturnType extends {
|
214
220
|
input: any;
|
215
221
|
output: any;
|
216
222
|
validate: any;
|
217
223
|
internal: any;
|
218
224
|
representation: any;
|
219
225
|
} = {
|
220
|
-
input: TFields extends undefined ?
|
221
|
-
output: TFields extends undefined ?
|
222
|
-
internal: TFields extends undefined ?
|
223
|
-
representation: TFields extends undefined ?
|
224
|
-
validate: TFields extends undefined ?
|
226
|
+
input: TFields extends undefined ? TFieldsOnModelCreateOrUpdate : Omit<TFieldsOnModelCreateOrUpdate, keyof ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, "input">> & ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, "input">;
|
227
|
+
output: TFields extends undefined ? TFieldsOnModelRead : Omit<TFieldsOnModelRead, keyof ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, "output">> & ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, "output">;
|
228
|
+
internal: TFields extends undefined ? TFieldsOnModelCreateOrUpdate : Omit<TFieldsOnModelCreateOrUpdate, keyof ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, "internal">> & ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, "internal">;
|
229
|
+
representation: TFields extends undefined ? TFieldsOnModelRead : Omit<TFieldsOnModelRead, keyof ExtractTypeFromObjectOfSchemas<TFields extends Record<any, Schema<any, DefinitionsOfSchemaType>> ? TFields : {}, "representation">> & ExtractTypeFromObjectOfSchemas<TFields extends Record<any, Schema<any, DefinitionsOfSchemaType>> ? TFields : {}, "representation">;
|
230
|
+
validate: TFields extends undefined ? TFieldsOnModelCreateOrUpdate : Omit<TFieldsOnModelCreateOrUpdate, keyof ExtractTypeFromObjectOfSchemas<TFields extends Record<any, Schema<any, DefinitionsOfSchemaType>> ? TFields : {}, "validate">> & ExtractTypeFromObjectOfSchemas<TFields extends Record<any, Schema<any, DefinitionsOfSchemaType>> ? TFields : {}, "validate">;
|
225
231
|
}>(model: TModel, options?: {
|
226
232
|
ignoreExtraneousFields?: boolean;
|
227
233
|
engineInstance?: string;
|
@@ -239,6 +245,7 @@ export declare function getSchemasWithDefaultAdapter<TAdapter extends SchemaAdap
|
|
239
245
|
}, {
|
240
246
|
schemaAdapter: TAdapter;
|
241
247
|
schemaType: "object";
|
248
|
+
context: any;
|
242
249
|
hasSave: false;
|
243
250
|
}, [ObjectSchema<{
|
244
251
|
input: TReturnType["input"];
|
@@ -249,6 +256,7 @@ export declare function getSchemasWithDefaultAdapter<TAdapter extends SchemaAdap
|
|
249
256
|
}, {
|
250
257
|
schemaAdapter: TAdapter;
|
251
258
|
schemaType: "object";
|
259
|
+
context: any;
|
252
260
|
hasSave: false;
|
253
261
|
}, Record<any, any>>]> : ObjectSchema<{
|
254
262
|
input: TReturnType["input"];
|
@@ -259,6 +267,7 @@ export declare function getSchemasWithDefaultAdapter<TAdapter extends SchemaAdap
|
|
259
267
|
}, {
|
260
268
|
schemaAdapter: TAdapter;
|
261
269
|
schemaType: "object";
|
270
|
+
context: any;
|
262
271
|
hasSave: false;
|
263
272
|
}, Record<any, any>>;
|
264
273
|
};
|
package/dist/src/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,IAAI,YAAY,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,KAAK,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
@@ -504,6 +504,7 @@ var Schema = class _Schema {
|
|
504
504
|
static {
|
505
505
|
__name(this, "Schema");
|
506
506
|
}
|
507
|
+
"~standard";
|
507
508
|
$$type = "$PSchema";
|
508
509
|
fieldType = "schema";
|
509
510
|
// Those functions will assume control of the validation process on adapters, instead of the schema.
|
@@ -686,7 +687,10 @@ var Schema = class _Schema {
|
|
686
687
|
const shouldCallToInternalDuringParse = hasToInternalCallback && (options.toInternalToBubbleUp?.length === 0 || Array.isArray(options.toInternalToBubbleUp) === false);
|
687
688
|
const hasNoErrors = parseResult.errors === void 0 || (parseResult.errors || []).length === 0;
|
688
689
|
await Promise.all(this.__refinements.map(async (refinement) => {
|
689
|
-
const errorOrNothing = await Promise.resolve(refinement(
|
690
|
+
const errorOrNothing = await Promise.resolve(refinement({
|
691
|
+
value: parseResult.parsed,
|
692
|
+
context: options.context
|
693
|
+
}));
|
690
694
|
if (typeof errorOrNothing === "undefined") return;
|
691
695
|
parseResult.errors.push({
|
692
696
|
isValid: false,
|
@@ -719,8 +723,6 @@ var Schema = class _Schema {
|
|
719
723
|
* ```
|
720
724
|
*
|
721
725
|
* @param refinementCallback - The callback that will be called to validate the value.
|
722
|
-
* @param options - Options for the refinement.
|
723
|
-
* @param options.isAsync - Whether the callback is async or not. Defaults to true.
|
724
726
|
*/
|
725
727
|
refine(refinementCallback) {
|
726
728
|
this.__refinements.push(refinementCallback);
|
@@ -975,17 +977,19 @@ var Schema = class _Schema {
|
|
975
977
|
* @returns An object with the property isValid, if the value is valid, the function `save` will be present.
|
976
978
|
* If the value is invalid, the property errors will be present.
|
977
979
|
*/
|
978
|
-
async validate(value, context) {
|
980
|
+
async validate(value, context = {}) {
|
979
981
|
const { errors, parsed } = await this.__parse(value, [], {
|
980
982
|
context
|
981
983
|
});
|
982
984
|
if ((errors || []).length > 0) return {
|
983
985
|
isValid: false,
|
984
|
-
errors
|
986
|
+
errors,
|
987
|
+
save: void 0
|
985
988
|
};
|
986
989
|
return {
|
987
990
|
isValid: true,
|
988
|
-
save: /* @__PURE__ */ __name(async () => this._save.bind(this)(parsed, context), "save")
|
991
|
+
save: /* @__PURE__ */ __name(async () => this._save.bind(this)(parsed, context), "save"),
|
992
|
+
errors: void 0
|
989
993
|
};
|
990
994
|
}
|
991
995
|
/**
|
@@ -998,8 +1002,9 @@ var Schema = class _Schema {
|
|
998
1002
|
*/
|
999
1003
|
async _save(value, context) {
|
1000
1004
|
if (this.__saveCallback) {
|
1001
|
-
|
1002
|
-
|
1005
|
+
let result = this.__saveCallback(value);
|
1006
|
+
if (typeof result === "function") result = result(context);
|
1007
|
+
return this.data(result instanceof Promise ? await result : result);
|
1003
1008
|
}
|
1004
1009
|
return this.data(value);
|
1005
1010
|
}
|
@@ -6300,7 +6305,7 @@ function schemaHandler(input, output) {
|
|
6300
6305
|
__name(schemaHandler, "schemaHandler");
|
6301
6306
|
|
6302
6307
|
// src/index.ts
|
6303
|
-
var
|
6308
|
+
var index_default = schemasDomain;
|
6304
6309
|
function getSchemasWithDefaultAdapter() {
|
6305
6310
|
return {
|
6306
6311
|
number: /* @__PURE__ */ __name(() => NumberSchema.new(), "number"),
|
@@ -6426,7 +6431,7 @@ export {
|
|
6426
6431
|
compile,
|
6427
6432
|
datetime,
|
6428
6433
|
datetimeFieldAdapter,
|
6429
|
-
|
6434
|
+
index_default as default,
|
6430
6435
|
fieldAdapter,
|
6431
6436
|
getDefaultAdapter,
|
6432
6437
|
getSchemasWithDefaultAdapter,
|
package/dist/src/model.cjs
CHANGED
@@ -477,6 +477,7 @@ var Schema = class _Schema {
|
|
477
477
|
static {
|
478
478
|
__name(this, "Schema");
|
479
479
|
}
|
480
|
+
"~standard";
|
480
481
|
$$type = "$PSchema";
|
481
482
|
fieldType = "schema";
|
482
483
|
// Those functions will assume control of the validation process on adapters, instead of the schema.
|
@@ -659,7 +660,10 @@ var Schema = class _Schema {
|
|
659
660
|
const shouldCallToInternalDuringParse = hasToInternalCallback && (options.toInternalToBubbleUp?.length === 0 || Array.isArray(options.toInternalToBubbleUp) === false);
|
660
661
|
const hasNoErrors = parseResult.errors === void 0 || (parseResult.errors || []).length === 0;
|
661
662
|
await Promise.all(this.__refinements.map(async (refinement) => {
|
662
|
-
const errorOrNothing = await Promise.resolve(refinement(
|
663
|
+
const errorOrNothing = await Promise.resolve(refinement({
|
664
|
+
value: parseResult.parsed,
|
665
|
+
context: options.context
|
666
|
+
}));
|
663
667
|
if (typeof errorOrNothing === "undefined") return;
|
664
668
|
parseResult.errors.push({
|
665
669
|
isValid: false,
|
@@ -692,8 +696,6 @@ var Schema = class _Schema {
|
|
692
696
|
* ```
|
693
697
|
*
|
694
698
|
* @param refinementCallback - The callback that will be called to validate the value.
|
695
|
-
* @param options - Options for the refinement.
|
696
|
-
* @param options.isAsync - Whether the callback is async or not. Defaults to true.
|
697
699
|
*/
|
698
700
|
refine(refinementCallback) {
|
699
701
|
this.__refinements.push(refinementCallback);
|
@@ -948,17 +950,19 @@ var Schema = class _Schema {
|
|
948
950
|
* @returns An object with the property isValid, if the value is valid, the function `save` will be present.
|
949
951
|
* If the value is invalid, the property errors will be present.
|
950
952
|
*/
|
951
|
-
async validate(value, context) {
|
953
|
+
async validate(value, context = {}) {
|
952
954
|
const { errors, parsed } = await this.__parse(value, [], {
|
953
955
|
context
|
954
956
|
});
|
955
957
|
if ((errors || []).length > 0) return {
|
956
958
|
isValid: false,
|
957
|
-
errors
|
959
|
+
errors,
|
960
|
+
save: void 0
|
958
961
|
};
|
959
962
|
return {
|
960
963
|
isValid: true,
|
961
|
-
save: /* @__PURE__ */ __name(async () => this._save.bind(this)(parsed, context), "save")
|
964
|
+
save: /* @__PURE__ */ __name(async () => this._save.bind(this)(parsed, context), "save"),
|
965
|
+
errors: void 0
|
962
966
|
};
|
963
967
|
}
|
964
968
|
/**
|
@@ -971,8 +975,9 @@ var Schema = class _Schema {
|
|
971
975
|
*/
|
972
976
|
async _save(value, context) {
|
973
977
|
if (this.__saveCallback) {
|
974
|
-
|
975
|
-
|
978
|
+
let result = this.__saveCallback(value);
|
979
|
+
if (typeof result === "function") result = result(context);
|
980
|
+
return this.data(result instanceof Promise ? await result : result);
|
976
981
|
}
|
977
982
|
return this.data(value);
|
978
983
|
}
|
package/dist/src/model.d.ts
CHANGED
@@ -2,7 +2,7 @@ import { ArraySchema } from './schema/array';
|
|
2
2
|
import { ObjectSchema } from './schema/object';
|
3
3
|
import type { Schema } from './schema/schema';
|
4
4
|
import type { DefinitionsOfSchemaType, ExtractTypeFromObjectOfSchemas } from './schema/types';
|
5
|
-
import type { Model, ModelFields } from '@palmares/databases';
|
5
|
+
import type { InferModel, Model, ModelFields } from '@palmares/databases';
|
6
6
|
/**
|
7
7
|
* Different from other schemas, this function is a factory function that returns either an ObjectSchema or an
|
8
8
|
* ArraySchema. The idea is to build the schema of a model dynamically based on its fields.
|
@@ -92,18 +92,18 @@ import type { Model, ModelFields } from '@palmares/databases';
|
|
92
92
|
*
|
93
93
|
* @returns - If you pass the `many` option as true, we return an ArraySchema, otherwise we return an ObjectSchema.
|
94
94
|
*/
|
95
|
-
export declare function modelSchema<TModel extends ReturnType<typeof Model>, const TOmit extends readonly (keyof ModelFields<InstanceType<TModel>>)[] | undefined[] = undefined[], const TShow extends readonly (keyof ModelFields<InstanceType<TModel>>)[] | undefined[] = undefined[], TMany extends boolean = false, TFields extends Record<any, Schema<any, DefinitionsOfSchemaType>> | undefined = undefined,
|
95
|
+
export declare function modelSchema<TModel extends ReturnType<typeof Model>, const TOmit extends readonly (keyof ModelFields<InstanceType<TModel>>)[] | undefined[] = undefined[], const TShow extends readonly (keyof ModelFields<InstanceType<TModel>>)[] | undefined[] = undefined[], TMany extends boolean = false, TFields extends Record<any, Schema<any, DefinitionsOfSchemaType>> | undefined = undefined, TAllModelFieldsRead = InferModel<InstanceType<TModel>, 'read'>, TAllModelFieldsCreate = InferModel<InstanceType<TModel>, 'create'>, TDefinitionsOfSchemaType extends DefinitionsOfSchemaType = DefinitionsOfSchemaType, TFieldsOnModelRead = TOmit extends undefined[] ? TShow extends undefined[] ? TAllModelFieldsRead : Pick<TAllModelFieldsRead, TShow[number] extends keyof TAllModelFieldsRead ? TShow[number] : never> : Omit<TAllModelFieldsRead, TOmit[number] extends keyof TAllModelFieldsRead ? TOmit[number] : never>, TFieldsOnModelCreateOrUpdate = TOmit extends undefined[] ? TShow extends undefined[] ? TAllModelFieldsCreate : Pick<TAllModelFieldsCreate, TShow[number] extends keyof TAllModelFieldsCreate ? TShow[number] : never> : Omit<TAllModelFieldsCreate, TOmit[number] extends keyof TAllModelFieldsCreate ? TOmit[number] : never>, TReturnType extends {
|
96
96
|
input: any;
|
97
97
|
output: any;
|
98
98
|
validate: any;
|
99
99
|
internal: any;
|
100
100
|
representation: any;
|
101
101
|
} = {
|
102
|
-
input: TFields extends undefined ?
|
103
|
-
output: TFields extends undefined ?
|
104
|
-
internal: TFields extends undefined ?
|
105
|
-
representation: TFields extends undefined ?
|
106
|
-
validate: TFields extends undefined ?
|
102
|
+
input: TFields extends undefined ? TFieldsOnModelCreateOrUpdate : Omit<TFieldsOnModelCreateOrUpdate, keyof ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, 'input'>> & ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, 'input'>;
|
103
|
+
output: TFields extends undefined ? TFieldsOnModelRead : Omit<TFieldsOnModelRead, keyof ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, 'output'>> & ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, 'output'>;
|
104
|
+
internal: TFields extends undefined ? TFieldsOnModelCreateOrUpdate : Omit<TFieldsOnModelCreateOrUpdate, keyof ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, 'internal'>> & ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, 'internal'>;
|
105
|
+
representation: TFields extends undefined ? TFieldsOnModelRead : Omit<TFieldsOnModelRead, keyof ExtractTypeFromObjectOfSchemas<TFields extends Record<any, Schema<any, DefinitionsOfSchemaType>> ? TFields : {}, 'representation'>> & ExtractTypeFromObjectOfSchemas<TFields extends Record<any, Schema<any, DefinitionsOfSchemaType>> ? TFields : {}, 'representation'>;
|
106
|
+
validate: TFields extends undefined ? TFieldsOnModelCreateOrUpdate : Omit<TFieldsOnModelCreateOrUpdate, keyof ExtractTypeFromObjectOfSchemas<TFields extends Record<any, Schema<any, DefinitionsOfSchemaType>> ? TFields : {}, 'validate'>> & ExtractTypeFromObjectOfSchemas<TFields extends Record<any, Schema<any, DefinitionsOfSchemaType>> ? TFields : {}, 'validate'>;
|
107
107
|
}>(model: TModel, options?: {
|
108
108
|
ignoreExtraneousFields?: boolean;
|
109
109
|
engineInstance?: string;
|
package/dist/src/model.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"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"}
|
package/dist/src/model.js
CHANGED
@@ -453,6 +453,7 @@ var Schema = class _Schema {
|
|
453
453
|
static {
|
454
454
|
__name(this, "Schema");
|
455
455
|
}
|
456
|
+
"~standard";
|
456
457
|
$$type = "$PSchema";
|
457
458
|
fieldType = "schema";
|
458
459
|
// Those functions will assume control of the validation process on adapters, instead of the schema.
|
@@ -635,7 +636,10 @@ var Schema = class _Schema {
|
|
635
636
|
const shouldCallToInternalDuringParse = hasToInternalCallback && (options.toInternalToBubbleUp?.length === 0 || Array.isArray(options.toInternalToBubbleUp) === false);
|
636
637
|
const hasNoErrors = parseResult.errors === void 0 || (parseResult.errors || []).length === 0;
|
637
638
|
await Promise.all(this.__refinements.map(async (refinement) => {
|
638
|
-
const errorOrNothing = await Promise.resolve(refinement(
|
639
|
+
const errorOrNothing = await Promise.resolve(refinement({
|
640
|
+
value: parseResult.parsed,
|
641
|
+
context: options.context
|
642
|
+
}));
|
639
643
|
if (typeof errorOrNothing === "undefined") return;
|
640
644
|
parseResult.errors.push({
|
641
645
|
isValid: false,
|
@@ -668,8 +672,6 @@ var Schema = class _Schema {
|
|
668
672
|
* ```
|
669
673
|
*
|
670
674
|
* @param refinementCallback - The callback that will be called to validate the value.
|
671
|
-
* @param options - Options for the refinement.
|
672
|
-
* @param options.isAsync - Whether the callback is async or not. Defaults to true.
|
673
675
|
*/
|
674
676
|
refine(refinementCallback) {
|
675
677
|
this.__refinements.push(refinementCallback);
|
@@ -924,17 +926,19 @@ var Schema = class _Schema {
|
|
924
926
|
* @returns An object with the property isValid, if the value is valid, the function `save` will be present.
|
925
927
|
* If the value is invalid, the property errors will be present.
|
926
928
|
*/
|
927
|
-
async validate(value, context) {
|
929
|
+
async validate(value, context = {}) {
|
928
930
|
const { errors, parsed } = await this.__parse(value, [], {
|
929
931
|
context
|
930
932
|
});
|
931
933
|
if ((errors || []).length > 0) return {
|
932
934
|
isValid: false,
|
933
|
-
errors
|
935
|
+
errors,
|
936
|
+
save: void 0
|
934
937
|
};
|
935
938
|
return {
|
936
939
|
isValid: true,
|
937
|
-
save: /* @__PURE__ */ __name(async () => this._save.bind(this)(parsed, context), "save")
|
940
|
+
save: /* @__PURE__ */ __name(async () => this._save.bind(this)(parsed, context), "save"),
|
941
|
+
errors: void 0
|
938
942
|
};
|
939
943
|
}
|
940
944
|
/**
|
@@ -947,8 +951,9 @@ var Schema = class _Schema {
|
|
947
951
|
*/
|
948
952
|
async _save(value, context) {
|
949
953
|
if (this.__saveCallback) {
|
950
|
-
|
951
|
-
|
954
|
+
let result = this.__saveCallback(value);
|
955
|
+
if (typeof result === "function") result = result(context);
|
956
|
+
return this.data(result instanceof Promise ? await result : result);
|
952
957
|
}
|
953
958
|
return this.data(value);
|
954
959
|
}
|
@@ -454,6 +454,7 @@ var Schema = class _Schema {
|
|
454
454
|
static {
|
455
455
|
__name(this, "Schema");
|
456
456
|
}
|
457
|
+
"~standard";
|
457
458
|
$$type = "$PSchema";
|
458
459
|
fieldType = "schema";
|
459
460
|
// Those functions will assume control of the validation process on adapters, instead of the schema.
|
@@ -636,7 +637,10 @@ var Schema = class _Schema {
|
|
636
637
|
const shouldCallToInternalDuringParse = hasToInternalCallback && (options.toInternalToBubbleUp?.length === 0 || Array.isArray(options.toInternalToBubbleUp) === false);
|
637
638
|
const hasNoErrors = parseResult.errors === void 0 || (parseResult.errors || []).length === 0;
|
638
639
|
await Promise.all(this.__refinements.map(async (refinement) => {
|
639
|
-
const errorOrNothing = await Promise.resolve(refinement(
|
640
|
+
const errorOrNothing = await Promise.resolve(refinement({
|
641
|
+
value: parseResult.parsed,
|
642
|
+
context: options.context
|
643
|
+
}));
|
640
644
|
if (typeof errorOrNothing === "undefined") return;
|
641
645
|
parseResult.errors.push({
|
642
646
|
isValid: false,
|
@@ -669,8 +673,6 @@ var Schema = class _Schema {
|
|
669
673
|
* ```
|
670
674
|
*
|
671
675
|
* @param refinementCallback - The callback that will be called to validate the value.
|
672
|
-
* @param options - Options for the refinement.
|
673
|
-
* @param options.isAsync - Whether the callback is async or not. Defaults to true.
|
674
676
|
*/
|
675
677
|
refine(refinementCallback) {
|
676
678
|
this.__refinements.push(refinementCallback);
|
@@ -925,17 +927,19 @@ var Schema = class _Schema {
|
|
925
927
|
* @returns An object with the property isValid, if the value is valid, the function `save` will be present.
|
926
928
|
* If the value is invalid, the property errors will be present.
|
927
929
|
*/
|
928
|
-
async validate(value, context) {
|
930
|
+
async validate(value, context = {}) {
|
929
931
|
const { errors, parsed } = await this.__parse(value, [], {
|
930
932
|
context
|
931
933
|
});
|
932
934
|
if ((errors || []).length > 0) return {
|
933
935
|
isValid: false,
|
934
|
-
errors
|
936
|
+
errors,
|
937
|
+
save: void 0
|
935
938
|
};
|
936
939
|
return {
|
937
940
|
isValid: true,
|
938
|
-
save: /* @__PURE__ */ __name(async () => this._save.bind(this)(parsed, context), "save")
|
941
|
+
save: /* @__PURE__ */ __name(async () => this._save.bind(this)(parsed, context), "save"),
|
942
|
+
errors: void 0
|
939
943
|
};
|
940
944
|
}
|
941
945
|
/**
|
@@ -948,8 +952,9 @@ var Schema = class _Schema {
|
|
948
952
|
*/
|
949
953
|
async _save(value, context) {
|
950
954
|
if (this.__saveCallback) {
|
951
|
-
|
952
|
-
|
955
|
+
let result = this.__saveCallback(value);
|
956
|
+
if (typeof result === "function") result = result(context);
|
957
|
+
return this.data(result instanceof Promise ? await result : result);
|
953
958
|
}
|
954
959
|
return this.data(value);
|
955
960
|
}
|