justus 0.0.5 → 0.0.6

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/README.md CHANGED
@@ -26,6 +26,7 @@ typing can be inferred.
26
26
  * [Tuples](#tuple-validator)
27
27
  * [Objects](#object-validator) (yes, this is the important one!!!)
28
28
  * [Any of, all of](#union-validators)
29
+ * [Validation Options](#validation-options)
29
30
  * [A (slightly more) complex example](#a-complex-example)
30
31
  * [Generating DTS files](#generating-dts-files)
31
32
  * [Copyright Notice](NOTICE.md)
@@ -621,6 +622,40 @@ result // <-- its type will be "number | string"
621
622
  ```
622
623
 
623
624
 
625
+ Validation Options
626
+ ------------------
627
+
628
+ The `validate(...)` function accepts (as a third parameter) some validation
629
+ options. Those are:
630
+
631
+ * `stripAdditionalProperties`: the `validate(...)` function will ignore any
632
+ object property that was not declared in the schema, and will strip them
633
+ out of the returned object (rather than failing).
634
+ * `stripForbiddenProperties`: the `validate(...)` function will ignore any
635
+ _forbidden_ property that was declared in the schema (for more info see
636
+ [below](#ensure-properties-never-exist)), and will strip them out of the
637
+ returned object (rather than failing).
638
+ * `stripOptionalNulls`: the `validate(...)` function will ignore _optional_
639
+ properties with `null` values and strip them out of the returned object.
640
+ This is convenient when validating/stripping results coming from a database
641
+ table, where columns are declared as _nullable_.
642
+
643
+ The `strip(...)` function is a convenience wrapper around `validate(...)`
644
+ implying `stripAdditionalProperties` and `stripOptionalNulls`. Therefore:
645
+
646
+ ```typescript
647
+ const result1 = strip(schema, object)
648
+
649
+ // is equivalent to
650
+
651
+ const result2 = validate(schema, object, {
652
+ stripAdditionalProperties: true,
653
+ stripForbiddenProperties: false,
654
+ stripOptionalNulls: true,
655
+ })
656
+ ```
657
+
658
+
624
659
  A complex example
625
660
  -----------------
626
661
 
package/dist/index.js CHANGED
@@ -309,6 +309,7 @@ var ObjectValidator = class extends Validator {
309
309
  validate(value, options) {
310
310
  assertValidation(typeof value === "object", 'Value is not an "object"');
311
311
  assertValidation(value !== null, 'Value is "null"');
312
+ const { stripAdditionalProperties, stripForbiddenProperties, stripOptionalNulls } = options;
312
313
  const record = value;
313
314
  const builder = new ValidationErrorBuilder();
314
315
  const clone = {};
@@ -317,7 +318,7 @@ var ObjectValidator = class extends Validator {
317
318
  if (!validator) {
318
319
  if (record[key] === void 0)
319
320
  continue;
320
- if (options.stripForbiddenProperties)
321
+ if (stripForbiddenProperties)
321
322
  continue;
322
323
  builder.record("Forbidden property", key);
323
324
  continue;
@@ -327,6 +328,9 @@ var ObjectValidator = class extends Validator {
327
328
  builder.record("Required property missing", key);
328
329
  continue;
329
330
  }
331
+ if (stripOptionalNulls && optional2 && record[key] === null) {
332
+ continue;
333
+ }
330
334
  try {
331
335
  clone[key] = validator.validate(record[key], options);
332
336
  } catch (error) {
@@ -345,7 +349,7 @@ var ObjectValidator = class extends Validator {
345
349
  builder.record(error, key);
346
350
  }
347
351
  });
348
- } else if (!options.stripAdditionalProperties) {
352
+ } else if (!stripAdditionalProperties) {
349
353
  additionalKeys.forEach((key) => {
350
354
  if (record[key] !== void 0)
351
355
  builder.record("Unknown property", key);
@@ -728,7 +732,8 @@ var KEYS = [
728
732
  ];
729
733
  var OPTIONS = {
730
734
  stripAdditionalProperties: false,
731
- stripForbiddenProperties: false
735
+ stripForbiddenProperties: false,
736
+ stripOptionalNulls: false
732
737
  };
733
738
  var URLValidator = class extends Validator {
734
739
  href;
@@ -799,14 +804,16 @@ var url = makeTupleRestIterable(_url);
799
804
  function validate(validation, value, options = {}) {
800
805
  const opts = __spreadValues({
801
806
  stripAdditionalProperties: false,
802
- stripForbiddenProperties: false
807
+ stripForbiddenProperties: false,
808
+ stripOptionalNulls: false
803
809
  }, options);
804
810
  return getValidator(validation).validate(value, opts);
805
811
  }
806
812
  function strip(validation, value, options = {}) {
807
813
  const opts = __spreadValues({
808
814
  stripAdditionalProperties: true,
809
- stripForbiddenProperties: false
815
+ stripForbiddenProperties: false,
816
+ stripOptionalNulls: true
810
817
  }, options);
811
818
  return getValidator(validation).validate(value, opts);
812
819
  }
package/dist/index.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts", "../src/errors.ts", "../src/types.ts", "../src/validators/any.ts", "../src/validators/constant.ts", "../src/validators/tuple.ts", "../src/validators/object.ts", "../src/utilities.ts", "../src/schema.ts", "../src/validators/union.ts", "../src/validators/array.ts", "../src/validators/boolean.ts", "../src/validators/date.ts", "../src/validators/number.ts", "../src/validators/string.ts", "../src/validators/url.ts"],
4
- "mappings": "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",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACGA,sBAAsB,MAAmC;AACvD,SAAO,KAAK,OAAO,CAAC,SAAgB,KAAK,UAAkB;AACzD,QAAI,OAAO,QAAQ;AAAU,aAAO,GAAG,WAAU;AACjD,WAAO,UAAU,IAAI,MAAM,GAAG,WAAU;AAAA,EAC1C,GAAG,EAAE;AACP;AAKO,oCAA8B,MAAM;AAAA,EAEhC;AAAA,EAEA;AAAA,EAaT,YACI,gBACA,mBACA,kBACF;AACA,QAAI;AACJ,QAAI;AAEJ,QAAI,0BAA0B,wBAAwB;AACpD,eAAS,eAAe;AACxB,oBAAc,eAAe;AAAA,IAC/B,OAAO;AACL,YAAM,OAAO,MAAM,QAAQ,iBAAiB,IAAI,oBAAoB,CAAC;AAErE,UAAI,0BAA0B,iBAAiB;AAC7C,iBAAS,eAAe,OAAO,IAAI,CAAC,EAAE,MAAM,SAAS,wBAClD,GAAE,MAAM,CAAE,GAAG,MAAM,GAAG,OAAQ,GAAG,kBAAQ,EAAE;AAAA,MAChD,OAAO;AACL,iBAAS,CAAE,EAAE,MAAM,SAAS,GAAG,iBAAiB,CAAE;AAAA,MACpD;AAEA,oBACE,OAAO,qBAAqB,aAAa,mBACzC,OAAO,sBAAsB,aAAa,oBAC1C;AAAA,IACJ;AAEA,UAAM,UAAU,OACX,IAAI,CAAC,EAAE,MAAM,wBAAe,GAAE,KAAK,aAAa,IAAI,GAAG,kBAAQ,EAAE,EACjE,IAAI,CAAC,EAAE,KAAK,wBAAc,MAAM,GAAG,QAAQ,aAAY,QAAO,EAC9D,KAAK,MAAM;AAEhB,UAAM,UAAU,OAAO,WAAW,IAChC,SAAS,OAAO,6BAChB;AAEF,UAAM,GAAG;AAAA,IAAc,SAAS;AAEhC,UAAM,kBAAkB,MAAM,WAAW;AACzC,WAAO,eAAe,MAAM,UAAU,EAAE,OAAO,OAAO,CAAC;AAAA,EACzD;AACF;AAKO,mCAA6B;AAAA,EAEzB,SAA2B,CAAC;AAAA,EAUrC,OAAO,UAAe,KAAgC;AACpD,UAAM,OAAO,CAAE,GAAG,GAAI;AACtB,QAAI,iBAAiB,iBAAiB;AACpC,YAAM,OAAO,QAAQ,CAAC,EAAE,MAAM,SAAS,cAAc;AACnD,aAAK,OAAO,KAAK,EAAE,MAAM,CAAE,GAAG,MAAM,GAAG,OAAQ,GAAG,QAAQ,CAAC;AAAA,MAC7D,CAAC;AAAA,IACH,OAAO;AACL,WAAK,OAAO,KAAK,EAAE,MAAM,SAAS,GAAG,QAAQ,CAAC;AAAA,IAChD;AACA,WAAO;AAAA,EACT;AAAA,EAQA,OAAU,OAAa;AACrB,QAAI,KAAK,OAAO,SAAS;AAAG,YAAM,IAAI,gBAAgB,IAAI;AAC1D,WAAO;AAAA,EACT;AACF;AAKO,0BAA0B,MAA2B,SAA+B;AACzF,MAAI,CAAE;AAAM,UAAM,IAAI,gBAAgB,SAAS,gBAAgB;AACjE;AAMO,sBAAsB,MAA2B,SAA+B;AACrF,MAAI,CAAE;AAAM,UAAM,IAAI,UAAU,OAAO;AACzC;;;ACxHO,IAAM,gBAAgB,OAAO,IAAI,sBAAsB;AAGvD,IAAM,kBAAkB,OAAO,IAAI,wBAAwB;AAG3D,IAAM,oBAAoB,OAAO,IAAI,0BAA0B;AAG/D,IAAM,sBAAsB,OAAO,IAAI,4BAA4B;AAGnE,IAAM,QAAQ,OAAO,IAAI,cAAc;AAsBvC,sBAA6E;AAAA,IAK/E,OAAO,YAA8C;AACtD,UAAM,GAAG,gBAAgB,KAAK;AAAA,EAChC;AACF;;;AC5CO,iCAA2B,UAAe;AAAA,EAC/C,SAAS,OAAqB;AAC5B,WAAO;AAAA,EACT;AACF;AAGO,IAAM,MAAM,IAAI,aAAa;;;ACN7B,sCAA4E,UAAa;AAAA,EACrF;AAAA,EAET,YAAY,WAAa;AACvB,UAAM;AACN,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,SAAS,OAAmB;AAC1B,qBAAiB,UAAU,KAAK,UAAU,kCAAkC,KAAK,WAAW;AAC5F,WAAO;AAAA,EACT;AACF;AAGO,kBAA8D,WAA2B;AAC9F,SAAO,IAAI,kBAAkB,SAAQ;AACvC;AAGO,IAAM,gBAAgB,IAAI,kBAAkB,IAAI;;;ACfhD,mCAA8C,UAAyB;AAAA,EACnE;AAAA,EACA;AAAA,EAET,YAAY,QAAU;AACpB,UAAM;AAEN,UAAM,UAAyB,CAAC;AAChC,eAAW,QAAQ,QAAO;AACxB,UAAI,SAAS,MAAM;AACjB,gBAAQ,KAAK,EAAE,QAAQ,MAAM,WAAW,cAAc,CAAC;AAAA,MACzD,WAAY,OAAO,SAAS,YAAc,iBAAiB,MAAO;AAChE,gBAAQ,KAAK,EAAE,QAAQ,OAAO,WAAiB,KAAM,eAAe,CAAC;AAAA,MACvE,OAAO;AACL,gBAAQ,KAAK,EAAE,QAAQ,MAAM,WAAW,aAAa,IAAI,EAAE,CAAC;AAAA,MAC9D;AAAA,IACF;AAEA,SAAK,UAAU;AACf,SAAK,QAAQ;AAAA,EACf;AAAA,EAEA,SAAS,OAAgB,SAA2C;AAClE,qBAAiB,MAAM,QAAQ,KAAK,GAAG,yBAAyB;AAGhE,QAAI,KAAK,QAAQ,WAAW,GAAG;AAC7B,YAAM,OAAO,MAAM;AACnB,uBAAiB,SAAS,GAAG,SAAS,eAAe,SAAS,IAAI,KAAK,4BAA4B;AACnG,aAAO;AAAA,IACT;AAGA,UAAM,QAAQ,IAAI,MAAM,MAAM,MAAM;AACpC,QAAI,SAAS;AACb,QAAI,WAAW;AACf,QAAI,EAAE,QAAQ,cAAc,KAAK,QAAQ;AAEzC,WAAQ,SAAS,KAAK,QAAQ,UAAY,WAAW,MAAM,QAAS;AAClE,UAAI;AACF,cAAM,YAAY,UAAU,SAAS,MAAM,WAAW,OAAO;AAC7D,YAAI;AAAQ,UAAC,GAAE,QAAQ,UAAU,IAAI,KAAK,QAAQ,EAAG,WAAW,CAAC;AACjE;AAAA,MACF,SAAS,OAAP;AACA,YAAI;AAAQ,gBAAM,IAAI,gBAAgB,OAAO,CAAE,QAAS,CAAC;AAAA;AACpD,UAAC,GAAE,QAAQ,UAAU,IAAI,KAAK,QAAQ,EAAG,WAAW,CAAC;AAAA,MAC5D;AAAA,IACF;AAEA,WAAQ,SAAS,KAAK,QAAQ,UAAY,KAAK,QAAQ,QAAQ,WAAW,OAAQ;AAChF;AAAA,IACF;AAEA,UAAM,UAAU,KAAK,QAAQ,SAAS;AACtC,QAAK,YAAY,KAAM,QAAQ;AAC7B,YAAM,IAAI,gBAAgB,oCAAoC;AAAA,IAChE,WAAW,UAAU,GAAG;AACtB,YAAM,IAAI,gBAAgB,iBAAiB,6BAA6B;AAAA,IAC1E;AAEA,UAAM,QAAQ,MAAM,SAAS;AAC7B,qBAAiB,UAAU,GAAG,SAAS,sBAAsB,UAAU,IAAI,KAAK,cAAc;AAE9F,WAAO;AAAA,EACT;AACF;AAGO,eAAgC,QAAoC;AACzE,SAAO,IAAI,eAAe,MAAK;AACjC;AAEO,+BAEL,QAAiE;AACjE,QAAM,YAAY,OAAO;AACxB,EAAM,OAAQ,OAAO,YAAY,aAAgE;AAChG,UAAM,GAAG,gBAAgB,UAAU;AAAA,EACrC;AACA,SAAO;AACT;;;AC7DO,uCAAiC,UAA+B;AAAA,EACrE,SAAS,OAAqC;AAC5C,qBAAiB,OAAO,SAAS,UAAU,0BAA0B;AACrE,qBAAiB,UAAU,MAAM,iBAAiB;AAClD,WAAO;AAAA,EACT;AACF;AAGO,oCAAgD,UAA0B;AAAA,EACtE;AAAA,EAET,aAAa,oBAAI,IAAwC;AAAA,EACzD;AAAA,EAEA,YAAY,QAAW;AACrB,UAAM;AA5CV;AA6CI,UAA6D,aAApD,8BAAsB,eAA8B,IAAf,uBAAe,IAAf,CAArC;AAET,QAAI;AAAY,WAAK,uBAAuB,aAAa,UAAU;AAEnE,eAAW,OAAO,OAAO,KAAK,UAAU,GAAG;AACzC,YAAM,aAAa,WAAW;AAE9B,UAAI,eAAe,OAAO;AACxB,aAAK,WAAW,IAAI,KAAK,MAAS;AAAA,MACpC,WAAW,WAAW,UAAU,GAAG;AACjC,aAAK,WAAW,IAAI,KAAK;AAAA,UACvB,WAAW,WAAW;AAAA,UACtB,UAAU,WAAW;AAAA,UACrB,UAAU,WAAW;AAAA,QACvB,CAAC;AAAA,MACH,OAAO;AACL,aAAK,WAAW,IAAI,KAAK,EAAE,WAAW,aAAa,UAAU,EAAE,CAAC;AAAA,MAClE;AAAA,IACF;AAEA,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,SAAS,OAAgB,SAA4C;AACnE,qBAAiB,OAAO,UAAU,UAAU,0BAA0B;AACtE,qBAAiB,UAAU,MAAM,iBAAiB;AAElD,UAAM,EAAE,2BAA2B,0BAA0B,uBAAuB;AAEpF,UAAM,SAA0D;AAChE,UAAM,UAAU,IAAI,uBAAuB;AAC3C,UAAM,QAA6B,CAAC;AAEpC,eAAW,CAAE,KAAK,aAAc,KAAK,WAAW,QAAQ,GAAG;AACzD,YAAM,EAAE,WAAW,wBAAa,YAAY,CAAC;AAG7C,UAAI,CAAE,WAAW;AACf,YAAI,OAAO,SAAS;AAAW;AAC/B,YAAI;AAA0B;AAC9B,gBAAQ,OAAO,sBAAsB,GAAG;AACxC;AAAA,MACF;AAGA,UAAI,OAAO,SAAS,QAAW;AAC7B,YAAI,CAAE;AAAU,kBAAQ,OAAO,6BAA6B,GAAG;AAC/D;AAAA,MACF;AAGA,UAAI,sBAAsB,aAAa,OAAO,SAAS,MAAO;AAC5D;AAAA,MACF;AAGA,UAAI;AACF,cAAM,OAAO,UAAU,SAAS,OAAO,MAAM,OAAO;AAAA,MACtD,SAAS,OAAP;AACA,gBAAQ,OAAO,OAAO,GAAG;AAAA,MAC3B;AAAA,IACF;AAEA,UAAM,iBAAiB,OAAO,KAAK,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,WAAW,IAAI,CAAC,CAAC;AAChF,UAAM,aAAa,KAAK;AAExB,QAAI,YAAY;AACd,qBAAe,QAAQ,CAAC,QAAQ;AAC9B,YAAI,OAAO,SAAS;AAAW;AAC/B,YAAI;AACF,gBAAM,OAAO,WAAW,SAAS,OAAO,MAAM,OAAO;AAAA,QACvD,SAAS,OAAP;AACA,kBAAQ,OAAO,OAAO,GAAG;AAAA,QAC3B;AAAA,MACF,CAAC;AAAA,IACH,WAAW,CAAE,2BAA2B;AACtC,qBAAe,QAAQ,CAAC,QAAQ;AAC9B,YAAI,OAAO,SAAS;AAAW,kBAAQ,OAAO,oBAAoB,GAAG;AAAA,MACvE,CAAC;AAAA,IACH;AAEA,WAAO,QAAQ,OAAO,KAAuB;AAAA,EAC/C;AACF;AAEA,IAAM,qBAAqB,IAAI,mBAAmB;AAM3C,iBAAiB,QAA0D;AAChF,MAAI,CAAE;AAAQ,WAAO;AAErB,QAAM,YAAY,IAAI,gBAAgB,MAAM;AAC5C,uBAAoD;AAClD,UAAM,GAAG,gBAAgB,UAAU;AAAA,EACrC;AAEA,SAAO,OAAO,iBAAiB,QAAQ;AAAA,KACpC,kBAAkB,EAAE,OAAO,WAAW,YAAY,MAAM;AAAA,KACxD,OAAO,WAAW,EAAE,OAAO,UAAU,YAAY,MAAM;AAAA,EAC1D,CAAC;AACH;AAGO,IAAM,SAAS,sBAAsB,OAAO;;;ACxI5C,sBAAsB,YAAoC;AAE/D,MAAI,eAAe;AAAW,WAAO;AACrC,MAAI,eAAe;AAAM,WAAO;AAGhC,MAAI,sBAAsB;AAAW,WAAO;AAG5C,UAAQ,OAAO;AAAA,SAER;AAAA,SACA;AAAA,SACA;AACH,aAAO,IAAI,kBAAkB,UAAU;AAAA,SAGpC;AACH,aAAO,WAAW;AAAA,SAGf;AAEH,UAAI,mBAAmB;AAAY,eAAc,WAAY;AAE7D,UAAI,MAAM,QAAQ,UAAU;AAAG,eAAO,IAAI,eAAe,UAAU;AAEnE,aAAO,IAAI,gBAAgB,UAAoB;AAAA;AAI/C,YAAM,IAAI,UAAU,4BAA4B,OAAO,aAAa;AAAA;AAE1E;;;ACtBO,oCAAoC,SAAyE;AAClH,MAAI,YAAY;AAAO,WAAO,GAAG,sBAAsB,MAAM;AAC7D,MAAI,YAAY;AAAM,WAAO,GAAG,sBAAsB,IAAI;AAE1D,SAAO,GAAG,sBAAsB,aAAa,OAAO,EAAE;AACxD;AAWO,IAAM,4BAA4B;AAGzC,0BAA0B,uBAAuB;AAoB1C,oBAAoB,MAAkC;AAC3D,SAAQ,QAAS,OAAO,SAAS,YAAc,qBAAqB;AACtE;AAaO,kBAAkB,SAA2C;AAClE,QAAM,GAAG,oBAAoB,aAAa,KAAK,sBAAW,UACxD,WAAW,OAAO,IAAI,UAAU,GAAG,oBAAoB,QAAQ;AAEjE,QAAM,YAAY,aAAa,UAAU;AAEzC,SAAO,YACL,GAAG,oBAAoB,WAAW,qBAAU,UAAU,KAAK,IAC3D,GAAG,oBAAoB,WAAW,UAAU,KAAK;AACrD;AAaO,kBAAkB,SAAqD;AAC5E,QAAM,GAAG,oBAAoB,aAAa,KAAK,sBAAW,UACxD,WAAW,OAAO,IAAI,UAAU,GAAG,oBAAoB,QAAQ;AAEjE,QAAM,YAAY,aAAa,UAAU;AAEzC,SAAO,YACL,GAAG,oBAAoB,WAAW,qBAAU,UAAU,KAAK,IAC3D,GAAG,oBAAoB,WAAW,UAAU,KAAK;AACrD;;;ACxFO,mCAAuD,UAAuC;AAAA,EAC1F;AAAA,EAET,YAAY,MAAS;AACnB,UAAM;AACN,SAAK,aAAa,KAAK,IAAI,CAAC,eAAe,aAAa,UAAU,CAAC;AAAA,EACrE;AAAA,EAEA,SAAS,OAAgB,SAAyD;AAChF,UAAM,UAAU,IAAI,uBAAuB;AAC3C,eAAW,aAAa,KAAK,YAAY;AACvC,UAAI;AACF,eAAO,UAAU,SAAS,OAAO,OAAO;AAAA,MAC1C,SAAS,OAAP;AACA,gBAAQ,OAAO,KAAK;AAAA,MACtB;AAAA,IACF;AACA,WAAO,QAAQ,OAAO,KAAoC;AAAA,EAC5D;AACF;AAGO,kBAA4C,MAA4B;AAC7E,SAAO,IAAI,eAAe,IAAI;AAChC;AAcO,mCAAuD,UAAuC;AAAA,EAC1F;AAAA,EAET,YAAY,MAAS;AACnB,UAAM;AACN,SAAK,aAAa,KAAK,IAAI,CAAC,eAAe,aAAa,UAAU,CAAC;AAAA,EACrE;AAAA,EAEA,SAAS,OAAgB,SAAyD;AAChF,eAAW,aAAa,KAAK,YAAY;AACvC,cAAQ,UAAU,SAAS,OAAO,OAAO;AAAA,IAC3C;AACA,WAAO;AAAA,EACT;AACF;AAGO,kBAA4C,MAA4B;AAC7E,SAAO,IAAI,eAAe,IAAI;AAChC;;;ACzDO,sCAAyC,UAAe;AAAA,EAC7D,SAAS,OAAgB,SAAiC;AAExD,qBAAiB,MAAM,QAAQ,KAAK,GAAG,yBAAyB;AAChE,WAAO,CAAE,GAAG,KAAM;AAAA,EACpB;AACF;AAGO,mCAAgC,UAAe;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,UAA0C,CAAC,GAAG;AACxD,UAAM;AAEN,UAAM;AAAA,MACJ,QAAQ;AAAA,MACR,WAAW,OAAO;AAAA,MAClB,WAAW;AAAA,MACX,cAAc;AAAA,QACZ;AAEJ,iBAAa,YAAY,GAAG,0BAA0B,gCAAgC;AACtF,iBAAa,YAAY,GAAG,0BAA0B,gCAAgC;AACtF,iBAAa,YAAY,UAAU,0BAA0B,yCAAyC,WAAW;AAEjH,SAAK,QAAQ;AACb,SAAK,WAAW;AAChB,SAAK,WAAW;AAChB,SAAK,cAAc;AAAA,EACrB;AAAA,EAEA,SAAS,OAAgB,SAAiC;AACxD,qBAAiB,MAAM,QAAQ,KAAK,GAAG,yBAAyB;AAEhE,qBAAiB,MAAM,UAAU,KAAK,UAClC,uCAAuC,KAAK,UAAU;AAE1D,qBAAiB,MAAM,UAAU,KAAK,UAClC,uCAAuC,KAAK,UAAU;AAE1D,UAAM,UAAU,IAAI,uBAAuB;AAC3C,UAAM,QAAe,IAAI,MAAM,MAAM,MAAM;AAE3C,UAAM,QAAQ,CAAC,MAAM,MAAM;AACzB,UAAI;AACF,cAAM,WAAW,MAAM,QAAQ,MAAM,EAAE;AACvC,YAAI,aAAa,GAAG;AAClB,gBAAM,KAAK,KAAK,MAAM,SAAS,MAAM,OAAO;AAAA,QAC9C,WAAW,KAAK,aAAa;AAC3B,kBAAQ,OAAO,8BAA8B,YAAY,CAAC;AAAA,QAC5D,OAAO;AACL,gBAAM,KAAK,MAAM;AAAA,QACnB;AAAA,MACF,SAAS,OAAP;AACA,gBAAQ,OAAO,OAAO,CAAC;AAAA,MACzB;AAAA,IACF,CAAC;AAED,WAAO,QAAQ,OAAO,KAAK;AAAA,EAC7B;AACF;AAEA,IAAM,oBAAoB,IAAI,kBAAkB;AAOzC,gBAAgB,SAA0D;AAC/E,MAAI,CAAE;AAAS,WAAO;AAEtB,QAAM,QAAQ,aAAa,QAAQ,KAAK;AACxC,SAAO,IAAI,eAAe,iCAAK,UAAL,EAAc,MAAM,EAAC;AACjD;AAGO,IAAM,QAAQ,sBAAsB,MAAM;AAG1C,iBAAuC,YAAmD;AAC/F,SAAO,IAAI,eAAe,EAAE,OAAO,aAAa,UAAU,EAAE,CAAC;AAC/D;;;ACzGO,qCAA+B,UAAmB;AAAA,EACvD,SAAS,OAAyB;AAChC,qBAAiB,OAAO,UAAU,WAAW,0BAA0B;AACvE,WAAO;AAAA,EACT;AACF;AAGO,IAAM,UAAU,IAAI,iBAAiB;;;ACP5C,IAAM,iBAAiB;AAahB,kCAA4B,UAAgB;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,cAA+B,CAAC,GAAG;AAC7C,UAAM;AAEN,UAAM,EAAE,QAAQ,MAAM,UAAU;AAEhC,QAAK,QAAQ,UAAe,UAAU,QAAY;AAChD,mBAAa,MAAM,QAAQ,KAAK,KAAK,QAAQ,GACzC,uBAAuB,MAAM,YAAY,iCAAiC,KAAK,YAAY,IAAI;AAAA,IACrG;AAEA,SAAK,SAAS;AACd,SAAK,OAAO;AACZ,SAAK,QAAQ;AAAA,EACf;AAAA,EAEA,SAAS,OAAsB;AAC7B,QAAI;AACJ,QAAI;AACF,cAAO,IAAI,KAAK,KAAY;AAAA,IAC9B,SAAS,OAAP;AACA,YAAM,IAAI,gBAAgB,0CAA0C;AAAA,IACtE;AAEA,QAAI,MAAM,MAAK,QAAQ,CAAC;AAAG,YAAM,IAAI,gBAAgB,cAAc;AAEnE,QAAI,KAAK,WAAW,OAAO;AACzB,uBAAiB,OAAO,UAAU,UAAU,4BAA4B;AACxE,uBAAiB,eAAe,KAAK,KAAK,GAAG,6BAA6B;AAAA,IAC5E,WAAW,KAAK,WAAW,aAAa;AACtC,uBAAiB,OAAO,UAAU,UAAU,6BAA6B;AAAA,IAC3E;AAEA,QAAI,KAAK,MAAM;AACb,uBAAiB,KAAK,KAAK,QAAQ,KAAK,MAAK,QAAQ,GAAG,kBAAkB,KAAK,KAAK,YAAY,GAAG;AAAA,IACrG;AAEA,QAAI,KAAK,OAAO;AACd,uBAAiB,KAAK,MAAM,QAAQ,KAAK,MAAK,QAAQ,GAAG,iBAAiB,KAAK,MAAM,YAAY,GAAG;AAAA,IACtG;AAEA,WAAO;AAAA,EACT;AACF;AAEA,IAAM,mBAAmB,IAAI,cAAc;AAKpC,eAAe,aAA8C;AAClE,SAAO,cAAc,IAAI,cAAc,WAAW,IAAI;AACxD;AAGO,IAAM,OAAO,sBAAsB,KAAK;;;ACtE/C,IAAM,YAAY;AAClB,IAAM,aAAa,KAAK,IAAI,IAAI,SAAS;AAEzC,uBAAuB,GAAmB;AAExC,QAAM,QAAQ,EAAE,cAAc,EAAE,MAAM,yBAAyB;AAC/D,MAAI,CAAE;AAAO,UAAM,IAAI,WAAW,sCAAsC,IAAI;AAE5E,QAAM,SAAW,OAAM,MAAM,KAAK,SAAS,IAAM,SAAS,MAAM,EAAE;AAClE,SAAO,SAAS,IAAI,IAAI;AAC1B;AA2BO,uCAAiC,UAAkB;AAAA,EACxD,SAAS,OAAwB;AAC/B,qBAAiB,OAAO,SAAS,UAAU,yBAAyB;AACpE,qBAAiB,CAAE,MAAM,KAAK,GAAG,iBAAiB;AAClD,WAAO;AAAA,EACT;AACF;AAGO,oCAAyD,UAAa;AAAA,EAC3E;AAAA,EAES;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,cAAiC,CAAC,GAAG;AAC/C,UAAM;AAEN,UAAM;AAAA,MACJ,WAAW;AAAA,MACX;AAAA,MACA;AAAA,MACA,UAAU,OAAO;AAAA,MACjB,UAAU,OAAO;AAAA,MACjB;AAAA,QACE;AAEJ,QAAI,WAAW;AAAa,WAAK,QAAe,YAAa;AAE7D,iBAAa,WAAW,SAAS,yBAAyB,uCAAuC,UAAU;AAE3G,QAAI,qBAAqB,QAAW;AAClC,mBAAa,mBAAmB,SAC5B,kCAAkC,qDAAqD,UAAU;AAAA,IACvG;AAEA,QAAI,qBAAqB,QAAW;AAClC,mBAAa,UAAU,kBACnB,yBAAyB,qDAAqD,mBAAmB;AAAA,IACvG;AAEA,QAAK,oBAAoB,UAAe,qBAAqB,QAAY;AACvE,mBAAa,mBAAmB,kBAC5B,kCAAkC,8DAA8D,mBAAmB;AAAA,IACzH;AAEA,QAAI,eAAe,QAAW;AAC5B,mBAAa,aAAa,GAAG,4BAA4B,uCAAuC;AAChG,YAAM,WAAW,cAAc,UAAU;AAEzC,UAAI,aAAa,GAAG;AAElB,6BAAqB,CAAC,UAAmB,CAAG,SAAQ;AAAA,MACtD,WAAW,YAAY,WAAW;AAEhC,6BAAqB,CAAC,UAAmB;AACvC,cAAI;AACF,gBAAI,cAAc,KAAK,IAAI;AAAW,qBAAO;AAC7C,mBAAO,CAAI,SAAQ,aAAe,cAAa;AAAA,UACjD,SAAS,OAAP;AACA,kBAAM,IAAI,gBAAgB,MAAM,OAAO;AAAA,UACzC;AAAA,QACF;AAAA,MACF,OAAO;AAEL,qBAAa,OAAO,4BAA4B,yCAAyC;AAAA,MAC3F;AAAA,IACF;AAEA,SAAK,WAAW;AAChB,SAAK,mBAAmB;AACxB,SAAK,mBAAmB;AACxB,SAAK,UAAU;AACf,SAAK,UAAU;AACf,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,SAAS,OAAmB;AAC1B,qBAAiB,OAAO,SAAS,UAAU,yBAAyB;AAEpE,QAAI,MAAM,KAAK,GAAG;AAChB,uBAAiB,KAAK,UAAU,iBAAiB;AACjD,aAAO;AAAA,IACT;AAEA,qBAAiB,SAAS,KAAK,SAAS,uBAAuB,KAAK,SAAS;AAC7E,qBAAiB,SAAS,KAAK,SAAS,0BAA0B,KAAK,SAAS;AAEhF,qBAAkB,KAAK,oBAAoB,UAAe,QAAQ,KAAK,kBACnE,mCAAmC,KAAK,kBAAkB;AAE9D,qBAAkB,KAAK,oBAAoB,UAAe,QAAQ,KAAK,kBACnE,sCAAsC,KAAK,kBAAkB;AAEjE,qBAAiB,qBAAqB,mBAAmB,KAAK,IAAI,MAC9D,+BAA+B,KAAK,YAAY;AAEpD,WAAO;AAAA,EACT;AACF;AAEA,IAAM,qBAAqB,IAAI,mBAAmB;AAO3C,iBAAiB,aAAoD;AAC1E,SAAO,cAAc,IAAI,gBAAgB,WAAW,IAAI;AAC1D;AAGO,IAAM,SAAS,sBAAsB,OAAO;;;AC7I5C,uCAAiC,UAAkB;AAAA,EACxD,SAAS,OAAwB;AAC/B,qBAAiB,OAAO,SAAS,UAAU,yBAAyB;AACpE,WAAO;AAAA,EACT;AACF;AAGO,oCAAyD,UAAa;AAAA,EAClE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,cAAiC,CAAC,GAAG;AAC/C,UAAM;AAEN,UAAM;AAAA,MACJ,YAAY;AAAA,MACZ,YAAY,OAAO;AAAA,MACnB;AAAA,QACE;AAEJ,QAAI,WAAW;AAAa,WAAK,QAAe,YAAa;AAE7D,iBAAa,aAAa,GAAG,2BAA2B,iCAAiC;AACzF,iBAAa,aAAa,GAAG,2BAA2B,iCAAiC;AACzF,iBAAa,aAAa,WAAW,2BAA2B,2CAA2C,YAAY;AAEvH,SAAK,YAAY;AACjB,SAAK,YAAY;AACjB,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,SAAS,OAAmB;AAC1B,qBAAiB,OAAO,SAAS,UAAU,yBAAyB;AAEpE,qBAAiB,MAAM,UAAU,KAAK,WAClC,wCAAwC,KAAK,WAAW;AAE5D,qBAAiB,MAAM,UAAU,KAAK,WAClC,wCAAwC,KAAK,WAAW;AAE5D,qBAAiB,KAAK,UAAU,KAAK,QAAQ,KAAK,KAAK,IAAI,MACvD,0CAA0C,KAAK,SAAS;AAE5D,WAAO;AAAA,EACT;AACF;AAEA,IAAM,qBAAqB,IAAI,mBAAmB;AAO3C,iBAAiB,aAAoD;AAC1E,SAAO,cAAc,IAAI,gBAAgB,WAAW,IAAI;AAC1D;AAGO,IAAM,SAAS,sBAAsB,OAAO;;;AC7EnD,IAAM,OAAwD;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,UAA6B;AAAA,EACjC,2BAA2B;AAAA,EAC3B,0BAA0B;AAAA,EAC1B,oBAAoB;AACtB;AAoCO,iCAA2B,UAAe;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EAET,YAAY,cAA8B,CAAC,GAAG;AAC5C,UAAM;AAEN,eAAW,OAAO,MAAM;AACtB,YAAM,aAAa,YAAY;AAC/B,UAAI,OAAO,eAAe,UAAU;AAClC,aAAK,OAAO,IAAI,kBAAkB,UAAU;AAAA,MAC9C,WAAW,YAAY;AACrB,aAAK,OAAO;AAAA,MACd;AAAA,IACF;AAEA,QAAI,YAAY,cAAc;AAC5B,WAAK,eAAe,IAAI,gBAAgB,YAAY,YAAY;AAAA,IAClE;AAAA,EACF;AAAA,EAEA,SAAS,OAAqB;AAC5B,QAAI;AACJ,QAAI;AACF,aAAM,iBAAiB,MAAM,QAAQ,IAAI,IAAI,KAAY;AAAA,IAC3D,SAAS,OAAP;AACA,YAAM,IAAI,gBAAgB,yCAAyC;AAAA,IACrE;AAEA,UAAM,UAAU,IAAI,uBAAuB;AAE3C,eAAW,OAAO,MAAM;AACtB,YAAM,YAAY,KAAK;AACvB,UAAI,WAAW;AACb,YAAI;AACF,oBAAU,SAAS,KAAI,MAAM,OAAO;AAAA,QACtC,SAAS,OAAP;AACA,kBAAQ,OAAO,OAAO,GAAG;AAAA,QAC3B;AAAA,MACF;AAAA,IACF;AAEA,QAAI,KAAK,cAAc;AACrB,YAAM,aAAqC,CAAC;AAC5C,iBAAW,SAAS,KAAI,aAAa,KAAK,GAAG;AAC3C,mBAAW,SAAS,KAAI,aAAa,IAAI,KAAK;AAAA,MAChD;AAEA,UAAI;AACF,aAAK,aAAa,SAAS,YAAY,OAAO;AAAA,MAChD,SAAS,OAAP;AACA,gBAAQ,OAAO,OAAO,cAAc;AAAA,MACtC;AAAA,IACF;AAEA,WAAO,QAAQ,OAAO,IAAG;AAAA,EAC3B;AACF;AAEA,IAAM,kBAAkB,IAAI,aAAa;AAKlC,cAAc,aAA4C;AAC/D,SAAO,cAAc,IAAI,aAAa,WAAW,IAAI;AACvD;AAGO,IAAM,MAAM,sBAAsB,IAAI;;;AfnGtC,kBACH,YACA,OACA,UAA2B,CAAC,GACV;AACpB,QAAM,OAA0B;AAAA,IAC9B,2BAA2B;AAAA,IAC3B,0BAA0B;AAAA,IAC1B,oBAAoB;AAAA,KACjB;AAGL,SAAO,aAAa,UAAU,EAAE,SAAS,OAAO,IAAI;AACtD;AAgBO,eACH,YACA,OACA,UAA2B,CAAC,GACV;AACpB,QAAM,OAA0B;AAAA,IAC9B,2BAA2B;AAAA,IAC3B,0BAA0B;AAAA,IAC1B,oBAAoB;AAAA,KACjB;AAGL,SAAO,aAAa,UAAU,EAAE,SAAS,OAAO,IAAI;AACtD;",
5
5
  "names": []
6
6
  }
package/dist/index.mjs CHANGED
@@ -235,6 +235,7 @@ var ObjectValidator = class extends Validator {
235
235
  validate(value, options) {
236
236
  assertValidation(typeof value === "object", 'Value is not an "object"');
237
237
  assertValidation(value !== null, 'Value is "null"');
238
+ const { stripAdditionalProperties, stripForbiddenProperties, stripOptionalNulls } = options;
238
239
  const record = value;
239
240
  const builder = new ValidationErrorBuilder();
240
241
  const clone = {};
@@ -243,7 +244,7 @@ var ObjectValidator = class extends Validator {
243
244
  if (!validator) {
244
245
  if (record[key] === void 0)
245
246
  continue;
246
- if (options.stripForbiddenProperties)
247
+ if (stripForbiddenProperties)
247
248
  continue;
248
249
  builder.record("Forbidden property", key);
249
250
  continue;
@@ -253,6 +254,9 @@ var ObjectValidator = class extends Validator {
253
254
  builder.record("Required property missing", key);
254
255
  continue;
255
256
  }
257
+ if (stripOptionalNulls && optional2 && record[key] === null) {
258
+ continue;
259
+ }
256
260
  try {
257
261
  clone[key] = validator.validate(record[key], options);
258
262
  } catch (error) {
@@ -271,7 +275,7 @@ var ObjectValidator = class extends Validator {
271
275
  builder.record(error, key);
272
276
  }
273
277
  });
274
- } else if (!options.stripAdditionalProperties) {
278
+ } else if (!stripAdditionalProperties) {
275
279
  additionalKeys.forEach((key) => {
276
280
  if (record[key] !== void 0)
277
281
  builder.record("Unknown property", key);
@@ -654,7 +658,8 @@ var KEYS = [
654
658
  ];
655
659
  var OPTIONS = {
656
660
  stripAdditionalProperties: false,
657
- stripForbiddenProperties: false
661
+ stripForbiddenProperties: false,
662
+ stripOptionalNulls: false
658
663
  };
659
664
  var URLValidator = class extends Validator {
660
665
  href;
@@ -725,14 +730,16 @@ var url = makeTupleRestIterable(_url);
725
730
  function validate(validation, value, options = {}) {
726
731
  const opts = __spreadValues({
727
732
  stripAdditionalProperties: false,
728
- stripForbiddenProperties: false
733
+ stripForbiddenProperties: false,
734
+ stripOptionalNulls: false
729
735
  }, options);
730
736
  return getValidator(validation).validate(value, opts);
731
737
  }
732
738
  function strip(validation, value, options = {}) {
733
739
  const opts = __spreadValues({
734
740
  stripAdditionalProperties: true,
735
- stripForbiddenProperties: false
741
+ stripForbiddenProperties: false,
742
+ stripOptionalNulls: true
736
743
  }, options);
737
744
  return getValidator(validation).validate(value, opts);
738
745
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/errors.ts", "../src/types.ts", "../src/validators/any.ts", "../src/validators/constant.ts", "../src/validators/tuple.ts", "../src/validators/object.ts", "../src/utilities.ts", "../src/schema.ts", "../src/validators/union.ts", "../src/validators/array.ts", "../src/validators/boolean.ts", "../src/validators/date.ts", "../src/validators/number.ts", "../src/validators/string.ts", "../src/validators/url.ts", "../src/index.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
package/index.d.ts CHANGED
@@ -433,7 +433,17 @@ export declare class StringValidator<S extends string = string> extends Validato
433
433
 
434
434
  /**
435
435
  * Validate a _value_ using the specified `Validation`, automatically stripping
436
- * additional properties (but not forbidden ones).
436
+ * additional properties and optional `null`s (but not forbidden ones).
437
+ *
438
+ * This is equivalent to:
439
+ *
440
+ * ```
441
+ * validate(validation, value, {
442
+ * stripAdditionalProperties: true,
443
+ * stripForbiddenProperties: false,
444
+ * stripOptionalNulls: true,
445
+ * })
446
+ * ```
437
447
  */
438
448
  export declare function strip<V extends Validation>(validation: V, value: any, options?: ValidateOptions): InferValidation<V>;
439
449
 
@@ -617,6 +627,8 @@ export declare type ValidationErrors = {
617
627
  export declare interface ValidationOptions {
618
628
  /** Strip additional, undeclared properties from objects */
619
629
  readonly stripAdditionalProperties: boolean;
630
+ /** Strip `null`s from an object when associated with an optional key */
631
+ readonly stripOptionalNulls: boolean;
620
632
  /** Ignore and strip forbidden (`never`) properties from objects */
621
633
  readonly stripForbiddenProperties: boolean;
622
634
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "justus",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
4
  "description": "A JavaScript validation library, with types!",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -17,7 +17,7 @@
17
17
  "types": "./index.d.ts",
18
18
  "scripts": {
19
19
  "build": "./build.sh",
20
- "dev": "nodemon -e ts -x build.sh -w src -w test -w test-d",
20
+ "dev": "nodemon -e ts -x ./build.sh -w src -w test -w test-d",
21
21
  "lint": "eslint src test test-d",
22
22
  "prepare": "patch -N -p0 -i .nyc.patch || true"
23
23
  },
@@ -28,17 +28,17 @@
28
28
  "@types/chai": "^4.3.0",
29
29
  "@types/mocha": "^9.1.0",
30
30
  "@types/node": "~16.11.26",
31
- "@typescript-eslint/eslint-plugin": "^5.15.0",
32
- "@typescript-eslint/parser": "^5.15.0",
31
+ "@typescript-eslint/eslint-plugin": "^5.17.0",
32
+ "@typescript-eslint/parser": "^5.17.0",
33
33
  "chai": "^4.3.6",
34
- "esbuild": "^0.14.27",
35
- "eslint": "^8.11.0",
34
+ "esbuild": "^0.14.29",
35
+ "eslint": "^8.12.0",
36
36
  "eslint-config-google": "^0.14.0",
37
37
  "mocha": "^9.2.2",
38
38
  "nodemon": "^2.0.15",
39
39
  "nyc": "^15.1.0",
40
40
  "tsd": "^0.19.1",
41
- "typescript": "^4.6.2"
41
+ "typescript": "^4.6.3"
42
42
  },
43
43
  "directories": {
44
44
  "test": "test"
package/src/index.ts CHANGED
@@ -47,6 +47,7 @@ export function validate<V extends Validation>(
47
47
  const opts: ValidationOptions = {
48
48
  stripAdditionalProperties: false,
49
49
  stripForbiddenProperties: false,
50
+ stripOptionalNulls: false,
50
51
  ...options,
51
52
  }
52
53
 
@@ -55,7 +56,17 @@ export function validate<V extends Validation>(
55
56
 
56
57
  /**
57
58
  * Validate a _value_ using the specified `Validation`, automatically stripping
58
- * additional properties (but not forbidden ones).
59
+ * additional properties and optional `null`s (but not forbidden ones).
60
+ *
61
+ * This is equivalent to:
62
+ *
63
+ * ```
64
+ * validate(validation, value, {
65
+ * stripAdditionalProperties: true,
66
+ * stripForbiddenProperties: false,
67
+ * stripOptionalNulls: true,
68
+ * })
69
+ * ```
59
70
  */
60
71
  export function strip<V extends Validation>(
61
72
  validation: V,
@@ -65,6 +76,7 @@ export function strip<V extends Validation>(
65
76
  const opts: ValidationOptions = {
66
77
  stripAdditionalProperties: true,
67
78
  stripForbiddenProperties: false,
79
+ stripOptionalNulls: true,
68
80
  ...options,
69
81
  }
70
82
 
package/src/types.ts CHANGED
@@ -27,6 +27,8 @@ export const never = Symbol.for('justus.never')
27
27
  export interface ValidationOptions {
28
28
  /** Strip additional, undeclared properties from objects */
29
29
  readonly stripAdditionalProperties: boolean,
30
+ /** Strip `null`s from an object when associated with an optional key */
31
+ readonly stripOptionalNulls: boolean,
30
32
  /** Ignore and strip forbidden (`never`) properties from objects */
31
33
  readonly stripForbiddenProperties: boolean,
32
34
  }
@@ -70,6 +70,8 @@ export class ObjectValidator<S extends Schema> extends Validator<InferSchema<S>>
70
70
  assertValidation(typeof value === 'object', 'Value is not an "object"')
71
71
  assertValidation(value !== null, 'Value is "null"')
72
72
 
73
+ const { stripAdditionalProperties, stripForbiddenProperties, stripOptionalNulls } = options
74
+
73
75
  const record: { [ k in string | number | symbol ]?: unknown } = value
74
76
  const builder = new ValidationErrorBuilder()
75
77
  const clone: Record<string, any> = {}
@@ -80,7 +82,7 @@ export class ObjectValidator<S extends Schema> extends Validator<InferSchema<S>>
80
82
  // no validator? this is "never" (forbidden)
81
83
  if (! validator) {
82
84
  if (record[key] === undefined) continue
83
- if (options.stripForbiddenProperties) continue
85
+ if (stripForbiddenProperties) continue
84
86
  builder.record('Forbidden property', key)
85
87
  continue
86
88
  }
@@ -91,6 +93,11 @@ export class ObjectValidator<S extends Schema> extends Validator<InferSchema<S>>
91
93
  continue
92
94
  }
93
95
 
96
+ // strip any optional "null" value if told to do so
97
+ if (stripOptionalNulls && optional && (record[key] === null)) {
98
+ continue
99
+ }
100
+
94
101
  // all the rest gets validated normally
95
102
  try {
96
103
  clone[key] = validator.validate(record[key], options)
@@ -111,7 +118,7 @@ export class ObjectValidator<S extends Schema> extends Validator<InferSchema<S>>
111
118
  builder.record(error, key)
112
119
  }
113
120
  })
114
- } else if (! options.stripAdditionalProperties) {
121
+ } else if (! stripAdditionalProperties) {
115
122
  additionalKeys.forEach((key) => {
116
123
  if (record[key] !== undefined) builder.record('Unknown property', key)
117
124
  })
@@ -21,6 +21,7 @@ const KEYS: Exclude<keyof URLConstraints, 'searchParams'>[] = [
21
21
  const OPTIONS: ValidationOptions = {
22
22
  stripAdditionalProperties: false,
23
23
  stripForbiddenProperties: false,
24
+ stripOptionalNulls: false,
24
25
  }
25
26
 
26
27
  /** Constraints to validate a `URL` with. */