@thisisagile/easy 15.0.0 → 15.0.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.
@@ -13,7 +13,7 @@ declare class ClassMeta {
13
13
  get: <T>(key: string) => T;
14
14
  set: <T>(key: string, value: T) => T;
15
15
  entries: <T = unknown>() => List<Entry<T>>;
16
- parse: (p: (v: unknown) => unknown, options?: MetaParseOptions) => any;
16
+ parse: <Out, Value>(f: (v: Value) => Out, options?: MetaParseOptions) => Record<string, Out>;
17
17
  properties: (key?: string) => List<PropertyMeta>;
18
18
  keys: <T = any>(key: string) => List<T>;
19
19
  values: <T = unknown>() => List<T>;
@@ -15,12 +15,9 @@ 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, options = {}) => {
18
+ this.parse = (f, options = {}) => {
19
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);
20
+ return this.entries().reduce((a, [k, val]) => (0, Constructor_1.use)(f(val), v => (0, Is_1.isDefined)(v) || !skipUndefined ? (0, Constructor_1.on)(a, a => a[k] = v) : a), initial);
24
21
  };
25
22
  this.properties = (key) => (0, List_1.toList)([...Object.getOwnPropertyNames(this.subject), ...Object.getOwnPropertyNames(Object.getPrototypeOf(this.subject))])
26
23
  .map(p => this.property(p))
@@ -1 +1 @@
1
- {"version":3,"file":"Meta.js","sourceRoot":"","sources":["../../src/types/Meta.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Meta.js","sourceRoot":"","sources":["../../src/types/Meta.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy",
3
- "version": "15.0.0",
3
+ "version": "15.0.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": "15.0.0",
34
+ "@thisisagile/easy-test": "15.0.1",
35
35
  "@types/form-urlencoded": "^4.4.0",
36
36
  "@types/jsonwebtoken": "^8.5.9",
37
37
  "@types/luxon": "3.2.0",
package/src/types/Meta.ts CHANGED
@@ -1,62 +1,61 @@
1
1
  import 'reflect-metadata';
2
- import { List, toList } from './List';
3
- import { isDefined } from './Is';
4
- import { on } from './Constructor';
5
- import { Optional } from './Types';
2
+ import {List, toList} from './List';
3
+ import {isDefined} from './Is';
4
+ import {on, use} from './Constructor';
5
+ import {Optional} from './Types';
6
6
 
7
7
  type MetaParseOptions = { initial?: any; skipUndefined?: boolean };
8
8
 
9
9
  type Entry<T = unknown> = [key: string, value: T];
10
10
 
11
11
  class ClassMeta {
12
- constructor(readonly subject: any, private readonly data: any = (subject.prototype ?? subject).constructor) {}
12
+ constructor(readonly subject: any, private readonly data: any = (subject.prototype ?? subject).constructor) {
13
+ }
13
14
 
14
- get = <T>(key: string): T => Reflect.getMetadata(key, this.data) as T;
15
+ get = <T>(key: string): T => Reflect.getMetadata(key, this.data) as T;
15
16
 
16
- set = <T>(key: string, value: T): T => {
17
- Reflect.defineMetadata(key, value, this.data);
18
- return value;
19
- };
17
+ set = <T>(key: string, value: T): T => {
18
+ Reflect.defineMetadata(key, value, this.data);
19
+ return value;
20
+ };
20
21
 
21
- entries = <T = unknown>(): List<Entry<T>> =>
22
- toList([...Object.entries(this.subject), ...Object.entries(Object.getPrototypeOf(this.subject))]) as List<Entry<T>>;
22
+ entries = <T = unknown>(): List<Entry<T>> =>
23
+ toList([...Object.entries(this.subject), ...Object.entries(Object.getPrototypeOf(this.subject))]) as List<Entry<T>>;
23
24
 
24
- parse = (p: (v: unknown) => unknown, options: MetaParseOptions = {}): any => {
25
- const { initial = {}, skipUndefined = false } = options;
26
- return this.entries().reduce((a, [key, value]) => {
27
- const v = p(value);
28
- return isDefined(v) || !skipUndefined ? on(a, a => (a[key] = v)) : a;
29
- }, initial);
30
- };
25
+ parse = <Out, Value>(f: (v: Value) => Out, options: MetaParseOptions = {}): Record<string, Out> => {
26
+ const {initial = {}, skipUndefined = false} = options;
27
+ return this.entries<Value>().reduce((a, [k, val]) => use(f(val), v => isDefined(v) || !skipUndefined ? on(a, a => a[k] = v) : a), initial);
28
+ };
31
29
 
32
- properties = (key?: string): List<PropertyMeta> =>
33
- toList([...Object.getOwnPropertyNames(this.subject), ...Object.getOwnPropertyNames(Object.getPrototypeOf(this.subject))])
34
- .map(p => this.property(p))
35
- .filter(p => (key ? p.get(key) : p));
30
+ properties = (key?: string): List<PropertyMeta> =>
31
+ toList([...Object.getOwnPropertyNames(this.subject), ...Object.getOwnPropertyNames(Object.getPrototypeOf(this.subject))])
32
+ .map(p => this.property(p))
33
+ .filter(p => (key ? p.get(key) : p));
36
34
 
37
- keys = <T = any>(key: string): List<T> =>
38
- this.properties()
39
- .map(p => p.get<T>(key))
40
- .reduce((list, u) => (u ? list.add(u) : list), toList<T>());
35
+ keys = <T = any>(key: string): List<T> =>
36
+ this.properties()
37
+ .map(p => p.get<T>(key))
38
+ .reduce((list, u) => (u ? list.add(u) : list), toList<T>());
41
39
 
42
- values = <T = unknown>(): List<T> => toList([...Object.values<T>(this.subject), ...Object.values<T>(Object.getPrototypeOf(this.subject))]);
40
+ values = <T = unknown>(): List<T> => toList([...Object.values<T>(this.subject), ...Object.values<T>(Object.getPrototypeOf(this.subject))]);
43
41
 
44
- property = (property: string | symbol): PropertyMeta => new PropertyMeta(this.subject, property);
42
+ property = (property: string | symbol): PropertyMeta => new PropertyMeta(this.subject, property);
45
43
  }
46
44
 
47
45
  class PropertyMeta {
48
- constructor(readonly subject: any, readonly property: string | symbol, private readonly data = Reflect.getMetadata(property, subject)) {}
46
+ constructor(readonly subject: any, readonly property: string | symbol, private readonly data = Reflect.getMetadata(property, subject)) {
47
+ }
49
48
 
50
- get value(): any {
51
- return this.subject[this.property];
52
- }
49
+ get value(): any {
50
+ return this.subject[this.property];
51
+ }
53
52
 
54
- get = <T>(key: string): Optional<T> => (isDefined(this.data) && isDefined(this.data[key]) ? (this.data[key] as T) : undefined);
53
+ get = <T>(key: string): Optional<T> => (isDefined(this.data) && isDefined(this.data[key]) ? (this.data[key] as T) : undefined);
55
54
 
56
- set = <T>(key: string, value: T): T => {
57
- Reflect.defineMetadata(this.property, { ...this.data, [key]: value }, this.subject);
58
- return value;
59
- };
55
+ set = <T>(key: string, value: T): T => {
56
+ Reflect.defineMetadata(this.property, {...this.data, [key]: value}, this.subject);
57
+ return value;
58
+ };
60
59
  }
61
60
 
62
61
  export const meta = (subject: unknown): ClassMeta => new ClassMeta(subject ?? {});