@thisisagile/easy 12.18.6 → 12.18.9

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,5 +1,9 @@
1
1
  import 'reflect-metadata';
2
2
  import { List } from './List';
3
+ declare type MetaParseOptions = {
4
+ initial?: any;
5
+ skipUndefined?: boolean;
6
+ };
3
7
  declare class ClassMeta {
4
8
  readonly subject: any;
5
9
  private readonly data;
@@ -7,7 +11,7 @@ declare class ClassMeta {
7
11
  get: <T>(key: string) => T;
8
12
  set: <T>(key: string, value: T) => T;
9
13
  entries: <T = unknown>() => List<[key: string, value: T]>;
10
- parse: (p: (v: unknown) => unknown, initial?: any) => any;
14
+ parse: (p: (v: unknown) => unknown, options?: MetaParseOptions) => any;
11
15
  properties: (key?: string) => List<PropertyMeta>;
12
16
  keys: <T = any>(key: string) => List<T>;
13
17
  values: <T = unknown>() => List<T>;
@@ -15,7 +15,13 @@ class ClassMeta {
15
15
  return value;
16
16
  };
17
17
  this.entries = () => (0, List_1.toList)([...Object.entries(this.subject), ...Object.entries(Object.getPrototypeOf(this.subject))]);
18
- this.parse = (p, initial = {}) => this.entries().reduce((a, [key, value]) => (0, Constructor_1.on)(a, a => (a[key] = p(value))), initial);
18
+ this.parse = (p, options = {}) => {
19
+ const { initial = {}, skipUndefined = false } = options;
20
+ return this.entries().reduce((a, [key, value]) => {
21
+ const v = p(value);
22
+ return (0, Is_1.isDefined)(v) || !skipUndefined ? (0, Constructor_1.on)(a, a => (a[key] = v)) : a;
23
+ }, initial);
24
+ };
19
25
  this.properties = (key) => (0, List_1.toList)([...Object.getOwnPropertyNames(this.subject), ...Object.getOwnPropertyNames(Object.getPrototypeOf(this.subject))])
20
26
  .map(p => this.property(p))
21
27
  .filter(p => (key ? p.get(key) : p));
@@ -1 +1 @@
1
- {"version":3,"file":"Meta.js","sourceRoot":"","sources":["../../src/types/Meta.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAC1B,iCAAsC;AACtC,6BAAiC;AACjC,+CAAmC;AAEnC,MAAM,SAAS;IACb,YAAqB,OAAY,EAAmB,OAAY,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC,WAAW;QAArF,YAAO,GAAP,OAAO,CAAK;QAAmB,SAAI,GAAJ,IAAI,CAAkD;QAE1G,QAAG,GAAG,CAAI,GAAW,EAAK,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAM,CAAC;QAEtE,QAAG,GAAG,CAAI,GAAW,EAAE,KAAQ,EAAK,EAAE;YACpC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,YAAO,GAAG,GAA+C,EAAE,CACzD,IAAA,aAAM,EAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAmB,CAAC;QAEtH,UAAK,GAAG,CAAC,CAA0B,EAAE,UAAe,EAAE,EAAO,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAA,gBAAE,EAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAErJ,eAAU,GAAG,CAAC,GAAY,EAAsB,EAAE,CAChD,IAAA,aAAM,EAAC,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aACtH,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzC,SAAI,GAAG,CAAU,GAAW,EAAW,EAAE,CACvC,IAAI,CAAC,UAAU,EAAE;aACd,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC;aACvB,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAA,aAAM,GAAK,CAAC,CAAC;QAEhE,WAAM,GAAG,GAAyB,EAAE,CAAC,IAAA,aAAM,EAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAI,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3I,aAAQ,GAAG,CAAC,QAAyB,EAAgB,EAAE,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IA1BY,CAAC;CA2B/G;AAED,MAAM,YAAY;IAChB,YAAqB,OAAY,EAAW,QAAyB,EAAmB,OAAO,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC;QAAhH,YAAO,GAAP,OAAO,CAAK;QAAW,aAAQ,GAAR,QAAQ,CAAiB;QAAmB,SAAI,GAAJ,IAAI,CAAyC;QAMrI,QAAG,GAAG,CAAI,GAAW,EAAiB,EAAE,CAAC,CAAC,IAAA,cAAS,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAA,cAAS,EAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAEjI,QAAG,GAAG,CAAI,GAAW,EAAE,KAAQ,EAAK,EAAE;YACpC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACpF,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;IAXsI,CAAC;IAEzI,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;CAQF;AAEM,MAAM,IAAI,GAAG,CAAC,OAAgB,EAAa,EAAE,CAAC,IAAI,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;AAArE,QAAA,IAAI,QAAiE"}
1
+ {"version":3,"file":"Meta.js","sourceRoot":"","sources":["../../src/types/Meta.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,4 @@ import { Construct } from '../types';
2
2
  export declare const ifTrue: <T>(o: unknown, f: Construct<T>, alt?: Construct<T> | undefined) => T | undefined;
3
3
  export declare const ifFalse: <T>(o: unknown, f: Construct<T>, alt?: Construct<T> | undefined) => T | undefined;
4
4
  export declare const ifDefined: <T>(o: unknown, f: Construct<T>, alt?: Construct<T> | undefined) => T | undefined;
5
- export declare const ifNotEmpty: <T>(o: unknown, f: Construct<T>, alt?: Construct<T> | undefined) => T | undefined;
5
+ export declare const ifNotEmpty: <T>(o: unknown, f?: Construct<T>, alt?: Construct<T> | undefined) => T | undefined;
package/dist/utils/If.js CHANGED
@@ -8,6 +8,6 @@ const ifFalse = (o, f, alt) => (!(0, types_1.isTrue)(o) ? (0, types_1.ofConstruc
8
8
  exports.ifFalse = ifFalse;
9
9
  const ifDefined = (o, f, alt) => ((0, types_1.isDefined)(o) ? (0, types_1.ofConstruct)(f, o) : (0, types_1.ofConstruct)(alt, o));
10
10
  exports.ifDefined = ifDefined;
11
- const ifNotEmpty = (o, f, alt) => ((0, types_1.isNotEmpty)(o) ? (0, types_1.ofConstruct)(f, o) : (0, types_1.ofConstruct)(alt, o));
11
+ const ifNotEmpty = (o, f = o => o, alt) => (0, types_1.isNotEmpty)(o) ? (0, types_1.ofConstruct)(f, o) : (0, types_1.ofConstruct)(alt, o);
12
12
  exports.ifNotEmpty = ifNotEmpty;
13
13
  //# sourceMappingURL=If.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"If.js","sourceRoot":"","sources":["../../src/utils/If.ts"],"names":[],"mappings":";;;AAAA,oCAAiF;AAE1E,MAAM,MAAM,GAAG,CAAI,CAAU,EAAE,CAAe,EAAE,GAAkB,EAAiB,EAAE,CAAC,CAAC,IAAA,cAAM,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAAtI,QAAA,MAAM,UAAgI;AAC5I,MAAM,OAAO,GAAG,CAAI,CAAU,EAAE,CAAe,EAAE,GAAkB,EAAiB,EAAE,CAAC,CAAC,CAAC,IAAA,cAAM,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAAxI,QAAA,OAAO,WAAiI;AAC9I,MAAM,SAAS,GAAG,CAAI,CAAU,EAAE,CAAe,EAAE,GAAkB,EAAiB,EAAE,CAAC,CAAC,IAAA,iBAAS,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAA5I,QAAA,SAAS,aAAmI;AAClJ,MAAM,UAAU,GAAG,CAAI,CAAU,EAAE,CAAe,EAAE,GAAkB,EAAiB,EAAE,CAAC,CAAC,IAAA,kBAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAA9I,QAAA,UAAU,cAAoI"}
1
+ {"version":3,"file":"If.js","sourceRoot":"","sources":["../../src/utils/If.ts"],"names":[],"mappings":";;;AAAA,oCAAiF;AAE1E,MAAM,MAAM,GAAG,CAAI,CAAU,EAAE,CAAe,EAAE,GAAkB,EAAiB,EAAE,CAAC,CAAC,IAAA,cAAM,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAAtI,QAAA,MAAM,UAAgI;AAC5I,MAAM,OAAO,GAAG,CAAI,CAAU,EAAE,CAAe,EAAE,GAAkB,EAAiB,EAAE,CAAC,CAAC,CAAC,IAAA,cAAM,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAAxI,QAAA,OAAO,WAAiI;AAC9I,MAAM,SAAS,GAAG,CAAI,CAAU,EAAE,CAAe,EAAE,GAAkB,EAAiB,EAAE,CAAC,CAAC,IAAA,iBAAS,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAA5I,QAAA,SAAS,aAAmI;AAClJ,MAAM,UAAU,GAAG,CAAI,CAAU,EAAE,IAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAkB,EAAiB,EAAE,CACvG,IAAA,kBAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAD7C,QAAA,UAAU,cACmC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy",
3
- "version": "12.18.6",
3
+ "version": "12.18.9",
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": "12.18.6",
34
+ "@thisisagile/easy-test": "12.18.9",
35
35
  "@types/form-urlencoded": "^4.4.0",
36
36
  "@types/jsonwebtoken": "^8.5.9",
37
37
  "@types/luxon": "3.1.0",
package/src/types/Meta.ts CHANGED
@@ -3,6 +3,8 @@ import { List, toList } from './List';
3
3
  import { isDefined } from './Is';
4
4
  import { on } from './Constructor';
5
5
 
6
+ type MetaParseOptions = { initial?: any; skipUndefined?: boolean };
7
+
6
8
  class ClassMeta {
7
9
  constructor(readonly subject: any, private readonly data: any = (subject.prototype ?? subject).constructor) {}
8
10
 
@@ -16,7 +18,13 @@ class ClassMeta {
16
18
  entries = <T = unknown>(): List<[key: string, value: T]> =>
17
19
  toList([...Object.entries(this.subject), ...Object.entries(Object.getPrototypeOf(this.subject))]) as List<[any, T]>;
18
20
 
19
- parse = (p: (v: unknown) => unknown, initial: any = {}): any => this.entries().reduce((a, [key, value]) => on(a, a => (a[key] = p(value))), initial);
21
+ parse = (p: (v: unknown) => unknown, options: MetaParseOptions = {}): any => {
22
+ const { initial = {}, skipUndefined = false } = options;
23
+ return this.entries().reduce((a, [key, value]) => {
24
+ const v = p(value);
25
+ return isDefined(v) || !skipUndefined ? on(a, a => (a[key] = v)) : a;
26
+ }, initial);
27
+ };
20
28
 
21
29
  properties = (key?: string): List<PropertyMeta> =>
22
30
  toList([...Object.getOwnPropertyNames(this.subject), ...Object.getOwnPropertyNames(Object.getPrototypeOf(this.subject))])
package/src/utils/If.ts CHANGED
@@ -3,4 +3,5 @@ import { Construct, isDefined, isNotEmpty, isTrue, ofConstruct } from '../types'
3
3
  export const ifTrue = <T>(o: unknown, f: Construct<T>, alt?: Construct<T>): T | undefined => (isTrue(o) ? ofConstruct(f, o) : ofConstruct(alt, o));
4
4
  export const ifFalse = <T>(o: unknown, f: Construct<T>, alt?: Construct<T>): T | undefined => (!isTrue(o) ? ofConstruct(f, o) : ofConstruct(alt, o));
5
5
  export const ifDefined = <T>(o: unknown, f: Construct<T>, alt?: Construct<T>): T | undefined => (isDefined(o) ? ofConstruct(f, o) : ofConstruct(alt, o));
6
- export const ifNotEmpty = <T>(o: unknown, f: Construct<T>, alt?: Construct<T>): T | undefined => (isNotEmpty(o) ? ofConstruct(f, o) : ofConstruct(alt, o));
6
+ export const ifNotEmpty = <T>(o: unknown, f: Construct<T> = o => o, alt?: Construct<T>): T | undefined =>
7
+ isNotEmpty(o) ? ofConstruct(f, o) : ofConstruct(alt, o);