@sprucelabs/schema 31.0.93 → 31.1.0

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.
@@ -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
- if (shouldSkipBecauseNotSet || shouldSkipBecauseUndefinedOrNull) {
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
- if (shouldSkipBecauseNotSet || shouldSkipBecauseUndefinedOrNull) {
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 &&
@@ -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<T extends Schema, F extends SchemaFieldNames<T> = SchemaFieldNames<T>, PF extends SchemaPublicFieldNames<T> = SchemaPublicFieldNames<T>, CreateEntityInstances extends boolean = false, IncludePrivateFields extends boolean = true, ShouldIncludeNullAndUndefinedFields extends boolean = true> = SchemaNormalizeOptions<T, CreateEntityInstances, ShouldIncludeNullAndUndefinedFields> & (IncludePrivateFields extends false ? {
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[];
@@ -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
- let normalizedFields = fields === null || fields === void 0 ? void 0 : fields.map((f) => {
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;
@@ -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<T extends Schema, F extends SchemaFieldNames<T> = SchemaFieldNames<T>, PF extends SchemaPublicFieldNames<T> = SchemaPublicFieldNames<T>, CreateEntityInstances extends boolean = false, IncludePrivateFields extends boolean = true, ShouldIncludeNullAndUndefinedFields extends boolean = true> = SchemaNormalizeOptions<T, CreateEntityInstances, ShouldIncludeNullAndUndefinedFields> & (IncludePrivateFields extends false ? {
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[];
@@ -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
- let normalizedFields = fields?.map((f) => {
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;
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "!build/__tests__",
9
9
  "esm"
10
10
  ],
11
- "version": "31.0.93",
11
+ "version": "31.1.0",
12
12
  "main": "./build/index.js",
13
13
  "types": "./build/index.d.ts",
14
14
  "module": "./build/esm/index.js",