@thisisagile/easy 8.38.0 → 8.39.2

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.
@@ -5,4 +5,4 @@ export declare class Email extends Value {
5
5
  get name(): string;
6
6
  }
7
7
  export declare const email: (email?: unknown) => Email;
8
- export declare const isEmail: (email?: unknown) => boolean;
8
+ export declare const isEmail: (e?: unknown) => boolean;
@@ -20,8 +20,6 @@ class Email extends types_1.Value {
20
20
  exports.Email = Email;
21
21
  const email = (email) => new Email(email);
22
22
  exports.email = email;
23
- const isEmail = (email) => {
24
- return !(0, types_1.isEmpty)(email) && validator_1.default.isEmail((0, types_1.asString)(email));
25
- };
23
+ const isEmail = (e) => !(0, types_1.isEmpty)(e) && validator_1.default.isEmail((0, types_1.asString)(e));
26
24
  exports.isEmail = isEmail;
27
25
  //# sourceMappingURL=Email.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Email.js","sourceRoot":"","sources":["../../../src/domain/values/Email.ts"],"names":[],"mappings":";;;;;;AAAA,uCAA6D;AAC7D,0DAAkC;AAElC,MAAa,KAAM,SAAQ,aAAK;IAC9B,YAAY,KAAe;QACzB,KAAK,CAAC,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAA,eAAO,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAA,YAAI,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC3E,CAAC;CACF;AAZD,sBAYC;AAEM,MAAM,KAAK,GAAG,CAAC,KAAe,EAAS,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;AAArD,QAAA,KAAK,SAAgD;AAE3D,MAAM,OAAO,GAAG,CAAC,KAAe,EAAW,EAAE;IAClD,OAAO,CAAC,IAAA,eAAO,EAAC,KAAK,CAAC,IAAI,mBAAS,CAAC,OAAO,CAAC,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC;AAC/D,CAAC,CAAC;AAFW,QAAA,OAAO,WAElB"}
1
+ {"version":3,"file":"Email.js","sourceRoot":"","sources":["../../../src/domain/values/Email.ts"],"names":[],"mappings":";;;;;;AAAA,uCAA6D;AAC7D,0DAAkC;AAElC,MAAa,KAAM,SAAQ,aAAK;IAC9B,YAAY,KAAe;QACzB,KAAK,CAAC,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAA,eAAO,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAA,YAAI,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC3E,CAAC;CACF;AAZD,sBAYC;AAEM,MAAM,KAAK,GAAG,CAAC,KAAe,EAAS,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;AAArD,QAAA,KAAK,SAAgD;AAE3D,MAAM,OAAO,GAAG,CAAC,CAAW,EAAW,EAAE,CAAC,CAAC,IAAA,eAAO,EAAC,CAAC,CAAC,IAAI,mBAAS,CAAC,OAAO,CAAC,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC,CAAC;AAAlF,QAAA,OAAO,WAA2E"}
@@ -4,6 +4,7 @@ declare class Case<T, V = unknown> {
4
4
  protected outcome?: T | undefined;
5
5
  constructor(value: V, outcome?: T | undefined);
6
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>;
7
8
  else(alt: Get<T, V>): T;
8
9
  }
9
10
  export declare class Found<T, V> extends Case<T, V> {
@@ -14,6 +14,13 @@ class Case {
14
14
  .map(res => new Found(this.value, res))
15
15
  .or(this);
16
16
  }
17
+ type(pred, out) {
18
+ return (0, types_1.tryTo)(pred, this.value)
19
+ .is.true()
20
+ .map(() => (0, types_1.ofGet)(out, this.value))
21
+ .map(res => new Found(this.value, res))
22
+ .or(this);
23
+ }
17
24
  else(alt) {
18
25
  return (0, types_1.ofGet)(alt, this.value);
19
26
  }
@@ -1 +1 @@
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,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,CAAC,GAAc;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AAZD,sBAYC;AAEM,MAAM,MAAM,GAAG,CAAiB,KAAQ,EAAc,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAAnE,QAAA,MAAM,UAA6D"}
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,CAAC,GAAc;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AAZD,sBAYC;AAEM,MAAM,MAAM,GAAG,CAAiB,KAAQ,EAAc,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAAnE,QAAA,MAAM,UAA6D"}
@@ -1 +1 @@
1
- export declare const traverse: (subject: unknown, property: string) => unknown;
1
+ export declare const traverse: (subject?: unknown, property?: string) => unknown;
@@ -1,12 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.traverse = void 0;
4
- const traverse = (subject = {}, property) => {
4
+ const traverse = (subject = {}, property = '') => {
5
5
  const [p, ...props] = property.split('.');
6
- if (props.length === 0) {
7
- return subject[p ?? ''];
8
- }
9
- return (0, exports.traverse)(subject[p], props.join('.'));
6
+ return (props.length === 0) ? subject[p] : (0, exports.traverse)(subject[p], props.join('.'));
10
7
  };
11
8
  exports.traverse = traverse;
12
9
  //# sourceMappingURL=Traverse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Traverse.js","sourceRoot":"","sources":["../../src/utils/Traverse.ts"],"names":[],"mappings":";;;AAAO,MAAM,QAAQ,GAAG,CAAC,UAAmB,EAAE,EAAE,QAAgB,EAAW,EAAE;IAC3E,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAQ,OAAe,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;KAClC;IACD,OAAO,IAAA,gBAAQ,EAAE,OAAe,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACxD,CAAC,CAAC;AANW,QAAA,QAAQ,YAMnB"}
1
+ {"version":3,"file":"Traverse.js","sourceRoot":"","sources":["../../src/utils/Traverse.ts"],"names":[],"mappings":";;;AAAO,MAAM,QAAQ,GAAG,CAAC,UAAmB,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAW,EAAE;IACxE,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAE,OAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,gBAAQ,EAAE,OAAe,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrG,CAAC,CAAC;AAHW,QAAA,QAAQ,YAGnB"}
@@ -0,0 +1,26 @@
1
+ declare type Func<T = unknown> = (a: any) => T;
2
+ export declare type Viewer = {
3
+ in?: {
4
+ key: string;
5
+ f?: Func;
6
+ };
7
+ out?: {
8
+ key: string;
9
+ f?: Func;
10
+ };
11
+ };
12
+ declare type InOut = {
13
+ in?: Func | View;
14
+ out?: Func | View;
15
+ col?: string;
16
+ };
17
+ declare type Views = {
18
+ [key: string]: string | Func | InOut;
19
+ };
20
+ export declare class View {
21
+ readonly views: Viewer[];
22
+ readonly from: 'scratch' | 'source';
23
+ constructor(views?: Viewer[], from?: 'scratch' | 'source');
24
+ }
25
+ export declare const view: (map: Views, from?: "scratch" | "source" | undefined) => View;
26
+ export {};
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.view = exports.View = void 0;
4
+ class View {
5
+ constructor(views = [], from = 'scratch') {
6
+ this.views = views;
7
+ this.from = from;
8
+ }
9
+ }
10
+ exports.View = View;
11
+ const view = (map, from) => new View([], from);
12
+ exports.view = view;
13
+ //# sourceMappingURL=View.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"View.js","sourceRoot":"","sources":["../../src/utils/View.ts"],"names":[],"mappings":";;;AAOA,MAAa,IAAI;IACf,YAAqB,QAAkB,EAAE,EAAW,OAA6B,SAAS;QAArE,UAAK,GAAL,KAAK,CAAe;QAAW,SAAI,GAAJ,IAAI,CAAkC;IAC1F,CAAC;CACF;AAHD,oBAGC;AAEM,MAAM,IAAI,GAAG,CAAC,GAAU,EAAE,IAA2B,EAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AAA7E,QAAA,IAAI,QAAyE"}
@@ -8,3 +8,4 @@ export * from './Property';
8
8
  export * from './State';
9
9
  export * from './Sentence';
10
10
  export * from './Traverse';
11
+ export * from './View';
@@ -20,4 +20,5 @@ __exportStar(require("./Property"), exports);
20
20
  __exportStar(require("./State"), exports);
21
21
  __exportStar(require("./Sentence"), exports);
22
22
  __exportStar(require("./Traverse"), exports);
23
+ __exportStar(require("./View"), exports);
23
24
  //# sourceMappingURL=index.js.map
@@ -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"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy",
3
- "version": "8.38.0",
3
+ "version": "8.39.2",
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": "8.38.0",
34
+ "@thisisagile/easy-test": "8.39.2",
35
35
  "@types/form-urlencoded": "^4.4.0",
36
36
  "@types/jsonwebtoken": "^8.5.8",
37
37
  "@types/validator": "^13.7.1"
@@ -17,6 +17,4 @@ export class Email extends Value {
17
17
 
18
18
  export const email = (email?: unknown): Email => new Email(email);
19
19
 
20
- export const isEmail = (email?: unknown): boolean => {
21
- return !isEmpty(email) && validator.isEmail(asString(email));
22
- };
20
+ export const isEmail = (e?: unknown): boolean => !isEmpty(e) && validator.isEmail(asString(e));
package/src/utils/Case.ts CHANGED
@@ -11,6 +11,14 @@ class Case<T, V = unknown> {
11
11
  .or(this);
12
12
  }
13
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
+
14
22
  else(alt: Get<T, V>): T {
15
23
  return ofGet(alt, this.value);
16
24
  }
@@ -1,7 +1,4 @@
1
- export const traverse = (subject: unknown = {}, property: string): unknown => {
1
+ export const traverse = (subject: unknown = {}, property = ''): unknown => {
2
2
  const [p, ...props] = property.split('.');
3
- if (props.length === 0) {
4
- return (subject as any)[p ?? ''];
5
- }
6
- return traverse((subject as any)[p], props.join('.'));
3
+ return (props.length === 0) ? (subject as any)[p] : traverse((subject as any)[p], props.join('.'));
7
4
  };
@@ -0,0 +1,13 @@
1
+ type Func<T = unknown> = (a: any) => T;
2
+ export type Viewer = { in?: { key: string, f?: Func }, out?: { key: string, f?: Func } };
3
+
4
+ type InOut = { in?: Func | View, out?: Func | View, col?: string };
5
+ type Views = { [key: string]: string | Func | InOut };
6
+
7
+
8
+ export class View {
9
+ constructor(readonly views: Viewer[] = [], readonly from: 'scratch' | 'source' = 'scratch') {
10
+ }
11
+ }
12
+
13
+ export const view = (map: Views, from?: 'scratch' | 'source'): View => new View([], from);
@@ -8,3 +8,4 @@ export * from './Property';
8
8
  export * from './State';
9
9
  export * from './Sentence';
10
10
  export * from './Traverse';
11
+ export * from './View';