ts-fortress 2.0.2 → 2.0.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"omit.d.mts","sourceRoot":"","sources":["../../src/record/omit.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrD,+CAA+C;AAC/C,eAAO,MAAM,IAAI,GACf,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,EACnC,KAAK,CAAC,UAAU,SAAS,SAAS,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,EAE9D,YAAY,CAAC,EACb,YAAY,UAAU,EACtB,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CACH,KACA,WAAW,CAAC,CAAC,EAAE,UAAU,CAyC3B,CAAC;AAEF,KAAK,WAAW,CACd,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,EAC7B,UAAU,SAAS,SAAS,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAC7C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"omit.d.mts","sourceRoot":"","sources":["../../src/record/omit.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrD,+CAA+C;AAC/C,eAAO,MAAM,IAAI,GACf,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,EACnC,KAAK,CAAC,UAAU,SAAS,SAAS,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,EAE9D,YAAY,CAAC,EACb,YAAY,UAAU,EACtB,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CACH,KACA,WAAW,CAAC,CAAC,EAAE,UAAU,CA4C3B,CAAC;AAEF,KAAK,WAAW,CACd,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,EAC7B,UAAU,SAAS,SAAS,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAC7C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC"}
@@ -24,8 +24,8 @@ const omit = (recordType, keysToOmit, options) => {
24
24
  ...Obj.pick(recordType.fill(a), keysToOmit),
25
25
  ...a,
26
26
  };
27
- // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
28
- return recordType.validate(objectFilled);
27
+ const baseValidationResult = recordType.validate(objectFilled);
28
+ return Result.map(baseValidationResult, Obj.omit(keysToOmit));
29
29
  };
30
30
  const fill = (a) => Obj.omit(recordType.fill(a), keysToOmit);
