@thisisagile/easy 8.38.0 → 8.38.1

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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy",
3
- "version": "8.38.0",
3
+ "version": "8.38.1",
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.38.1",
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
  }