@tstdl/base 0.71.84 → 0.71.85
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/package.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { JsonPath } from "../../json-path";
|
|
2
|
-
import type {
|
|
2
|
+
import type { OneOrMany, Optionalize, SimplifyObject, StringMap } from "../../types";
|
|
3
|
+
import type { Simplify } from 'type-fest';
|
|
3
4
|
import type { DefinedValidationOptions, ValidationTestResult } from '../schema.validator';
|
|
4
5
|
import { SchemaValidator, test, testAsync } from '../schema.validator';
|
|
5
6
|
import type { Maskable, SchemaDefinition, SchemaOptions, SchemaOutput } from '../types';
|
|
@@ -15,13 +16,19 @@ export declare type ObjectSchemaDefinition<T extends StringMap<SchemaDefinition>
|
|
|
15
16
|
keepUnknown?: boolean;
|
|
16
17
|
};
|
|
17
18
|
export declare type ObjectAssign<A extends StringMap<SchemaDefinition>, B extends StringMap<SchemaDefinition>> = SimplifyObject<B & Omit<A, keyof B>>;
|
|
19
|
+
export declare type ObjectPick<T extends StringMap<SchemaDefinition>, K extends keyof T> = SimplifyObject<Pick<T, K>>;
|
|
20
|
+
export declare type ObjectExclude<T extends StringMap<SchemaDefinition>, K extends keyof T> = SimplifyObject<Omit<T, K>>;
|
|
18
21
|
export declare class ObjectSchemaValidator<T extends StringMap<SchemaDefinition>> extends SchemaValidator<ObjectSchemaDefinition<T>> {
|
|
19
22
|
private readonly validatorEntries;
|
|
20
23
|
constructor(validators: ObjectSchemaValidatorEntries<T>, schema: ObjectSchemaDefinition<T>);
|
|
21
24
|
static assign<A extends StringMap<SchemaDefinition>, B extends StringMap<SchemaDefinition>>(a: ObjectSchemaValidator<A>, b: ObjectSchemaValidator<B>): ObjectSchemaValidator<ObjectAssign<A, B>>;
|
|
25
|
+
static pick<T extends StringMap<SchemaDefinition>, K extends keyof T>(objectSchema: ObjectSchemaValidator<T>, keys: OneOrMany<K>): ObjectSchemaValidator<ObjectPick<T, K>>;
|
|
26
|
+
static exclude<T extends StringMap<SchemaDefinition>, K extends keyof T>(objectSchema: ObjectSchemaValidator<T>, keys: OneOrMany<K>): ObjectSchemaValidator<ObjectExclude<T, K>>;
|
|
22
27
|
[test](value: unknown, options: DefinedValidationOptions, path: JsonPath): ValidationTestResult<ObjectOutputType<T>>;
|
|
23
28
|
[testAsync](value: unknown, options: DefinedValidationOptions, path: JsonPath): Promise<ValidationTestResult<ObjectOutputType<T>>>;
|
|
24
29
|
private _testBase;
|
|
25
30
|
}
|
|
26
31
|
export declare function object<T extends StringMap<SchemaDefinition>>(entries: ObjectSchemaValidatorEntries<T>, options?: SchemaOptions<ObjectSchemaDefinition<T>, 'entries'>): ObjectSchemaValidator<T>;
|
|
27
32
|
export declare function assign<A extends StringMap<SchemaDefinition>, B extends StringMap<SchemaDefinition>>(a: ObjectSchemaValidator<A>, b: ObjectSchemaValidator<B>): ObjectSchemaValidator<ObjectAssign<A, B>>;
|
|
33
|
+
export declare function pick<T extends StringMap<SchemaDefinition>, K extends keyof T>(objectSchema: ObjectSchemaValidator<T>, keys: OneOrMany<K>): ObjectSchemaValidator<ObjectPick<T, K>>;
|
|
34
|
+
export declare function exclude<T extends StringMap<SchemaDefinition>, K extends keyof T>(objectSchema: ObjectSchemaValidator<T>, keys: OneOrMany<K>): ObjectSchemaValidator<ObjectExclude<T, K>>;
|
package/schema/schemas/object.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.assign = exports.object = exports.ObjectSchemaValidator = void 0;
|
|
3
|
+
exports.exclude = exports.pick = exports.assign = exports.object = exports.ObjectSchemaValidator = void 0;
|
|
4
|
+
const array_1 = require("../../utils/array/array");
|
|
4
5
|
const map_1 = require("../../utils/map");
|
|
5
6
|
const object_1 = require("../../utils/object/object");
|
|
6
7
|
const type_guards_1 = require("../../utils/type-guards");
|
|
@@ -13,13 +14,31 @@ class ObjectSchemaValidator extends schema_validator_1.SchemaValidator {
|
|
|
13
14
|
this.validatorEntries = new Map((0, object_1.objectEntries)(validators));
|
|
14
15
|
}
|
|
15
16
|
static assign(a, b) {
|
|
16
|
-
const validatorEntries = Object.fromEntries([...a.validatorEntries
|
|
17
|
+
const validatorEntries = Object.fromEntries([...a.validatorEntries, ...b.validatorEntries]);
|
|
17
18
|
const schema = {
|
|
18
19
|
type: 'object',
|
|
19
20
|
entries: { ...a.schema.entries, ...b.schema.entries }
|
|
20
21
|
};
|
|
21
22
|
return new ObjectSchemaValidator(validatorEntries, schema);
|
|
22
23
|
}
|
|
24
|
+
static pick(objectSchema, keys) {
|
|
25
|
+
const keysArray = (0, array_1.toArray)(keys);
|
|
26
|
+
const validatorEntries = Object.fromEntries([...objectSchema.validatorEntries].filter(([key]) => keysArray.includes(key)));
|
|
27
|
+
const schema = {
|
|
28
|
+
type: 'object',
|
|
29
|
+
entries: Object.fromEntries([...Object.entries(objectSchema.schema.entries)].filter(([key]) => keysArray.includes(key)))
|
|
30
|
+
};
|
|
31
|
+
return new ObjectSchemaValidator(validatorEntries, schema);
|
|
32
|
+
}
|
|
33
|
+
static exclude(objectSchema, keys) {
|
|
34
|
+
const keysArray = (0, array_1.toArray)(keys);
|
|
35
|
+
const validatorEntries = Object.fromEntries([...objectSchema.validatorEntries].filter(([key]) => !keysArray.includes(key)));
|
|
36
|
+
const schema = {
|
|
37
|
+
type: 'object',
|
|
38
|
+
entries: Object.fromEntries([...Object.entries(objectSchema.schema.entries)].filter(([key]) => !keysArray.includes(key)))
|
|
39
|
+
};
|
|
40
|
+
return new ObjectSchemaValidator(validatorEntries, schema);
|
|
41
|
+
}
|
|
23
42
|
[schema_validator_1.test](value, options, path) {
|
|
24
43
|
const testBaseResult = this._testBase(value, options, path);
|
|
25
44
|
if (!testBaseResult.valid) {
|
|
@@ -91,4 +110,12 @@ function assign(a, b) {
|
|
|
91
110
|
return ObjectSchemaValidator.assign(a, b);
|
|
92
111
|
}
|
|
93
112
|
exports.assign = assign;
|
|
113
|
+
function pick(objectSchema, keys) {
|
|
114
|
+
return ObjectSchemaValidator.pick(objectSchema, keys);
|
|
115
|
+
}
|
|
116
|
+
exports.pick = pick;
|
|
117
|
+
function exclude(objectSchema, keys) {
|
|
118
|
+
return ObjectSchemaValidator.exclude(objectSchema, keys);
|
|
119
|
+
}
|
|
120
|
+
exports.exclude = exclude;
|
|
94
121
|
//# sourceMappingURL=object.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.js","sourceRoot":"","sources":["../../../source/schema/schemas/object.ts"],"names":[],"mappings":";;;AAEA,yCAA6C;AAC7C,sDAAsD;AACtD,yDAAgD;
|
|
1
|
+
{"version":3,"file":"object.js","sourceRoot":"","sources":["../../../source/schema/schemas/object.ts"],"names":[],"mappings":"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"}
|