31
31
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"omit.mjs","sources":["../../src/record/omit.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAKA;AACO,MAAM,IAAI,GAAG,CAIlB,UAAa,EACb,UAAsB,EACtB,OAIC,KAC6B;AAG9B,IAAA,MAAM,cAAc,GAClB,OAAO,EAAE,QAAQ;QACjB,CAAA,KAAA,EAAQ,UAAU,CAAC,QAAQ,CAAA,EAAA,EAAK,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG;AAEzD,IAAA,MAAM,YAAY,GAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC;AAErE,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;AAC1C,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YAChB,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA,8BAA8B,CAAC;AAC7B,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,QAAQ;AACtB,oBAAA,QAAQ,EAAE,cAAc;iBACzB,CAAC;AACH,aAAA,CAAC;;;AAIJ,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;AAC3C,YAAA,GAAG,CAAC;SACQ;;AAGd,QAAA,OAAO,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAoC;AAC7E,IAAA,CAAC;IAED,MAAM,IAAI,GAAoB,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;IAE7E,OAAO;AACL,QAAA,QAAQ,EAAE,cAAc;QACxB,YAAY;QACZ,IAAI;QACJ,QAAQ;AACR,QAAA,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACxB,QAAA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
1
+ {"version":3,"file":"omit.mjs","sources":["../../src/record/omit.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAKA;AACO,MAAM,IAAI,GAAG,CAIlB,UAAa,EACb,UAAsB,EACtB,OAIC,KAC6B;AAG9B,IAAA,MAAM,cAAc,GAClB,OAAO,EAAE,QAAQ;QACjB,CAAA,KAAA,EAAQ,UAAU,CAAC,QAAQ,CAAA,EAAA,EAAK,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG;AAEzD,IAAA,MAAM,YAAY,GAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC;AAErE,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;AAC1C,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YAChB,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA,8BAA8B,CAAC;AAC7B,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,QAAQ;AACtB,oBAAA,QAAQ,EAAE,cAAc;iBACzB,CAAC;AACH,aAAA,CAAC;;;AAIJ,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;AAC3C,YAAA,GAAG,CAAC;SACQ;QAEd,MAAM,oBAAoB,GAAG,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC;AAE9D,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAE3D;AACH,IAAA,CAAC;IAED,MAAM,IAAI,GAAoB,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;IAE7E,OAAO;AACL,QAAA,QAAQ,EAAE,cAAc;QACxB,YAAY;QACZ,IAAI;QACJ,QAAQ;AACR,QAAA,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACxB,QAAA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"partial.d.mts","sourceRoot":"","sources":["../../src/record/partial.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrD;;;GAGG;AACH,eAAO,MAAM,OAAO,GAClB,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,EACnC,KAAK,CAAC,gBAAgB,SAAS,aAAa,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAEtE,YAAY,CAAC,EACb,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CACH,KACA,WAAW,CAAC,CAAC,EAAE,gBAAgB,CAsEjC,CAAC;AAEF,KAAK,gBAAgB,CACnB,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,EAC7B,gBAAgB,SAAS,aAAa,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,SAAS,IAE5E,MAAM,CAAC,gBAAgB,EAAE,SAAS,CAAC,SAAS,IAAI,GAC5C,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAClB,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAElE,KAAK,WAAW,CACd,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,EAC7B,gBAAgB,SAAS,aAAa,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,SAAS,IAC1E,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"partial.d.mts","sourceRoot":"","sources":["../../src/record/partial.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrD;;;GAGG;AACH,eAAO,MAAM,OAAO,GAClB,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,EACnC,KAAK,CAAC,gBAAgB,SAAS,aAAa,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAEtE,YAAY,CAAC,EACb,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CACH,KACA,WAAW,CAAC,CAAC,EAAE,gBAAgB,CA0EjC,CAAC;AAEF,KAAK,gBAAgB,CACnB,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,EAC7B,gBAAgB,SAAS,aAAa,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,SAAS,IAE5E,MAAM,CAAC,gBAAgB,EAAE,SAAS,CAAC,SAAS,IAAI,GAC5C,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAClB,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAElE,KAAK,WAAW,CACd,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,EAC7B,gBAAgB,SAAS,aAAa,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,SAAS,IAC1E,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC"}
@@ -33,8 +33,9 @@ const partial = (recordType, options) => {
33
33
  // overwrite with `a`
34
34
  ...a,
35
35
  };
36
+ const validationResult = recordType.validate(objectFilled);
36
37
  // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
37
- return recordType.validate(objectFilled);
38
+ return Result.map(validationResult, Obj.pick(Object.keys(a)));
38
39
  };
39
40
  const fill = (a) => {
40
41
  if (!isRecord(a)) {
@@ -1 +1 @@
1
- {"version":3,"file":"partial.mjs","sources":["../../src/record/partial.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAKA;;;AAGG;MACU,OAAO,GAAG,CAIrB,UAAa,EACb,OAKC,KACmC;AAGpC,IAAA,MAAM,cAAc,GAClB,OAAO,EAAE,QAAQ;AACjB,SAAC,OAAO,EAAE,gBAAgB,KAAK;AAC7B,cAAE,CAAA,QAAA,EAAW,UAAU,CAAC,QAAQ,CAAA,CAAA;AAChC,cAAE,CAAA,iBAAA,EAAoB,UAAU,CAAC,QAAQ,KAAK,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,CAAC;AAExF,IAAA,MAAM,gBAAgB,GACpB,OAAO,EAAE,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;;AAGnE,IAAA,MAAM,YAAY,GAAM,GAAG,CAAC,IAAI,CAC9B,UAAU,CAAC,YAAY,EACvB,gBAAgB,CACZ;AAEN,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;AAC1C,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YAChB,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA,8BAA8B,CAAC;AAC7B,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,QAAQ;AACtB,oBAAA,QAAQ,EAAE,cAAc;iBACzB,CAAC;AACH,aAAA,CAAC;;;AAIJ,QAAA,MAAM,YAAY,GAAG;;YAEnB,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,gBAAgB,CAAC;;AAEtD,YAAA,GAAG,CAAC;SACQ;;AAGd,QAAA,OAAO,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAoC;AAC7E,IAAA,CAAC;AAED,IAAA,MAAM,IAAI,GAAoB,CAAC,CAAC,KAAI;AAClC,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AAChB,YAAA,OAAO,YAAY;;AAGrB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;QAG7C,OAAO,GAAG,CAAC,IAAI;;AAEb,QAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;;AAElB,QAAA,gBAAgB,CAAC,MAAM,CACrB,CAAC,CAAC;;QAEA,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CACpB,CACc;AACnB,IAAA,CAAC;IAED,OAAO;AACL,QAAA,QAAQ,EAAE,cAAc;QACxB,YAAY;QACZ,IAAI;QACJ,QAAQ;AACR,QAAA,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACxB,QAAA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;AAeA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;"}
1
+ {"version":3,"file":"partial.mjs","sources":["../../src/record/partial.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAKA;;;AAGG;MACU,OAAO,GAAG,CAIrB,UAAa,EACb,OAKC,KACmC;AAGpC,IAAA,MAAM,cAAc,GAClB,OAAO,EAAE,QAAQ;AACjB,SAAC,OAAO,EAAE,gBAAgB,KAAK;AAC7B,cAAE,CAAA,QAAA,EAAW,UAAU,CAAC,QAAQ,CAAA,CAAA;AAChC,cAAE,CAAA,iBAAA,EAAoB,UAAU,CAAC,QAAQ,KAAK,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,CAAC;AAExF,IAAA,MAAM,gBAAgB,GACpB,OAAO,EAAE,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;;AAGnE,IAAA,MAAM,YAAY,GAAM,GAAG,CAAC,IAAI,CAC9B,UAAU,CAAC,YAAY,EACvB,gBAAgB,CACZ;AAEN,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;AAC1C,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YAChB,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA,8BAA8B,CAAC;AAC7B,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,QAAQ;AACtB,oBAAA,QAAQ,EAAE,cAAc;iBACzB,CAAC;AACH,aAAA,CAAC;;;AAIJ,QAAA,MAAM,YAAY,GAAG;;YAEnB,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,gBAAgB,CAAC;;AAEtD,YAAA,GAAG,CAAC;SACQ;QAEd,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC;;AAG1D,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAE3D;AACH,IAAA,CAAC;AAED,IAAA,MAAM,IAAI,GAAoB,CAAC,CAAC,KAAI;AAClC,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AAChB,YAAA,OAAO,YAAY;;AAGrB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;QAG7C,OAAO,GAAG,CAAC,IAAI;;AAEb,QAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;;AAElB,QAAA,gBAAgB,CAAC,MAAM,CACrB,CAAC,CAAC;;QAEA,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CACpB,CACc;AACnB,IAAA,CAAC;IAED,OAAO;AACL,QAAA,QAAQ,EAAE,cAAc;QACxB,YAAY;QACZ,IAAI;QACJ,QAAQ;AACR,QAAA,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACxB,QAAA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;AAeA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"pick.d.mts","sourceRoot":"","sources":["../../src/record/pick.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrD,8CAA8C;AAC9C,eAAO,MAAM,IAAI,GACf,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,EACnC,KAAK,CAAC,UAAU,SAAS,SAAS,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,EAE9D,YAAY,CAAC,EACb,YAAY,UAAU,EACtB,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CACH,KACA,UAAU,CAAC,CAAC,EAAE,UAAU,CA0C1B,CAAC;AAEF,KAAK,UAAU,CACb,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,EAC7B,UAAU,SAAS,SAAS,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAC7C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"pick.d.mts","sourceRoot":"","sources":["../../src/record/pick.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrD,8CAA8C;AAC9C,eAAO,MAAM,IAAI,GACf,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,EACnC,KAAK,CAAC,UAAU,SAAS,SAAS,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,EAE9D,YAAY,CAAC,EACb,YAAY,UAAU,EACtB,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CACH,KACA,UAAU,CAAC,CAAC,EAAE,UAAU,CA8C1B,CAAC;AAEF,KAAK,UAAU,CACb,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,EAC7B,UAAU,SAAS,SAAS,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAC7C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC"}
@@ -24,8 +24,9 @@ const pick = (recordType, keysToPick, options) => {
24
24
  ...Obj.omit(recordType.fill(a), keysToPick),
25
25
  ...a,
26
26
  };
27
+ const baseValidationResult = recordType.validate(objectFilled);
27
28
  // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
28
- return recordType.validate(objectFilled);
29
+ return Result.map(baseValidationResult, Obj.pick(keysToPick));
29
30
  };
30
31
  const fill = (a) => Obj.pick(recordType.fill(a), keysToPick);
31
32
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"pick.mjs","sources":["../../src/record/pick.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAKA;AACO,MAAM,IAAI,GAAG,CAIlB,UAAa,EACb,UAAsB,EACtB,OAIC,KAC4B;AAG7B,IAAA,MAAM,cAAc,GAClB,OAAO,EAAE,QAAQ;QACjB,CAAA,KAAA,EAAQ,UAAU,CAAC,QAAQ,CAAA,EAAA,EAAK,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG;AAEzD,IAAA,MAAM,YAAY,GAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAM;AAE1E,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;AAC1C,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YAChB,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA,8BAA8B,CAAC;AAC7B,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,QAAQ;AACtB,oBAAA,QAAQ,EAAE,cAAc;iBACzB,CAAC;AACH,aAAA,CAAC;;;AAIJ,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;AAC3C,YAAA,GAAG,CAAC;SACQ;;AAGd,QAAA,OAAO,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAoC;AAC7E,IAAA,CAAC;IAED,MAAM,IAAI,GAAoB,CAAC,CAAC,KAC9B,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAM;IAE/C,OAAO;AACL,QAAA,QAAQ,EAAE,cAAc;QACxB,YAAY;QACZ,IAAI;QACJ,QAAQ;AACR,QAAA,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACxB,QAAA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
1
+ {"version":3,"file":"pick.mjs","sources":["../../src/record/pick.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAKA;AACO,MAAM,IAAI,GAAG,CAIlB,UAAa,EACb,UAAsB,EACtB,OAIC,KAC4B;AAG7B,IAAA,MAAM,cAAc,GAClB,OAAO,EAAE,QAAQ;QACjB,CAAA,KAAA,EAAQ,UAAU,CAAC,QAAQ,CAAA,EAAA,EAAK,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG;AAEzD,IAAA,MAAM,YAAY,GAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAM;AAE1E,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;AAC1C,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YAChB,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA,8BAA8B,CAAC;AAC7B,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,QAAQ;AACtB,oBAAA,QAAQ,EAAE,cAAc;iBACzB,CAAC;AACH,aAAA,CAAC;;;AAIJ,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;AAC3C,YAAA,GAAG,CAAC;SACQ;QAEd,MAAM,oBAAoB,GAAG,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC;;AAG9D,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAE3D;AACH,IAAA,CAAC;IAED,MAAM,IAAI,GAAoB,CAAC,CAAC,KAC9B,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAM;IAE/C,OAAO;AACL,QAAA,QAAQ,EAAE,cAAc;QACxB,YAAY;QACZ,IAAI;QACJ,QAAQ;AACR,QAAA,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACxB,QAAA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-fortress",
3
- "version": "2.0.2",
3
+ "version": "2.0.4",
4
4
  "private": false,
5
5
  "keywords": [
6
6
  "typescript"
@@ -41,8 +41,11 @@ export const omit = <
41
41
  ...a,
42
42
  } as TypeOf<R>;
43
43
 
44
- // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
45
- return recordType.validate(objectFilled) as ReturnType<Type<V>['validate']>;
44
+ const baseValidationResult = recordType.validate(objectFilled);
45
+
46
+ return Result.map(baseValidationResult, Obj.omit(keysToOmit)) as ReturnType<
47
+ Type<V>['validate']
48
+ >;
46
49
  };
47
50
 
48
51
  const fill: Type<V>['fill'] = (a) => Obj.omit(recordType.fill(a), keysToOmit);
@@ -6,14 +6,13 @@ import { omit } from './omit.mjs';
6
6
  import { record } from './record.mjs';
7
7
 
8
8
  describe('omit', () => {
9
- const ym = omit(
10
- record({
11
- year: number(1900),
12
- month: number(1),
13
- date: number(1),
14
- }),
15
- ['date'],
16
- );
9
+ const ymd = record({
10
+ year: number(1900),
11
+ month: number(1),
12
+ date: number(1),
13
+ });
14
+
15
+ const ym = omit(ymd, ['date']);
17
16
 
18
17
  expectType<typeof ym, Type<Readonly<{ year: number; month: number }>>>('=');
19
18
 
@@ -56,6 +55,24 @@ describe('omit', () => {
56
55
  });
57
56
 
58
57
  describe('validate', () => {
58
+ test('truthy case', () => {
59
+ const x: UnknownRecord = {
60
+ year: 2000,
61
+ month: 12,
62
+ };
63
+
64
+ const result = ym.validate(x);
65
+ expect(Result.isOk(result)).toBe(true);
66
+
67
+ if (Result.isOk(result)) {
68
+ expectType<typeof result.value, Ym>('=');
69
+ expect(result.value).toStrictEqual({
70
+ year: 2000,
71
+ month: 12,
72
+ });
73
+ }
74
+ });
75
+
59
76
  test('falsy case', () => {
60
77
  const x: UnknownRecord = {
61
78
  year: 2000,
@@ -55,8 +55,12 @@ export const partial = <
55
55
  ...a,
56
56
  } as TypeOf<R>;
57
57
 
58
+ const validationResult = recordType.validate(objectFilled);
59
+
58
60
  // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
59
- return recordType.validate(objectFilled) as ReturnType<Type<V>['validate']>;
61
+ return Result.map(validationResult, Obj.pick(Object.keys(a))) as ReturnType<
62
+ Type<V>['validate']
63
+ >;
60
64
  };
61
65
 
62
66
  const fill: Type<V>['fill'] = (a) => {
@@ -1,7 +1,10 @@
1
1
  import { expectType, Result } from 'ts-data-forge';
2
2
  import { number } from '../primitives/index.mjs';
3
3
  import { type Type, type TypeOf } from '../type.mjs';
4
- import { validationErrorsToMessages } from '../validation-error.mjs';
4
+ import {
5
+ type ValidationError,
6
+ validationErrorsToMessages,
7
+ } from '../validation-error.mjs';
5
8
  import { optional } from './optional.mjs';
6
9
  import { partial } from './partial.mjs';
7
10
  import { record } from './record.mjs';
@@ -65,6 +68,38 @@ describe('partial', () => {
65
68
  });
66
69
 
67
70
  describe('validate', () => {
71
+ test('truthy case', () => {
72
+ const x: UnknownRecord = {
73
+ year: 2000,
74
+ month: 12,
75
+ date: 25,
76
+ };
77
+
78
+ const result = ymd.validate(x);
79
+ expectType<typeof result, Result<Ymd, readonly ValidationError[]>>('=');
80
+ expect(Result.isOk(result)).toBe(true);
81
+
82
+ if (Result.isOk(result)) {
83
+ expect(result.value).toStrictEqual({
84
+ year: 2000,
85
+ month: 12,
86
+ date: 25,
87
+ });
88
+ }
89
+ });
90
+
91
+ test('truthy case optional keys', () => {
92
+ const x: UnknownRecord = {};
93
+
94
+ const result = ymd.validate(x);
95
+ expectType<typeof result, Result<Ymd, readonly ValidationError[]>>('=');
96
+ expect(Result.isOk(result)).toBe(true);
97
+
98
+ if (Result.isOk(result)) {
99
+ expect(result.value).toStrictEqual({});
100
+ }
101
+ });
102
+
68
103
  test('falsy case 1', () => {
69
104
  const x: UnknownRecord = {
70
105
  year: 2000,
@@ -41,8 +41,12 @@ export const pick = <
41
41
  ...a,
42
42
  } as TypeOf<R>;
43
43
 
44
+ const baseValidationResult = recordType.validate(objectFilled);
45
+
44
46
  // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
45
- return recordType.validate(objectFilled) as ReturnType<Type<V>['validate']>;
47
+ return Result.map(baseValidationResult, Obj.pick(keysToPick)) as ReturnType<
48
+ Type<V>['validate']
49
+ >;
46
50
  };
47
51
 
48
52
  const fill: Type<V>['fill'] = (a) =>
@@ -6,14 +6,13 @@ import { pick } from './pick.mjs';
6
6
  import { record } from './record.mjs';
7
7
 
8
8
  describe('pick', () => {
9
- const ym = pick(
10
- record({
11
- year: number(1900),
12
- month: number(1),
13
- date: number(1),
14
- }),
15
- ['year', 'month'],
16
- );
9
+ const ymd = record({
10
+ year: number(1900),
11
+ month: number(1),
12
+ date: number(1),
13
+ });
14
+
15
+ const ym = pick(ymd, ['year', 'month']);
17
16
 
18
17
  expectType<typeof ym, Type<Readonly<{ year: number; month: number }>>>('=');
19
18
 
@@ -56,6 +55,24 @@ describe('pick', () => {
56
55
  });
57
56
 
58
57
  describe('validate', () => {
58
+ test('truthy case', () => {
59
+ const x: UnknownRecord = {
60
+ year: 2000,
61
+ month: 12,
62
+ };
63
+
64
+ const result = ym.validate(x);
65
+ expect(Result.isOk(result)).toBe(true);
66
+
67
+ if (Result.isOk(result)) {
68
+ expectType<typeof result.value, Ym>('=');
69
+ expect(result.value).toStrictEqual({
70
+ year: 2000,
71
+ month: 12,
72
+ });
73
+ }
74
+ });
75
+
59
76
  test('falsy case', () => {
60
77
  const x: UnknownRecord = {
61
78
  year: 2000,