@thisisagile/easy 9.5.9 → 10.2.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.
Files changed (42) hide show
  1. package/dist/domain/Audit.js +1 -2
  2. package/dist/domain/Audit.js.map +1 -1
  3. package/dist/http/RestResult.js +2 -3
  4. package/dist/http/RestResult.js.map +1 -1
  5. package/dist/process/Search.js +2 -2
  6. package/dist/process/Search.js.map +1 -1
  7. package/dist/services/AxiosProvider.d.ts +1 -1
  8. package/dist/services/AxiosProvider.js +2 -3
  9. package/dist/services/AxiosProvider.js.map +1 -1
  10. package/dist/types/Case.d.ts +17 -0
  11. package/dist/{utils → types}/Case.js +21 -11
  12. package/dist/types/Case.js.map +1 -0
  13. package/dist/types/Is.js +1 -1
  14. package/dist/types/Is.js.map +1 -1
  15. package/dist/types/IsEqual.d.ts +1 -0
  16. package/dist/types/IsEqual.js +21 -0
  17. package/dist/types/IsEqual.js.map +1 -0
  18. package/dist/types/index.d.ts +2 -0
  19. package/dist/types/index.js +2 -0
  20. package/dist/types/index.js.map +1 -1
  21. package/dist/utils/View.js +2 -2
  22. package/dist/utils/View.js.map +1 -1
  23. package/dist/utils/index.d.ts +0 -1
  24. package/dist/utils/index.js +0 -1
  25. package/dist/utils/index.js.map +1 -1
  26. package/dist/validation/Validate.js +2 -3
  27. package/dist/validation/Validate.js.map +1 -1
  28. package/package.json +2 -2
  29. package/src/domain/Audit.ts +2 -3
  30. package/src/http/RestResult.ts +16 -4
  31. package/src/process/Search.ts +4 -4
  32. package/src/services/AxiosProvider.ts +21 -6
  33. package/src/types/Case.ts +58 -0
  34. package/src/types/Is.ts +1 -1
  35. package/src/types/IsEqual.ts +22 -0
  36. package/src/types/index.ts +2 -0
  37. package/src/utils/View.ts +2 -2
  38. package/src/utils/index.ts +0 -1
  39. package/src/validation/Validate.ts +3 -4
  40. package/dist/utils/Case.d.ts +0 -19
  41. package/dist/utils/Case.js.map +0 -1
  42. package/src/utils/Case.ts +0 -45
@@ -13,11 +13,10 @@ exports.Audit = void 0;
13
13
  const Struct_1 = require("./Struct");
14
14
  const types_1 = require("../types");
15
15
  const validation_1 = require("../validation");
16
- const utils_1 = require("../utils");
17
16
  const values_1 = require("./values");
