@sprucelabs/schema 31.0.93 → 31.1.1
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/StaticSchemaEntityImpl.d.ts +1 -1
- package/build/StaticSchemaEntityImpl.js +5 -2
- package/build/esm/StaticSchemaEntityImpl.d.ts +1 -1
- package/build/esm/StaticSchemaEntityImpl.js +5 -2
- package/build/esm/fields/SelectField.types.d.ts +2 -2
- package/build/esm/schemas.static.types.d.ts +3 -1
- package/build/esm/tests/selectAssert.deprecated.d.ts +1 -1
- package/build/esm/tests/selectAssert.utility.d.ts +1 -1
- package/build/esm/utilities/normalizeSchemaValues.d.ts +1 -1
- package/build/esm/utilities/normalizeSchemaValues.js +1 -1
- package/build/fields/SelectField.types.d.ts +2 -2
- package/build/schemas.static.types.d.ts +3 -1
- package/build/tests/selectAssert.deprecated.d.ts +1 -1
- package/build/tests/selectAssert.utility.d.ts +1 -1
- package/build/utilities/normalizeSchemaValues.d.ts +1 -1
- package/build/utilities/normalizeSchemaValues.js +1 -1
- package/package.json +1 -1
|
@@ -14,7 +14,7 @@ export default class StaticSchemaEntityImpl<S extends Schema> extends AbstractEn
|
|
|
14
14
|
private pluckExtraFields;
|
|
15
15
|
validate(options?: SchemaValidateOptions<S>): void;
|
|
16
16
|
getDefaultValues<F extends SchemaFieldNamesWithDefaultValue<S> = SchemaFieldNamesWithDefaultValue<S>, CreateEntityInstances extends boolean = true>(options?: SchemaGetDefaultValuesOptions<S, F, CreateEntityInstances>): Pick<SchemaDefaultValues<S, CreateEntityInstances>, F>;
|
|
17
|
-
getValues<F extends SchemaFieldNames<S> = SchemaFieldNames<S>, PF extends SchemaPublicFieldNames<S> = SchemaPublicFieldNames<S>, CreateEntityInstances extends boolean = true, IncludePrivateFields extends boolean = true>(options?: SchemaGetValuesOptions<S, F, PF, CreateEntityInstances, IncludePrivateFields>): IncludePrivateFields extends false ? Pick<SchemaPublicValues<S, CreateEntityInstances>, PF> : Pick<SchemaAllValues<S, CreateEntityInstances>, F>;
|
|
17
|
+
getValues<F extends SchemaFieldNames<S> = SchemaFieldNames<S>, PF extends SchemaPublicFieldNames<S> = SchemaPublicFieldNames<S>, CreateEntityInstances extends boolean = true, IncludePrivateFields extends boolean = true, ShouldIncludeNullAndUndefinedFields extends boolean = true, ExcludeFields extends SchemaFieldNames<S> | undefined = undefined, PublicExcludeFields extends SchemaPublicFieldNames<S> | undefined = undefined>(options?: SchemaGetValuesOptions<S, F, PF, CreateEntityInstances, IncludePrivateFields, ShouldIncludeNullAndUndefinedFields, ExcludeFields, PublicExcludeFields>): IncludePrivateFields extends false ? Pick<SchemaPublicValues<S, CreateEntityInstances>, PF> : Pick<SchemaAllValues<S, CreateEntityInstances>, F>;
|
|
18
18
|
setValues(values: StaticSchemaPartialValues<S>): this;
|
|
19
19
|
getNamedFields<F extends SchemaFieldNames<S>>(options?: SchemaNamedFieldsOptions<S, F>): SchemaNamedField<S>[];
|
|
20
20
|
}
|
|
@@ -175,13 +175,16 @@ class StaticSchemaEntityImpl extends AbstractEntity_1.default {
|
|
|
175
175
|
}
|
|
176
176
|
getValues(options) {
|
|
177
177
|
const values = {};
|
|
178
|
-
let { fields = Object.keys(this.fields), shouldIncludePrivateFields: includePrivateFields = true, shouldIncludeNullAndUndefinedFields = true, } = options || {};
|
|
178
|
+
let { fields = Object.keys(this.fields), shouldIncludePrivateFields: includePrivateFields = true, shouldIncludeNullAndUndefinedFields = true, excludeFields, } = options || {};
|
|
179
179
|
this.getNamedFields().forEach((namedField) => {
|
|
180
180
|
const { name, field } = namedField;
|
|
181
181
|
const shouldSkipBecauseNotSet = !shouldIncludeNullAndUndefinedFields && !(name in this.values);
|
|
182
182
|
const shouldSkipBecauseUndefinedOrNull = !shouldIncludeNullAndUndefinedFields &&
|
|
183
183
|
(this.values[name] === undefined || this.values[name] === null);
|
|
184
|
-
|
|
184
|
+
const shouldSkipBecauseExcluded = excludeFields?.includes(name);
|
|
185
|
+
if (shouldSkipBecauseNotSet ||
|
|
186
|
+
shouldSkipBecauseUndefinedOrNull ||
|
|
187
|
+
shouldSkipBecauseExcluded) {
|
|
185
188
|
return;
|
|
186
189
|
}
|
|
187
190
|
if (fields.indexOf(name) > -1 &&
|
|
@@ -14,7 +14,7 @@ export default class StaticSchemaEntityImpl<S extends Schema> extends AbstractEn
|
|
|
14
14
|
private pluckExtraFields;
|
|
15
15
|
validate(options?: SchemaValidateOptions<S>): void;
|
|
16
16
|
getDefaultValues<F extends SchemaFieldNamesWithDefaultValue<S> = SchemaFieldNamesWithDefaultValue<S>, CreateEntityInstances extends boolean = true>(options?: SchemaGetDefaultValuesOptions<S, F, CreateEntityInstances>): Pick<SchemaDefaultValues<S, CreateEntityInstances>, F>;
|
|
17
|
-
getValues<F extends SchemaFieldNames<S> = SchemaFieldNames<S>, PF extends SchemaPublicFieldNames<S> = SchemaPublicFieldNames<S>, CreateEntityInstances extends boolean = true, IncludePrivateFields extends boolean = true>(options?: SchemaGetValuesOptions<S, F, PF, CreateEntityInstances, IncludePrivateFields>): IncludePrivateFields extends false ? Pick<SchemaPublicValues<S, CreateEntityInstances>, PF> : Pick<SchemaAllValues<S, CreateEntityInstances>, F>;
|
|
17
|
+
getValues<F extends SchemaFieldNames<S> = SchemaFieldNames<S>, PF extends SchemaPublicFieldNames<S> = SchemaPublicFieldNames<S>, CreateEntityInstances extends boolean = true, IncludePrivateFields extends boolean = true, ShouldIncludeNullAndUndefinedFields extends boolean = true, ExcludeFields extends SchemaFieldNames<S> | undefined = undefined, PublicExcludeFields extends SchemaPublicFieldNames<S> | undefined = undefined>(options?: SchemaGetValuesOptions<S, F, PF, CreateEntityInstances, IncludePrivateFields, ShouldIncludeNullAndUndefinedFields, ExcludeFields, PublicExcludeFields>): IncludePrivateFields extends false ? Pick<SchemaPublicValues<S, CreateEntityInstances>, PF> : Pick<SchemaAllValues<S, CreateEntityInstances>, F>;
|
|
18
18
|
setValues(values: StaticSchemaPartialValues<S>): this;
|
|
19
19
|
getNamedFields<F extends SchemaFieldNames<S>>(options?: SchemaNamedFieldsOptions<S, F>): SchemaNamedField<S>[];
|
|
20
20
|
}
|
|
@@ -139,13 +139,16 @@ class StaticSchemaEntityImpl extends AbstractEntity {
|
|
|
139
139
|
}
|
|
140
140
|
getValues(options) {
|
|
141
141
|
const values = {};
|
|
142
|
-
let { fields = Object.keys(this.fields), shouldIncludePrivateFields: includePrivateFields = true, shouldIncludeNullAndUndefinedFields = true, } = options || {};
|
|
142
|
+
let { fields = Object.keys(this.fields), shouldIncludePrivateFields: includePrivateFields = true, shouldIncludeNullAndUndefinedFields = true, excludeFields, } = options || {};
|
|
143
143
|
this.getNamedFields().forEach((namedField) => {
|
|
144
144
|
const { name, field } = namedField;
|
|
145
145
|
const shouldSkipBecauseNotSet = !shouldIncludeNullAndUndefinedFields && !(name in this.values);
|
|
146
146
|
const shouldSkipBecauseUndefinedOrNull = !shouldIncludeNullAndUndefinedFields &&
|
|
147
147
|
(this.values[name] === undefined || this.values[name] === null);
|
|
148
|
-
|
|
148
|
+
const shouldSkipBecauseExcluded = excludeFields === null || excludeFields === void 0 ? void 0 : excludeFields.includes(name);
|
|
149
|
+
if (shouldSkipBecauseNotSet ||
|
|
150
|
+
shouldSkipBecauseUndefinedOrNull ||
|
|
151
|
+
shouldSkipBecauseExcluded) {
|
|
149
152
|
return;
|
|
150
153
|
}
|
|
151
154
|
if (fields.indexOf(name) > -1 &&
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { FieldDefinition } from './field.static.types';
|
|
2
|
+
export type SelectValue = string | number;
|
|
2
3
|
export interface SelectChoice {
|
|
3
4
|
/** Machine readable way to identify this choice */
|
|
4
|
-
value:
|
|
5
|
-
/** Human readable label for when selecting a choice */
|
|
5
|
+
value: SelectValue;
|
|
6
6
|
label: string;
|
|
7
7
|
}
|
|
8
8
|
export interface SelectFieldOptions {
|
|
@@ -121,12 +121,14 @@ export interface SchemaNormalizeOptions<S extends Schema, CreateEntityInstances
|
|
|
121
121
|
}
|
|
122
122
|
export interface DynamicSchemaNormalizeOptions<CreateEntityInstances extends boolean> extends SchemaNormalizeFieldValueOptions<CreateEntityInstances> {
|
|
123
123
|
}
|
|
124
|
-
export type SchemaGetValuesOptions<
|
|
124
|
+
export type SchemaGetValuesOptions<S extends Schema, F extends SchemaFieldNames<S> = SchemaFieldNames<S>, PF extends SchemaPublicFieldNames<S> = SchemaPublicFieldNames<S>, CreateEntityInstances extends boolean = false, IncludePrivateFields extends boolean = true, ShouldIncludeNullAndUndefinedFields extends boolean = true, ExcludeFields extends SchemaFieldNames<S> | undefined = undefined, PublicExcludeFields extends SchemaPublicFieldNames<S> | undefined = undefined> = SchemaNormalizeOptions<S, CreateEntityInstances, ShouldIncludeNullAndUndefinedFields> & (IncludePrivateFields extends false ? {
|
|
125
125
|
shouldIncludePrivateFields: IncludePrivateFields;
|
|
126
126
|
fields?: PF[];
|
|
127
|
+
excludeFields?: PublicExcludeFields[];
|
|
127
128
|
} : {
|
|
128
129
|
shouldIncludePrivateFields?: IncludePrivateFields;
|
|
129
130
|
fields?: F[];
|
|
131
|
+
excludeFields?: ExcludeFields[];
|
|
130
132
|
});
|
|
131
133
|
export type DynamicSchemaGetValuesOptions<T extends Schema, F extends string, CreateEntityInstances extends boolean> = SchemaNormalizeOptions<T, CreateEntityInstances> & {
|
|
132
134
|
fields?: F[];
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* @deprecated selectAssertUtil -> selectAssert
|
|
3
3
|
*/
|
|
4
4
|
declare const selectAssertUtil: {
|
|
5
|
-
assertSelectChoicesMatch<Choice extends import("..").SelectChoice, Values extends Choice["value"]
|
|
5
|
+
assertSelectChoicesMatch<Choice extends import("..").SelectChoice, Values extends Choice["value"] = Choice["value"]>(choices: Choice[], expected: Values[]): void;
|
|
6
6
|
};
|
|
7
7
|
export default selectAssertUtil;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SelectChoice } from '../fields/SelectField.types';
|
|
2
2
|
declare const selectAssert: {
|
|
3
|
-
assertSelectChoicesMatch<Choice extends SelectChoice, Values extends Choice["value"]
|
|
3
|
+
assertSelectChoicesMatch<Choice extends SelectChoice, Values extends Choice["value"] = Choice["value"]>(choices: Choice[], expected: Values[]): void;
|
|
4
4
|
};
|
|
5
5
|
export default selectAssert;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Schema, SchemaPartialValues, SchemaGetValuesOptions, SchemaFieldNames, SchemaPublicFieldNames, IsDynamicSchema, DynamicSchemaAllValues, SchemaValues } from '../schemas.static.types';
|
|
2
2
|
import { ValuesWithPaths } from '../types/utilities.types';
|
|
3
|
-
export default function normalizeSchemaValues<S extends Schema, F extends SchemaFieldNames<S> = SchemaFieldNames<S>, PF extends SchemaPublicFieldNames<S> = SchemaPublicFieldNames<S>, CreateEntityInstances extends boolean = false, IncludePrivateFields extends boolean = true, IsDynamic extends boolean = IsDynamicSchema<S>, ShouldIncludeNullAndUndefinedFields extends boolean = true>(schema: S, values: ValuesWithPaths<SchemaPartialValues<S>> | SchemaValues<S>, options?: SchemaGetValuesOptions<S, F, PF, CreateEntityInstances, IncludePrivateFields, ShouldIncludeNullAndUndefinedFields>): IsDynamic extends true ? DynamicSchemaAllValues<S, CreateEntityInstances> : IncludePrivateFields extends true ? Pick<SchemaValues<S, CreateEntityInstances, true, ShouldIncludeNullAndUndefinedFields>, F> : Pick<SchemaValues<S, CreateEntityInstances, true, ShouldIncludeNullAndUndefinedFields>, PF>;
|
|
3
|
+
export default function normalizeSchemaValues<S extends Schema, F extends SchemaFieldNames<S> = SchemaFieldNames<S>, PF extends SchemaPublicFieldNames<S> = SchemaPublicFieldNames<S>, CreateEntityInstances extends boolean = false, IncludePrivateFields extends boolean = true, IsDynamic extends boolean = IsDynamicSchema<S>, ShouldIncludeNullAndUndefinedFields extends boolean = true, ExcludeFields extends SchemaFieldNames<S> | undefined = undefined, PublicExcludeFields extends SchemaPublicFieldNames<S> | undefined = undefined>(schema: S, values: ValuesWithPaths<SchemaPartialValues<S>> | SchemaValues<S>, options?: SchemaGetValuesOptions<S, F, PF, CreateEntityInstances, IncludePrivateFields, ShouldIncludeNullAndUndefinedFields, ExcludeFields, PublicExcludeFields>): IsDynamic extends true ? DynamicSchemaAllValues<S, CreateEntityInstances> : IncludePrivateFields extends true ? ExcludeFields extends SchemaFieldNames<S> ? Omit<Pick<SchemaValues<S, CreateEntityInstances, true, ShouldIncludeNullAndUndefinedFields>, F>, ExcludeFields> : Pick<SchemaValues<S, CreateEntityInstances, true, ShouldIncludeNullAndUndefinedFields>, F> : PublicExcludeFields extends SchemaFieldNames<S> ? Omit<Pick<SchemaValues<S, CreateEntityInstances, true, ShouldIncludeNullAndUndefinedFields>, PF>, PublicExcludeFields> : Pick<SchemaValues<S, CreateEntityInstances, true, ShouldIncludeNullAndUndefinedFields>, PF>;
|
|
@@ -5,7 +5,7 @@ export default function normalizeSchemaValues(schema, values, options) {
|
|
|
5
5
|
const instance = EntityFactory.Entity(schema, expandValues(values));
|
|
6
6
|
const { shouldCreateEntityInstances = false, fields, shouldRetainDotNotationKeys, ...rest } = options || {};
|
|
7
7
|
let areAnyKeysDotted = false;
|
|
8
|
-
|
|
8
|
+
const normalizedFields = fields === null || fields === void 0 ? void 0 : fields.map((f) => {
|
|
9
9
|
const hasDotKey = f.includes('.');
|
|
10
10
|
areAnyKeysDotted = areAnyKeysDotted || hasDotKey;
|
|
11
11
|
return hasDotKey ? f.split('.')[0] : f;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { FieldDefinition } from './field.static.types';
|
|
2
|
+
export type SelectValue = string | number;
|
|
2
3
|
export interface SelectChoice {
|
|
3
4
|
/** Machine readable way to identify this choice */
|
|
4
|
-
value:
|
|
5
|
-
/** Human readable label for when selecting a choice */
|
|
5
|
+
value: SelectValue;
|
|
6
6
|
label: string;
|
|
7
7
|
}
|
|
8
8
|
export interface SelectFieldOptions {
|
|
@@ -121,12 +121,14 @@ export interface SchemaNormalizeOptions<S extends Schema, CreateEntityInstances
|
|
|
121
121
|
}
|
|
122
122
|
export interface DynamicSchemaNormalizeOptions<CreateEntityInstances extends boolean> extends SchemaNormalizeFieldValueOptions<CreateEntityInstances> {
|
|
123
123
|
}
|
|
124
|
-
export type SchemaGetValuesOptions<
|
|
124
|
+
export type SchemaGetValuesOptions<S extends Schema, F extends SchemaFieldNames<S> = SchemaFieldNames<S>, PF extends SchemaPublicFieldNames<S> = SchemaPublicFieldNames<S>, CreateEntityInstances extends boolean = false, IncludePrivateFields extends boolean = true, ShouldIncludeNullAndUndefinedFields extends boolean = true, ExcludeFields extends SchemaFieldNames<S> | undefined = undefined, PublicExcludeFields extends SchemaPublicFieldNames<S> | undefined = undefined> = SchemaNormalizeOptions<S, CreateEntityInstances, ShouldIncludeNullAndUndefinedFields> & (IncludePrivateFields extends false ? {
|
|
125
125
|
shouldIncludePrivateFields: IncludePrivateFields;
|
|
126
126
|
fields?: PF[];
|
|
127
|
+
excludeFields?: PublicExcludeFields[];
|
|
127
128
|
} : {
|
|
128
129
|
shouldIncludePrivateFields?: IncludePrivateFields;
|
|
129
130
|
fields?: F[];
|
|
131
|
+
excludeFields?: ExcludeFields[];
|
|
130
132
|
});
|
|
131
133
|
export type DynamicSchemaGetValuesOptions<T extends Schema, F extends string, CreateEntityInstances extends boolean> = SchemaNormalizeOptions<T, CreateEntityInstances> & {
|
|
132
134
|
fields?: F[];
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* @deprecated selectAssertUtil -> selectAssert
|
|
3
3
|
*/
|
|
4
4
|
declare const selectAssertUtil: {
|
|
5
|
-
assertSelectChoicesMatch<Choice extends import("..").SelectChoice, Values extends Choice["value"]
|
|
5
|
+
assertSelectChoicesMatch<Choice extends import("..").SelectChoice, Values extends Choice["value"] = Choice["value"]>(choices: Choice[], expected: Values[]): void;
|
|
6
6
|
};
|
|
7
7
|
export default selectAssertUtil;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SelectChoice } from '../fields/SelectField.types';
|
|
2
2
|
declare const selectAssert: {
|
|
3
|
-
assertSelectChoicesMatch<Choice extends SelectChoice, Values extends Choice["value"]
|
|
3
|
+
assertSelectChoicesMatch<Choice extends SelectChoice, Values extends Choice["value"] = Choice["value"]>(choices: Choice[], expected: Values[]): void;
|
|
4
4
|
};
|
|
5
5
|
export default selectAssert;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Schema, SchemaPartialValues, SchemaGetValuesOptions, SchemaFieldNames, SchemaPublicFieldNames, IsDynamicSchema, DynamicSchemaAllValues, SchemaValues } from '../schemas.static.types';
|
|
2
2
|
import { ValuesWithPaths } from '../types/utilities.types';
|
|
3
|
-
export default function normalizeSchemaValues<S extends Schema, F extends SchemaFieldNames<S> = SchemaFieldNames<S>, PF extends SchemaPublicFieldNames<S> = SchemaPublicFieldNames<S>, CreateEntityInstances extends boolean = false, IncludePrivateFields extends boolean = true, IsDynamic extends boolean = IsDynamicSchema<S>, ShouldIncludeNullAndUndefinedFields extends boolean = true>(schema: S, values: ValuesWithPaths<SchemaPartialValues<S>> | SchemaValues<S>, options?: SchemaGetValuesOptions<S, F, PF, CreateEntityInstances, IncludePrivateFields, ShouldIncludeNullAndUndefinedFields>): IsDynamic extends true ? DynamicSchemaAllValues<S, CreateEntityInstances> : IncludePrivateFields extends true ? Pick<SchemaValues<S, CreateEntityInstances, true, ShouldIncludeNullAndUndefinedFields>, F> : Pick<SchemaValues<S, CreateEntityInstances, true, ShouldIncludeNullAndUndefinedFields>, PF>;
|
|
3
|
+
export default function normalizeSchemaValues<S extends Schema, F extends SchemaFieldNames<S> = SchemaFieldNames<S>, PF extends SchemaPublicFieldNames<S> = SchemaPublicFieldNames<S>, CreateEntityInstances extends boolean = false, IncludePrivateFields extends boolean = true, IsDynamic extends boolean = IsDynamicSchema<S>, ShouldIncludeNullAndUndefinedFields extends boolean = true, ExcludeFields extends SchemaFieldNames<S> | undefined = undefined, PublicExcludeFields extends SchemaPublicFieldNames<S> | undefined = undefined>(schema: S, values: ValuesWithPaths<SchemaPartialValues<S>> | SchemaValues<S>, options?: SchemaGetValuesOptions<S, F, PF, CreateEntityInstances, IncludePrivateFields, ShouldIncludeNullAndUndefinedFields, ExcludeFields, PublicExcludeFields>): IsDynamic extends true ? DynamicSchemaAllValues<S, CreateEntityInstances> : IncludePrivateFields extends true ? ExcludeFields extends SchemaFieldNames<S> ? Omit<Pick<SchemaValues<S, CreateEntityInstances, true, ShouldIncludeNullAndUndefinedFields>, F>, ExcludeFields> : Pick<SchemaValues<S, CreateEntityInstances, true, ShouldIncludeNullAndUndefinedFields>, F> : PublicExcludeFields extends SchemaFieldNames<S> ? Omit<Pick<SchemaValues<S, CreateEntityInstances, true, ShouldIncludeNullAndUndefinedFields>, PF>, PublicExcludeFields> : Pick<SchemaValues<S, CreateEntityInstances, true, ShouldIncludeNullAndUndefinedFields>, PF>;
|
|
@@ -11,7 +11,7 @@ function normalizeSchemaValues(schema, values, options) {
|
|
|
11
11
|
const instance = SchemaEntityFactory_1.default.Entity(schema, (0, expandValues_1.default)(values));
|
|
12
12
|
const { shouldCreateEntityInstances = false, fields, shouldRetainDotNotationKeys, ...rest } = options || {};
|
|
13
13
|
let areAnyKeysDotted = false;
|
|
14
|
-
|
|
14
|
+
const normalizedFields = fields?.map((f) => {
|
|
15
15
|
const hasDotKey = f.includes('.');
|
|
16
16
|
areAnyKeysDotted = areAnyKeysDotted || hasDotKey;
|
|
17
17
|
return hasDotKey ? f.split('.')[0] : f;
|