18
17
  class Audit extends Struct_1.Struct {
19
18
  constructor(a) {
20
- super((0, utils_1.choose)(a)
19
+ super((0, types_1.choose)(a)
21
20
  .type(types_1.isDefined, (j) => j)
22
21
  .else({ by: types_1.ctx.request?.identity ?? { id: 0, user: 'easy' }, when: values_1.DateTime.now.toJSON() }));
23
22
  this.by = { id: this.state.by.id, user: this.state.by.user };
@@ -1 +1 @@
1
- {"version":3,"file":"Audit.js","sourceRoot":"","sources":["../../src/domain/Audit.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAkC;AAClC,oCAAoD;AACpD,8CAAgD;AAChD,oCAAkC;AAClC,qCAAoC;AAEpC,MAAa,KAAM,SAAQ,eAAM;IAI/B,YAAY,CAAQ;QAClB,KAAK,CACH,IAAA,cAAM,EAAC,CAAC,CAAC;aACN,IAAI,CAAC,iBAAS,EAAE,CAAC,CAAO,EAAE,EAAE,CAAC,CAAC,CAAC;aAC/B,IAAI,CAAC,EAAE,EAAE,EAAE,WAAG,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,iBAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAC/F,CAAC;QARiB,OAAE,GAA6B,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QACrF,SAAI,GAAa,IAAI,iBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAQjE,CAAC;CACF;AAVa;IAAX,IAAA,qBAAQ,GAAE;;iCAA4F;AAC9F;IAAR,IAAA,kBAAK,GAAE;8BAAgB,iBAAQ;mCAAiC;AAFnE,sBAWC"}
1
+ {"version":3,"file":"Audit.js","sourceRoot":"","sources":["../../src/domain/Audit.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAkC;AAClC,oCAA4D;AAC5D,8CAAgD;AAChD,qCAAoC;AAEpC,MAAa,KAAM,SAAQ,eAAM;IAI/B,YAAY,CAAQ;QAClB,KAAK,CACH,IAAA,cAAM,EAAC,CAAC,CAAC;aACN,IAAI,CAAC,iBAAS,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC;aAClC,IAAI,CAAC,EAAE,EAAE,EAAE,WAAG,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,iBAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAC/F,CAAC;QARiB,OAAE,GAA6B,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QACrF,SAAI,GAAa,IAAI,iBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAQjE,CAAC;CACF;AAVa;IAAX,IAAA,qBAAQ,GAAE;;iCAA4F;AAC9F;IAAR,IAAA,kBAAK,GAAE;8BAAgB,iBAAQ;mCAAiC;AAFnE,sBAWC"}
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isRestResult = exports.rest = void 0;
4
4
  const types_1 = require("../types");
5
- const utils_1 = require("../utils");
6
5
  const HttpStatus_1 = require("./HttpStatus");
7
6
  const Response_1 = require("./Response");
8
7
  const hasErrors = (a) => (0, types_1.isDefined)(a?.error?.errors);
@@ -23,8 +22,8 @@ exports.rest = {
23
22
  errorCount: errors.length,
24
23
  },
25
24
  }),
26
- to: (payload, status) => (0, utils_1.choose)(payload)
27
- .type(types_1.isUndefined, p => p)
25
+ to: (payload, status) => (0, types_1.choose)(payload)
26
+ .type(types_1.isUndefined, () => undefined)
28
27
  .type(HttpStatus_1.isHttpStatus, h => exports.rest.toError(h ?? status ?? HttpStatus_1.HttpStatus.InternalServerError, [(0, types_1.toResult)(h.name)]))
29
28
  .type(types_1.isResult, r => exports.rest.toError(status ?? HttpStatus_1.HttpStatus.BadRequest, [r]))
30
29
  .type(types_1.isError, e => exports.rest.toError(status ?? HttpStatus_1.HttpStatus.BadRequest, [e]))
@@ -1 +1 @@
1
- {"version":3,"file":"RestResult.js","sourceRoot":"","sources":["../../src/http/RestResult.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RestResult.js","sourceRoot":"","sources":["../../src/http/RestResult.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,8 @@ class Search {
10
10
  this.byId = (id) => this.repo.byId(id);
11
11
  this.byIds = (...ids) => this.repo.byIds(...ids);
12
12
  this.byKey = (key) => this.repo.byKey(key);
13
- this.search = (query) => (0, utils_1.choose)(query)
14
- .type(types_1.isNotEmpty, q => this.repo.search(q))
13
+ this.search = (query) => (0, types_1.choose)(query)
14
+ .case(types_1.isNotEmpty, q => this.repo.search(q))
15
15
  .else((0, utils_1.resolve)((0, types_1.toList)()));
16
16
  this.exists = (id) => this.repo.exists(id);
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Search.js","sourceRoot":"","sources":["../../src/process/Search.ts"],"names":[],"mappings":";;;AACA,oCAAwE;AACxE,oCAA2C;AAE3C,MAAa,MAAM;IACjB,YAAsB,IAAa;QAAb,SAAI,GAAJ,IAAI,CAAS;QAEnC,QAAG,GAAG,GAAqB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAE9C,SAAI,GAAG,CAAC,EAAM,EAAc,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAElD,UAAK,GAAG,CAAC,GAAG,GAAS,EAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;QAEpE,UAAK,GAAG,CAAC,GAAQ,EAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE7D,WAAM,GAAG,CAAC,KAAgB,EAAoB,EAAE,CAC9C,IAAA,cAAM,EAA8B,KAAK,CAAC;aACvC,IAAI,CAAY,kBAAU,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACrD,IAAI,CAAC,IAAA,eAAO,EAAC,IAAA,cAAM,GAAK,CAAC,CAAC,CAAC;QAEhC,WAAM,GAAG,CAAC,EAAM,EAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAftB,CAAC;CAgBxC;AAjBD,wBAiBC"}
1
+ {"version":3,"file":"Search.js","sourceRoot":"","sources":["../../src/process/Search.ts"],"names":[],"mappings":";;;AACA,oCAAgF;AAChF,oCAAmC;AAEnC,MAAa,MAAM;IACjB,YAAsB,IAAa;QAAb,SAAI,GAAJ,IAAI,CAAS;QAEnC,QAAG,GAAG,GAAqB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAE9C,SAAI,GAAG,CAAC,EAAM,EAAc,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAElD,UAAK,GAAG,CAAC,GAAG,GAAS,EAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;QAEpE,UAAK,GAAG,CAAC,GAAQ,EAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE7D,WAAM,GAAG,CAAC,KAAgB,EAAoB,EAAE,CAC9C,IAAA,cAAM,EAAC,KAAK,CAAC;aACV,IAAI,CAAC,kBAAU,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aAC1C,IAAI,CAAC,IAAA,eAAO,EAAC,IAAA,cAAM,GAAK,CAAC,CAAC,CAAC;QAEhC,WAAM,GAAG,CAAC,EAAM,EAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAftB,CAAC;CAgBxC;AAjBD,wBAiBC"}
@@ -1,4 +1,4 @@
1
1
  import { Request, RequestProvider, Response } from '../http';
2
2
  export declare class AxiosProvider implements RequestProvider {
3
- execute: ({ uri, verb, body, transform, transformError, options }: Request) => Promise<Response>;
3
+ execute: ({ uri, verb, body, transform, transformError, options, }: Request) => Promise<Response>;
4
4
  }
@@ -7,16 +7,15 @@ exports.AxiosProvider = void 0;
7
7
  const axios_1 = __importDefault(require("axios"));
8
8
  const http_1 = require("../http");
9
9
  const types_1 = require("../types");
10
- const utils_1 = require("../utils");
11
10
  const isResponse = (a) => (0, types_1.isDefined)(a?.response);
12
11
  const isRequest = (a) => (0, types_1.isDefined)(a?.request);
13
- const asResponse = (uri, verb, error) => (0, utils_1.choose)(error)
12
+ const asResponse = (uri, verb, error) => (0, types_1.choose)(error)
14
13
  .type(isResponse, r => (0, http_1.toResponse)(r.response.status, (0, http_1.isRestResult)(r.response.data) ? r.response.data : (0, types_1.toResult)(r.response.statusText, uri.path, uri), r.response.headers))
15
14
  .type(isRequest, r => (0, http_1.toResponse)(r.request.status, (0, types_1.toResult)(r.request.message, uri.path, uri)))
16
15
  .else(e => (0, http_1.toResponse)(http_1.HttpStatus.InternalServerError, (0, types_1.toResult)(e.message, uri.path, uri)));
17
16
  class AxiosProvider {
18
17
  constructor() {
19
- this.execute = ({ uri, verb, body, transform = (r) => r, transformError = (r) => r, options = http_1.RequestOptions.Json }) => axios_1.default
18
+ this.execute = ({ uri, verb, body, transform = (r) => r, transformError = (r) => r, options = http_1.RequestOptions.Json, }) => axios_1.default
20
19
  .request({
21
20
  url: uri.toString(),
22
21
  method: verb.toString(),
@@ -1 +1 @@
1
- {"version":3,"file":"AxiosProvider.js","sourceRoot":"","sources":["../../src/services/AxiosProvider.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAiE;AACjE,kCAA6H;AAC7H,oCAAkE;AAClE,oCAAkC;AAElC,MAAM,UAAU,GAAG,CAAC,CAAU,EAAoC,EAAE,CAAC,IAAA,iBAAS,EAAE,CAAS,EAAE,QAAQ,CAAC,CAAC;AACrG,MAAM,SAAS,GAAG,CAAC,CAAU,EAAyB,EAAE,CAAC,IAAA,iBAAS,EAAE,CAAS,EAAE,OAAO,CAAC,CAAC;AAExF,MAAM,UAAU,GAAG,CAAC,GAAQ,EAAE,IAAc,EAAE,KAAiB,EAAY,EAAE,CAC3E,IAAA,cAAM,EAAuB,KAAK,CAAC;KAChC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CACpB,IAAA,iBAAU,EAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAA,mBAAY,EAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,gBAAQ,EAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CACpJ;KACA,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAA,iBAAU,EAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAA,gBAAQ,EAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;KAC9F,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,iBAAU,EAAC,iBAAU,CAAC,mBAAmB,EAAE,IAAA,gBAAQ,EAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAE/F,MAAa,aAAa;IAA1B;QACE,YAAO,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,cAAc,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,qBAAc,CAAC,IAAI,EAAW,EAAqB,EAAE,CACtJ,eAAK;aACF,OAAO,CAAC;YACP,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAY;YACjC,OAAO,EAAE,GAAG,CAAC,UAAU,IAAI,IAAA,eAAO,EAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,WAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO;YAC7H,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;SAChC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,iBAAU,EAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;aAC7D,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;CAAA;AAXD,sCAWC"}
1
+ {"version":3,"file":"AxiosProvider.js","sourceRoot":"","sources":["../../src/services/AxiosProvider.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAiE;AACjE,kCASiB;AACjB,oCAA0E;AAE1E,MAAM,UAAU,GAAG,CAAC,CAAU,EAAoC,EAAE,CAAC,IAAA,iBAAS,EAAE,CAAS,EAAE,QAAQ,CAAC,CAAC;AACrG,MAAM,SAAS,GAAG,CAAC,CAAU,EAAyB,EAAE,CAAC,IAAA,iBAAS,EAAE,CAAS,EAAE,OAAO,CAAC,CAAC;AAExF,MAAM,UAAU,GAAG,CAAC,GAAQ,EAAE,IAAc,EAAE,KAAiB,EAAY,EAAE,CAC3E,IAAA,cAAM,EAAC,KAAK,CAAC;KACV,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CACpB,IAAA,iBAAU,EAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAA,mBAAY,EAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,gBAAQ,EAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CACpJ;KACA,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAA,iBAAU,EAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAA,gBAAQ,EAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;KAC9F,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,iBAAU,EAAC,iBAAU,CAAC,mBAAmB,EAAE,IAAA,gBAAQ,EAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAE/F,MAAa,aAAa;IAA1B;QACE,YAAO,GAAG,CAAC,EACE,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,SAAS,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EACzB,cAAc,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAC9B,OAAO,GAAG,qBAAc,CAAC,IAAI,GACrB,EAAqB,EAAE,CAC1C,eAAK;aACF,OAAO,CAAC;YACP,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAY;YACjC,OAAO,EAAE,GAAG,CAAC,UAAU,IAAI,IAAA,eAAO,EAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,WAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO;YAC7H,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;SAChC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,iBAAU,EAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;aAC7D,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;CAAA;AAlBD,sCAkBC"}
@@ -0,0 +1,17 @@
1
+ import { Func, Get, Predicate } from './index';
2
+ declare class CaseBuilder<V> {
3
+ readonly v: V;
4
+ constructor(v: V);
5
+ case<T>(pred: Predicate<V>, out: Func<T, V>): Case<T, V>;
6
+ type<T, U = unknown>(guard: (u: unknown) => u is U, out: Func<T, U>): Case<T, V>;
7
+ }
8
+ declare class Case<T, V = unknown> {
9
+ protected value: V;
10
+ protected outcome?: T | undefined;
11
+ constructor(value: V, outcome?: T | undefined);
12
+ case(pred: Predicate<V>, out: Func<T, V>): Case<T, V>;
13
+ type<U>(guard: (u: unknown) => u is U, out: Func<T, U>): Case<T, V>;
14
+ else(alt: Get<T, V>): T;
15
+ }
16
+ export declare const choose: <V>(value: V) => CaseBuilder<V>;
17
+ export {};
@@ -1,28 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.choose = exports.Found = void 0;
4
- const types_1 = require("../types");
3
+ exports.choose = void 0;
4
+ const index_1 = require("./index");
5
+ class CaseBuilder {
6
+ constructor(v) {
7
+ this.v = v;
8
+ }
9
+ case(pred, out) {
10
+ return new Case(this.v).case(pred, out);
11
+ }
12
+ type(guard, out) {
13
+ return new Case(this.v).type(guard, out);
14
+ }
15
+ }
5
16
  class Case {
6
17
  constructor(value, outcome) {
7
18
  this.value = value;
8
19
  this.outcome = outcome;
9
20
  }
10
21
  case(pred, out) {
11
- return (0, types_1.tryTo)(pred, this.value)
22
+ return (0, index_1.tryTo)(pred, this.value)
12
23
  .is.true()
13
- .map(() => (0, types_1.ofGet)(out, this.value))
24
+ .map(() => out(this.value))
14
25
  .map(res => new Found(this.value, res))
15
26
  .or(this);
16
27
  }
17
- type(pred, out) {
18
- return (0, types_1.tryTo)(pred, this.value)
28
+ type(guard, out) {
29
+ return (0, index_1.tryTo)(guard, this.value)
19
30
  .is.true()
20
- .map(() => (0, types_1.ofGet)(out, this.value))
31
+ .map(() => out(this.value))
21
32
  .map(res => new Found(this.value, res))
22
33
  .or(this);
23
34
  }
24
35
  else(alt) {
25
- return (0, types_1.ofGet)(alt, this.value);
36
+ return (0, index_1.ofGet)(alt, this.value);
26
37
  }
27
38
  }
28
39
  class Found extends Case {
@@ -34,14 +45,13 @@ class Found extends Case {
34
45
  case(pred, out) {
35
46
  return this;
36
47
  }
37
- type(pred, out) {
48
+ type(guard, out) {
38
49
  return this;
39
50
  }
40
51
  else(alt) {
41
52
  return this.outcome;
42
53
  }
43
54
  }
44
- exports.Found = Found;
45
- const choose = (value) => new Case(value);
55
+ const choose = (value) => new CaseBuilder(value);
46
56
  exports.choose = choose;
47
57
  //# sourceMappingURL=Case.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Case.js","sourceRoot":"","sources":["../../src/types/Case.ts"],"names":[],"mappings":";;;AAAA,mCAA6D;AAE7D,MAAM,WAAW;IACf,YAAqB,CAAI;QAAJ,MAAC,GAAD,CAAC,CAAG;IACzB,CAAC;IAED,IAAI,CAAI,IAAkB,EAAE,GAAe;QACzC,OAAO,IAAI,IAAI,CAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,CAAiB,KAA6B,EAAE,GAAe;QACjE,OAAO,IAAI,IAAI,CAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAI,KAAK,EAAE,GAAG,CAAC,CAAC;IACpD,CAAC;CACF;AAED,MAAM,IAAI;IACR,YAAsB,KAAQ,EAAY,OAAW;QAA/B,UAAK,GAAL,KAAK,CAAG;QAAY,YAAO,GAAP,OAAO,CAAI;IAAG,CAAC;IAEzD,IAAI,CAAC,IAAkB,EAAE,GAAe;QACtC,OAAO,IAAA,aAAK,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;aAC3B,EAAE,CAAC,IAAI,EAAE;aACT,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1B,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAe,CAAC;aACpD,EAAE,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IAED,IAAI,CAAI,KAA6B,EAAE,GAAe;QACpD,OAAO,IAAA,aAAK,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;aAC5B,EAAE,CAAC,IAAI,EAAE;aACT,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAqB,CAAC,CAAC;aAC1C,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAe,CAAC;aACpD,EAAE,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IAED,IAAI,CAAC,GAAc;QACjB,OAAO,IAAA,aAAK,EAAO,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;CACF;AAED,MAAM,KAAY,SAAQ,IAAU;IAClC,YAAsB,KAAQ,EAAY,OAAU;QAClD,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QADF,UAAK,GAAL,KAAK,CAAG;QAAY,YAAO,GAAP,OAAO,CAAG;IAEpD,CAAC;IAED,IAAI,CAAC,IAAkB,EAAE,GAAe;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAI,KAA6B,EAAE,GAAe;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,GAAc;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AAEM,MAAM,MAAM,GAAG,CAAI,KAAQ,EAAE,EAAE,CAAC,IAAI,WAAW,CAAI,KAAK,CAAC,CAAC;AAApD,QAAA,MAAM,UAA8C"}
package/dist/types/Is.js CHANGED
@@ -19,7 +19,7 @@ const isTrue = (o) => ((0, exports.isFunction)(o) ? (0, exports.isTrue)(o()) : (
19
19
  exports.isTrue = isTrue;
20
20
  const isNumber = (o) => (0, exports.isDefined)(o) && typeof o === 'number' && !Number.isNaN(o);
21
21
  exports.isNumber = isNumber;
22
- const isObject = (o) => o != null && (typeof o === 'object' || typeof o === 'function') && !(0, exports.isArray)(o);
22
+ const isObject = (o) => o != null && (typeof o === 'object') && !(0, exports.isArray)(o);
23
23
  exports.isObject = isObject;
24
24
  const isEmptyObject = (o) => (0, exports.isObject)(o) && Object.getOwnPropertyNames(o).length === 0;
25
25
  exports.isEmptyObject = isEmptyObject;
@@ -1 +1 @@
1
- {"version":3,"file":"Is.js","sourceRoot":"","sources":["../../src/types/Is.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Is.js","sourceRoot":"","sources":["../../src/types/Is.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const isEqual: (one?: unknown, another?: unknown) => boolean;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isEqual = void 0;
4
+ const Is_1 = require("./Is");
5
+ const Case_1 = require("./Case");
6
+ const isEqualArray = (one, another) => (0, Case_1.choose)([one, another])
7
+ .case(([o, a]) => !(0, Is_1.isArray)(o) || !(0, Is_1.isArray)(a), () => false)
8
+ .case(([o, a]) => o?.length !== a?.length, () => false)
9
+ .else(([o, a]) => !o.some((v, i) => !(0, exports.isEqual)(v, a[i])));
10
+ const isEqualObject = (one, another) => (0, Case_1.choose)([Object.keys(one), Object.keys(another)])
11
+ .case(([keysO, keysA]) => keysO.length !== keysA.length, () => false)
12
+ .case(([keysO, keysA]) => keysO.some(k => !keysA.includes(k)), () => false)
13
+ .case(([keysO]) => keysO.some(k => !(0, exports.isEqual)(one[k], another[k])), () => false)
14
+ .else(true);
15
+ const isEqual = (one, another) => (0, Case_1.choose)([one, another])
16
+ .case(([o, a]) => o === a, () => true)
17
+ .case(([o, a]) => (0, Is_1.isArray)(o) || (0, Is_1.isArray)(a), ([o, a]) => isEqualArray(o, a))
18
+ .case(([o, a]) => o == null || a == null || (!(0, Is_1.isObject)(o) && !(0, Is_1.isObject)(a)), ([o, a]) => o !== o && a !== a)
19
+ .else(([o, a]) => isEqualObject(o, a));
20
+ exports.isEqual = isEqual;
21
+ //# sourceMappingURL=IsEqual.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsEqual.js","sourceRoot":"","sources":["../../src/types/IsEqual.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export * from './Array';
2
2
  export * from './Builder';
3
+ export * from './Case';
3
4
  export * from './Constructor';
4
5
  export * from './Context';
5
6
  export * from './Enum';
@@ -13,6 +14,7 @@ export * from './Identity';
13
14
  export * from './Is';
14
15
  export * from './IsA';
15
16
  export * from './IsDate';
17
+ export * from './IsEqual';
16
18
  export * from './Json';
17
19
  export * from './List';
18
20
  export * from './Message';
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./Array"), exports);
18
18
  __exportStar(require("./Builder"), exports);
19
+ __exportStar(require("./Case"), exports);
19
20
  __exportStar(require("./Constructor"), exports);
20
21
  __exportStar(require("./Context"), exports);
21
22
  __exportStar(require("./Enum"), exports);
@@ -29,6 +30,7 @@ __exportStar(require("./Identity"), exports);
29
30
  __exportStar(require("./Is"), exports);
30
31
  __exportStar(require("./IsA"), exports);
31
32
  __exportStar(require("./IsDate"), exports);
33
+ __exportStar(require("./IsEqual"), exports);
32
34
  __exportStar(require("./Json"), exports);
33
35
  __exportStar(require("./List"), exports);
34
36
  __exportStar(require("./Message"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,4CAA0B;AAC1B,gDAA8B;AAC9B,4CAA0B;AAC1B,yCAAuB;AACvB,gDAA8B;AAC9B,8CAA4B;AAC5B,yCAAuB;AACvB,4CAA0B;AAC1B,wCAAsB;AACtB,uCAAqB;AACrB,6CAA2B;AAC3B,uCAAqB;AACrB,wCAAsB;AACtB,2CAAyB;AACzB,yCAAuB;AACvB,yCAAuB;AACvB,4CAA0B;AAC1B,yCAAuB;AACvB,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B;AAC1B,wCAAsB;AACtB,6CAA2B;AAC3B,yCAAuB;AACvB,wCAAsB;AACtB,wCAAsB;AACtB,yCAAuB;AACvB,gDAA8B;AAC9B,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,4CAA0B;AAC1B,yCAAuB;AACvB,gDAA8B;AAC9B,4CAA0B;AAC1B,yCAAuB;AACvB,gDAA8B;AAC9B,8CAA4B;AAC5B,yCAAuB;AACvB,4CAA0B;AAC1B,wCAAsB;AACtB,uCAAqB;AACrB,6CAA2B;AAC3B,uCAAqB;AACrB,wCAAsB;AACtB,2CAAyB;AACzB,4CAA0B;AAC1B,yCAAuB;AACvB,yCAAuB;AACvB,4CAA0B;AAC1B,yCAAuB;AACvB,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B;AAC1B,wCAAsB;AACtB,6CAA2B;AAC3B,yCAAuB;AACvB,wCAAsB;AACtB,wCAAsB;AACtB,yCAAuB;AACvB,gDAA8B;AAC9B,0CAAwB"}
@@ -3,13 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.views = exports.view = exports.skip = exports.View = void 0;
4
4
  const types_1 = require("../types");
5
5
  const Traverse_1 = require("./Traverse");
6
- const Case_1 = require("./Case");
6
+ const types_2 = require("../types");
7
7
  const isColOnly = (v) => (0, types_1.isObject)(v) && (0, types_1.isDefined)(v.col) && !(0, types_1.isDefined)(v.in);
8
8
  const isInOnly = (v) => (0, types_1.isObject)(v) && !(0, types_1.isDefined)(v.col) && (0, types_1.isFunction)(v.in);
9
9
  const isColAndFunction = (v) => (0, types_1.isObject)(v) && (0, types_1.isDefined)(v.col) && (0, types_1.isFunction)(v.in);
10
10
  const isColAndView = (v) => (0, types_1.isObject)(v) && (0, types_1.isDefined)(v.col) && v.in instanceof View;
11
11
  const toFunc = (a, col, f = a => a) => (0, types_1.tryTo)((0, Traverse_1.traverse)(a, col)).map(v => ((0, types_1.isArray)(v) ? () => v.map(i => f(i)) : (a) => f((0, Traverse_1.traverse)(a, col)))).value;
12
- const toViewer = (key, value) => (0, Case_1.choose)(value)
12
+ const toViewer = (key, value) => (0, types_2.choose)(value)
13
13
  .type(types_1.isUndefined, () => toViewer(key, () => undefined))
14
14
  .type(types_1.isBoolean, b => toViewer(key, () => b))
15
15
  .type(types_1.isNumber, n => toViewer(key, () => n))
@@ -1 +1 @@
1
- {"version":3,"file":"View.js","sourceRoot":"","sources":["../../src/utils/View.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"View.js","sourceRoot":"","sources":["../../src/utils/View.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- export * from './Case';
2
1
  export * from './Convert';
3
2
  export * from './If';
4
3
  export * from './Log';
@@ -14,7 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./Case"), exports);
18
17
  __exportStar(require("./Convert"), exports);
19
18
  __exportStar(require("./If"), exports);
20
19
  __exportStar(require("./Log"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,4CAA0B;AAC1B,uCAAqB;AACrB,wCAAsB;AACtB,2CAAyB;AACzB,4CAA0B;AAC1B,6CAA2B;AAC3B,0CAAwB;AACxB,6CAA2B;AAC3B,6CAA2B;AAC3B,yCAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,uCAAqB;AACrB,wCAAsB;AACtB,2CAAyB;AACzB,4CAA0B;AAC1B,6CAA2B;AAC3B,0CAAwB;AACxB,6CAA2B;AAC3B,6CAA2B;AAC3B,yCAAuB"}
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateReject = exports.validate = exports.asResults = void 0;
4
4
  const types_1 = require("../types");
5
5
  const When_1 = require("./When");
6
- const utils_1 = require("../utils");
7
6
  const asResults = (subject, template, options = {}) => (0, types_1.toResults)((0, types_1.toResult)((0, types_1.text)(template).parse(subject, options), (0, types_1.toName)(subject)));
8
7
  exports.asResults = asResults;
9
8
  const validators = (subject) => (0, types_1.meta)(subject)
@@ -16,8 +15,8 @@ const runValidator = (v, subject) => (0, types_1.tryTo)(() => subject[v.property
16
15
  const constraints = (subject) => (0, types_1.tryTo)(() => validators(subject))
17
16
  .map(vs => vs.mapDefined(v => runValidator(v, subject)))
18
17
  .map(res => res.reduce((rs, r) => rs.add(...r.results), (0, types_1.toResults)())).value;
19
- const validate = (subject) => (0, utils_1.choose)(subject)
20
- .type(types_1.isUndefined, u => (0, exports.asResults)(u, 'Subject is not defined.'))
18
+ const validate = (subject) => (0, types_1.choose)(subject)
19
+ .type(types_1.isUndefined, () => (0, types_1.toResults)('Subject is not defined.'))
21
20
  .type(types_1.isEnum, e => (e.isValid ? (0, types_1.toResults)() : (0, exports.asResults)(e, 'This is not a valid {type}.')))
22
21
  .type(types_1.isValue, v => (v.isValid ? (0, types_1.toResults)() : (0, exports.asResults)(v, 'This is not a valid {type}.')))
23
22
  .type(types_1.isArray, a => a.map(i => (0, exports.validate)(i)).reduce((rs, r) => rs.add(...r.results), (0, types_1.toResults)()))
@@ -1 +1 @@
1
- {"version":3,"file":"Validate.js","sourceRoot":"","sources":["../../src/validation/Validate.ts"],"names":[],"mappings":";;;AAAA,oCAmBkB;AAElB,iCAA8B;AAC9B,oCAAkC;AAI3B,MAAM,SAAS,GAAG,CAAC,OAAgB,EAAE,QAAc,EAAE,UAA2B,EAAE,EAAW,EAAE,CACpG,IAAA,iBAAS,EAAC,IAAA,gBAAQ,EAAC,IAAA,YAAI,EAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,IAAA,cAAM,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AADlE,QAAA,SAAS,aACyD;AAE/E,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAmB,EAAE,CACvD,IAAA,YAAI,EAAC,OAAO,CAAC;KACV,IAAI,CAAkB,YAAY,CAAC;KACnC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAA,cAAM,GAAa,CAAC,CAAC;AAE7D,MAAM,YAAY,GAAG,CAAC,CAAY,EAAE,OAAiB,EAAW,EAAE,CAChE,IAAA,aAAK,EAAC,GAAG,EAAE,CAAE,OAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;KACtC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;KAC7C,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,iBAAS,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,iBAAS,EAAC,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAA,iBAAS,GAAE,CAAC,CAAC;KAClH,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,iBAAS,EAAC,OAAO,EAAE,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAEzD,MAAM,WAAW,GAAG,CAAC,OAAiB,EAAW,EAAE,CACjD,IAAA,aAAK,EAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;KAC7B,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;KACvD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,IAAA,iBAAS,GAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAEzE,MAAM,QAAQ,GAAG,CAAC,OAAiB,EAAW,EAAE,CACrD,IAAA,cAAM,EAAU,OAAO,CAAC;KACrB,IAAI,CAAC,mBAAW,EAAE,CAAC,CAAC,EAAE,CAAC,IAAA,iBAAS,EAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC;KAC/D,IAAI,CAAC,cAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,iBAAS,GAAE,CAAC,CAAC,CAAC,IAAA,iBAAS,EAAC,CAAC,EAAE,6BAA6B,CAAC,CAAC,CAAC;KAC1F,IAAI,CAAC,eAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,iBAAS,GAAE,CAAC,CAAC,CAAC,IAAA,iBAAS,EAAC,CAAC,EAAE,6BAA6B,CAAC,CAAC,CAAC;KAC3F,IAAI,CAAC,eAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,IAAA,iBAAS,GAAE,CAAC,CAAC;KAChG,IAAI,CAAC,qBAAa,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;KACxC,IAAI,CAAC,IAAA,iBAAS,GAAE,CAAC,CAAC;AAPV,QAAA,QAAQ,YAOE;AAEhB,MAAM,cAAc,GAAG,CAAI,OAAU,EAAc,EAAE,CAAC,IAAA,WAAI,EAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;AAAnF,QAAA,cAAc,kBAAqE"}
1
+ {"version":3,"file":"Validate.js","sourceRoot":"","sources":["../../src/validation/Validate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy",
3
- "version": "9.5.9",
3
+ "version": "10.2.0",
4
4
  "description": "Straightforward library for building domain-driven microservice architectures",
5
5
  "author": "Sander Hoogendoorn",
6
6
  "license": "MIT",
@@ -31,7 +31,7 @@
31
31
  "access": "public"
32
32
  },
33
33
  "devDependencies": {
34
- "@thisisagile/easy-test": "9.5.9",
34
+ "@thisisagile/easy-test": "10.2.0",
35
35
  "@types/form-urlencoded": "^4.4.0",
36
36
  "@types/jsonwebtoken": "^8.5.8",
37
37
  "@types/validator": "^13.7.2"
@@ -1,7 +1,6 @@
1
1
  import { Struct } from './Struct';
2
- import { ctx, Id, isDefined, Json } from '../types';
2
+ import { choose, ctx, Id, isDefined, Json } from '../types';
3
3
  import { required, valid } from '../validation';
4
- import { choose } from '../utils';
5
4
  import { DateTime } from './values';
6
5
 
7
6
  export class Audit extends Struct {
@@ -11,7 +10,7 @@ export class Audit extends Struct {
11
10
  constructor(a?: Json) {
12
11
  super(
13
12
  choose(a)
14
- .type(isDefined, (j: Json) => j)
13
+ .type(isDefined, (j: unknown) => j)
15
14
  .else({ by: ctx.request?.identity ?? { id: 0, user: 'easy' }, when: DateTime.now.toJSON() })
16
15
  );
17
16
  }
@@ -1,5 +1,17 @@
1
- import { Id, isDefined, isError, isResult, isResults, isUndefined, Json, List, Result, toList, toResult } from '../types';
2
- import { choose } from '../utils';
1
+ import {
2
+ choose,
3
+ Id,
4
+ isDefined,
5
+ isError,
6
+ isResult,
7
+ isResults,
8
+ isUndefined,
9
+ Json,
10
+ List,
11
+ Result,
12
+ toList,
13
+ toResult,
14
+ } from '../types';
3
15
  import { HttpStatus, isHttpStatus } from './HttpStatus';
4
16
  import { isResponse } from './Response';
5
17
 
@@ -28,8 +40,8 @@ export const rest = {
28
40
  },
29
41
  }),
30
42
  to: (payload?: any | any[], status?: HttpStatus): RestResult =>
31
- choose<RestResult, any>(payload)
32
- .type(isUndefined, p => p)
43
+ choose(payload)
44
+ .type(isUndefined, () => undefined as unknown as RestResult)
33
45
  .type(isHttpStatus, h => rest.toError(h ?? status ?? HttpStatus.InternalServerError, [toResult(h.name)]))
34
46
  .type(isResult, r => rest.toError(status ?? HttpStatus.BadRequest, [r]))
35
47
  .type(isError, e => rest.toError(status ?? HttpStatus.BadRequest, [e]))
@@ -1,6 +1,6 @@
1
1
  import { Repo, Struct } from '../domain';
2
- import { Id, isNotEmpty, JsonValue, Key, List, toList } from '../types';
3
- import { choose, resolve } from '../utils';
2
+ import { choose, Id, isNotEmpty, JsonValue, Key, List, toList } from '../types';
3
+ import { resolve } from '../utils';
4
4
 
5
5
  export class Search<T extends Struct> {
6
6
  constructor(protected repo: Repo<T>) {}
@@ -14,8 +14,8 @@ export class Search<T extends Struct> {
14
14
  byKey = (key: Key): Promise<List<T>> => this.repo.byKey(key);
15
15
 
16
16
  search = (query: JsonValue): Promise<List<T>> =>
17
- choose<Promise<List<T>>, JsonValue>(query)
18
- .type<JsonValue>(isNotEmpty, q => this.repo.search(q))
17
+ choose(query)
18
+ .case(isNotEmpty, q => this.repo.search(q))
19
19
  .else(resolve(toList<T>()));
20
20
 
21
21
  exists = (id: Id): Promise<boolean> => this.repo.exists(id);
@@ -1,21 +1,36 @@
1
1
  import axios, { AxiosError, AxiosResponse, Method } from 'axios';
2
- import { HttpStatus, HttpVerb, isRestResult, Request, RequestOptions, RequestProvider, Response, toResponse } from '../http';
3
- import { ctx, isDefined, isEmpty, toResult, Uri } from '../types';
4
- import { choose } from '../utils';
2
+ import {
3
+ HttpStatus,
4
+ HttpVerb,
5
+ isRestResult,
6
+ Request,
7
+ RequestOptions,
8
+ RequestProvider,
9
+ Response,
10
+ toResponse,
11
+ } from '../http';
12
+ import { choose, ctx, isDefined, isEmpty, toResult, Uri } from '../types';
5
13
 
6
14
  const isResponse = (a: unknown): a is { response: AxiosResponse } => isDefined((a as any)?.response);
7
15
  const isRequest = (a: unknown): a is { request: any } => isDefined((a as any)?.request);
8
16
 
9
17
  const asResponse = (uri: Uri, verb: HttpVerb, error: AxiosError): Response =>
10
- choose<Response, AxiosError>(error)
18
+ choose(error)
11
19
  .type(isResponse, r =>
12
- toResponse(r.response.status, isRestResult(r.response.data) ? r.response.data : toResult(r.response.statusText, uri.path, uri), r.response.headers)
20
+ toResponse(r.response.status, isRestResult(r.response.data) ? r.response.data : toResult(r.response.statusText, uri.path, uri), r.response.headers),
13
21
  )
14
22
  .type(isRequest, r => toResponse(r.request.status, toResult(r.request.message, uri.path, uri)))
15
23
  .else(e => toResponse(HttpStatus.InternalServerError, toResult(e.message, uri.path, uri)));
16
24
 
17
25
  export class AxiosProvider implements RequestProvider {
18
- execute = ({ uri, verb, body, transform = (r: any) => r, transformError = (r: any) => r, options = RequestOptions.Json }: Request): Promise<Response> =>
26
+ execute = ({
27
+ uri,
28
+ verb,
29
+ body,
30
+ transform = (r: any) => r,
31
+ transformError = (r: any) => r,
32
+ options = RequestOptions.Json,
33
+ }: Request): Promise<Response> =>
19
34
  axios
20
35
  .request({
21
36
  url: uri.toString(),
@@ -0,0 +1,58 @@
1
+ import { Func, Get, ofGet, Predicate, tryTo } from './index';
2
+
3
+ class CaseBuilder<V> {
4
+ constructor(readonly v: V) {
5
+ }
6
+
7
+ case<T>(pred: Predicate<V>, out: Func<T, V>): Case<T, V> {
8
+ return new Case<T, V>(this.v).case(pred, out);
9
+ }
10
+
11
+ type<T, U = unknown>(guard: (u: unknown) => u is U, out: Func<T, U>): Case<T, V> {
12
+ return new Case<T, V>(this.v).type<U>(guard, out);
13
+ }
14
+ }
15
+
16
+ class Case<T, V = unknown> {
17
+ constructor(protected value: V, protected outcome?: T) {}
18
+
19
+ case(pred: Predicate<V>, out: Func<T, V>): Case<T, V> {
20
+ return tryTo(pred, this.value)
21
+ .is.true()
22
+ .map(() => out(this.value))
23
+ .map(res => new Found(this.value, res) as Case<T, V>)
24
+ .or(this);
25
+ }
26
+
27
+ type<U>(guard: (u: unknown) => u is U, out: Func<T, U>): Case<T, V> {
28
+ return tryTo(guard, this.value)
29
+ .is.true()
30
+ .map(() => out(this.value as unknown as U))
31
+ .map(res => new Found(this.value, res) as Case<T, V>)
32
+ .or(this);
33
+ }
34
+
35
+ else(alt: Get<T, V>): T {
36
+ return ofGet<T, V>(alt, this.value);
37
+ }
38
+ }
39
+
40
+ class Found<T, V> extends Case<T, V> {
41
+ constructor(protected value: V, protected outcome: T) {
42
+ super(value, outcome);
43
+ }
44
+
45
+ case(pred: Predicate<V>, out: Func<T, V>): this {
46
+ return this;
47
+ }
48
+
49
+ type<U>(guard: (u: unknown) => u is U, out: Func<T, U>): Case<T, V> {
50
+ return this;
51
+ }
52
+
53
+ else(alt: Get<T, V>): T {
54
+ return this.outcome;
55
+ }
56
+ }
57
+
58
+ export const choose = <V>(value: V) => new CaseBuilder<V>(value);
package/src/types/Is.ts CHANGED
@@ -19,7 +19,7 @@ export const isTrue = (o?: unknown): boolean => (isFunction(o) ? isTrue(o()) : i
19
19
 
20
20
  export const isNumber = (o?: unknown): o is number => isDefined(o) && typeof o === 'number' && !Number.isNaN(o);
21
21
 
22
- export const isObject = (o?: unknown): o is Record<string, unknown> => o != null && (typeof o === 'object' || typeof o === 'function') && !isArray(o);
22
+ export const isObject = (o?: unknown): o is Record<string, unknown> => o != null && (typeof o === 'object') && !isArray(o);
23
23
 
24
24
  export const isEmptyObject = (o?: unknown): boolean => isObject(o) && Object.getOwnPropertyNames(o).length === 0;
25
25
 
@@ -0,0 +1,22 @@
1
+ import { isArray, isObject } from './Is';
2
+ import { choose } from './Case';
3
+
4
+ const isEqualArray = (one: unknown[], another: unknown[]): boolean =>
5
+ choose([one, another])
6
+ .case(([o, a]) => !isArray(o) || !isArray(a), () => false)
7
+ .case(([o, a]) => o?.length !== a?.length, () => false)
8
+ .else(([o, a]) => !o.some((v, i) => !isEqual(v, a[i])));
9
+
10
+ const isEqualObject = (one: any, another: any): boolean =>
11
+ choose([Object.keys(one), Object.keys(another)])
12
+ .case(([keysO, keysA]) => keysO.length !== keysA.length, () => false)
13
+ .case(([keysO, keysA]) => keysO.some(k => !keysA.includes(k)), () => false)
14
+ .case(([keysO]) => keysO.some(k => !isEqual(one[k], another[k])), () => false)
15
+ .else(true);
16
+
17
+ export const isEqual = (one?: unknown, another?: unknown): boolean =>
18
+ choose([one, another])
19
+ .case(([o, a]) => o === a, () => true)
20
+ .case(([o, a]) => isArray(o) || isArray(a), ([o, a]) => isEqualArray(o as [], a as []))
21
+ .case(([o, a]) => o == null || a == null || (!isObject(o) && !isObject(a)), ([o, a]) => o !== o && a !== a)
22
+ .else(([o, a]) => isEqualObject(o, a));
@@ -1,5 +1,6 @@
1
1
  export * from './Array';
2
2
  export * from './Builder';
3
+ export * from './Case';
3
4
  export * from './Constructor';
4
5
  export * from './Context';
5
6
  export * from './Enum';
@@ -13,6 +14,7 @@ export * from './Identity';
13
14
  export * from './Is';
14
15
  export * from './IsA';
15
16
  export * from './IsDate';
17
+ export * from './IsEqual';
16
18
  export * from './Json';
17
19
  export * from './List';
18
20
  export * from './Message';
package/src/utils/View.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { asJson, isArray, isBoolean, isDefined, isFunction, isNumber, isObject, isString, isUndefined, Json, json, meta, tryTo } from '../types';
2
2
  import { traverse } from './Traverse';
3
- import { choose } from './Case';
3
+ import { choose } from '../types';
4
4
 
5
5
  type Func<T = unknown> = (a: any, key?: string) => T;
6
6
 
@@ -18,7 +18,7 @@ const toFunc = (a: any, col: string, f: Func = a => a): Func =>
18
18
  tryTo(traverse(a, col)).map(v => (isArray(v) ? () => v.map(i => f(i)) : (a: any) => f(traverse(a, col)))).value;
19
19
 
20
20
  const toViewer = (key: string, value: unknown): Viewer =>
21
- choose<Viewer>(value)
21
+ choose(value)
22
22
  .type(isUndefined, () => toViewer(key, () => undefined))
23
23
  .type(isBoolean, b => toViewer(key, () => b))
24
24
  .type(isNumber, n => toViewer(key, () => n))
@@ -1,4 +1,3 @@
1
- export * from './Case';
2
1
  export * from './Convert';
3
2
  export * from './If';
4
3
  export * from './Log';
@@ -1,5 +1,5 @@
1
1
  import {
2
- asString,
2
+ asString, choose,
3
3
  isArray,
4
4
  isEnum,
5
5
  isResults,
@@ -20,7 +20,6 @@ import {
20
20
  } from '../types';
21
21
  import { Constraint } from './Contraints';
22
22
  import { when } from './When';
23
- import { choose } from '../utils';
24
23
 
25
24
  export type Validator = { property: string | symbol; constraint: Constraint; text: Text; actual?: Text };
26
25
 
@@ -44,8 +43,8 @@ const constraints = (subject?: unknown): Results =>
44
43
  .map(res => res.reduce((rs, r) => rs.add(...r.results), toResults())).value;
45
44
 
46
45
  export const validate = (subject?: unknown): Results =>
47
- choose<Results>(subject)
48
- .type(isUndefined, u => asResults(u, 'Subject is not defined.'))
46
+ choose(subject)
47
+ .type(isUndefined, () => toResults( 'Subject is not defined.'))
49
48
  .type(isEnum, e => (e.isValid ? toResults() : asResults(e, 'This is not a valid {type}.')))
50
49
  .type(isValue, v => (v.isValid ? toResults() : asResults(v, 'This is not a valid {type}.')))
51
50
  .type(isArray, a => a.map(i => validate(i)).reduce((rs, r) => rs.add(...r.results), toResults()))
@@ -1,19 +0,0 @@
1
- import { Get, Predicate } from '../types';
2
- declare class Case<T, V = unknown> {
3
- protected value: V;
4
- protected outcome?: T | undefined;
5
- constructor(value: V, outcome?: T | undefined);
6
- case(pred: Predicate<V>, out: Get<T, V>): Case<T, V>;
7
- type<U>(pred: (v: unknown) => v is U, out: Get<T, U>): Case<T, V>;
8
- else(alt: Get<T, V>): T;
9
- }
10
- export declare class Found<T, V> extends Case<T, V> {
11
- protected value: V;
12
- protected outcome: T;
13
- constructor(value: V, outcome: T);
14
- case(pred: Predicate<V>, out: Get<T, V>): this;
15
- type<U>(pred: (v: unknown) => v is U, out: Get<T, U>): Case<T, V>;
16
- else(alt: Get<T, V>): T;
17
- }
18
- export declare const choose: <T, V = unknown>(value: V) => Case<T, V>;
19
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"Case.js","sourceRoot":"","sources":["../../src/utils/Case.ts"],"names":[],"mappings":";;;AAAA,oCAAwD;AAExD,MAAM,IAAI;IACR,YAAsB,KAAQ,EAAY,OAAW;QAA/B,UAAK,GAAL,KAAK,CAAG;QAAY,YAAO,GAAP,OAAO,CAAI;IAAG,CAAC;IAEzD,IAAI,CAAC,IAAkB,EAAE,GAAc;QACrC,OAAO,IAAA,aAAK,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;aAC3B,EAAE,CAAC,IAAI,EAAE;aACT,GAAG,CAAC,GAAG,EAAE,CAAC,IAAA,aAAK,EAAO,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aACvC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAe,CAAC;aACpD,EAAE,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IAED,IAAI,CAAI,IAA4B,EAAE,GAAc;QAClD,OAAO,IAAA,aAAK,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;aAC3B,EAAE,CAAC,IAAI,EAAE;aACT,GAAG,CAAC,GAAG,EAAE,CAAC,IAAA,aAAK,EAAO,GAAG,EAAE,IAAI,CAAC,KAAqB,CAAC,CAAC;aACvD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAe,CAAC;aACpD,EAAE,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IAED,IAAI,CAAC,GAAc;QACjB,OAAO,IAAA,aAAK,EAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;CACF;AAED,MAAa,KAAY,SAAQ,IAAU;IACzC,YAAsB,KAAQ,EAAY,OAAU;QAClD,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QADF,UAAK,GAAL,KAAK,CAAG;QAAY,YAAO,GAAP,OAAO,CAAG;IAEpD,CAAC;IAED,IAAI,CAAC,IAAkB,EAAE,GAAc;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAI,IAA4B,EAAE,GAAc;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,GAAc;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AAhBD,sBAgBC;AAEM,MAAM,MAAM,GAAG,CAAiB,KAAQ,EAAc,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAAnE,QAAA,MAAM,UAA6D"}
package/src/utils/Case.ts DELETED
@@ -1,45 +0,0 @@
1
- import { Get, ofGet, Predicate, tryTo } from '../types';
2
-
3
- class Case<T, V = unknown> {
4
- constructor(protected value: V, protected outcome?: T) {}
5
-
6
- case(pred: Predicate<V>, out: Get<T, V>): Case<T, V> {
7
- return tryTo(pred, this.value)
8
- .is.true()
9
- .map(() => ofGet<T, V>(out, this.value))
10
- .map(res => new Found(this.value, res) as Case<T, V>)
11
- .or(this);
12
- }
13
-
14
- type<U>(pred: (v: unknown) => v is U, out: Get<T, U>): Case<T, V> {
15
- return tryTo(pred, this.value)
16
- .is.true()
17
- .map(() => ofGet<T, U>(out, this.value as unknown as U))
18
- .map(res => new Found(this.value, res) as Case<T, V>)
19
- .or(this);
20
- }
21
-
22
- else(alt: Get<T, V>): T {
23
- return ofGet(alt, this.value);
24
- }
25
- }
26
-
27
- export class Found<T, V> extends Case<T, V> {
28
- constructor(protected value: V, protected outcome: T) {
29
- super(value, outcome);
30
- }
31
-
32
- case(pred: Predicate<V>, out: Get<T, V>): this {
33
- return this;
34
- }
35
-
36
- type<U>(pred: (v: unknown) => v is U, out: Get<T, U>): Case<T, V> {
37
- return this;
38
- }
39
-
40
- else(alt: Get<T, V>): T {
41
- return this.outcome;
42
- }
43
- }
44
-
45
- export const choose = <T, V = unknown>(value: V): Case<T, V> => new Case(value);