@thisisagile/easy 15.8.0 → 15.8.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.
@@ -14,7 +14,7 @@ exports.json = {
14
14
  (0, utils_1.ifDefined)(subject, () => delete subject[key]);
15
15
  return subject;
16
16
  },
17
- set: (subject, key = '', value) => (0, Is_1.isEmpty)(key) ? subject : (0, Is_1.isDefined)(value) ? { ...subject, ...{ [key]: value } } : exports.json.delete(subject, key),
17
+ set: (subject, key = '', value) => (0, Is_1.isEmpty)(key) ? subject : value !== undefined ? { ...subject, ...{ [key]: value } } : exports.json.delete(subject, key),
18
18
  omit: (subject, ...keys) => keys.reduce((js, k) => exports.json.delete(js, k), exports.json.parse(subject)),
19
19
  defaults: (options = {}, defaults = {}) => exports.json.merge(defaults, options),
20
20
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Json.js","sourceRoot":"","sources":["../../src/types/Json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Json.js","sourceRoot":"","sources":["../../src/types/Json.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.views = exports.view = exports.isSimpleView = exports.View = exports.toViewer = void 0;
4
4
  const types_1 = require("../types");
5
5
  const Traverse_1 = require("./Traverse");
6
+ const If_1 = require("./If");
6
7
  const ignore = Symbol('view.ignore');
7
8
  const keep = Symbol('view.keep');
8
9
  const toViewer = (key, value) => (0, types_1.choose)(value)
@@ -13,12 +14,13 @@ const toViewer = (key, value) => (0, types_1.choose)(value)
13
14
  .type(types_1.isString, s => ({ key, f: (a) => (0, Traverse_1.traverse)(a, s) }))
14
15
  .type(types_1.isConstructor, c => ({
15
16
  key,
16
- f: (a, key) => (0, types_1.use)((0, Traverse_1.traverse)(a, key), v => ((0, types_1.isArray)(v) ? v.map(i => new c(i)) : new c(v))),
17
+ f: (a, key) => (0, types_1.use)((0, Traverse_1.traverse)(a, key), v => ((0, types_1.isArray)(v) ? v.map(i => optional(c, i)) : optional(c, v))),
17
18
  }))
18
19
  .type(exports.isSimpleView, f => ({ key, f: (a) => f.from((0, Traverse_1.traverse)(a, key)) }))
19
20
  .type(types_1.isFunction, f => ({ key, f }))
20
21
  .else(v => ({ key, f: () => v }));
21
22
  exports.toViewer = toViewer;
23
+ const optional = (c, v) => (0, If_1.ifDefined)(v, i => new c(i), () => v);
22
24
  const toViewers = (views) => (0, types_1.meta)(views)
23
25
  .entries()
24
26
  .map(([k, v]) => (0, exports.toViewer)(k, v));
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy",
3
- "version": "15.8.0",
3
+ "version": "15.8.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": "15.8.0",
34
+ "@thisisagile/easy-test": "15.8.2",
35
35
  "@types/form-urlencoded": "^4.4.0",
36
36
  "@types/jsonwebtoken": "^9.0.2",
37
37
  "@types/luxon": "3.2.0",
package/src/types/Json.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { isA } from './IsA';
2
- import { isDefined, isEmpty, isObject } from './Is';
2
+ import { isEmpty, isObject } from './Is';
3
3
  import { Get, ofGet } from './Get';
4
4
  import { ifDefined } from '../utils';
5
5
  import { TypeGuard } from './TypeGuard';
@@ -18,7 +18,7 @@ export const json = {
18
18
  return subject;
19
19
  },
20
20
  set: <T extends Json = Json>(subject: T, key = '', value?: unknown): T =>
21
- isEmpty(key) ? subject : isDefined(value) ? { ...(subject as any), ...{ [key]: value as Json } } : json.delete(subject, key),
21
+ isEmpty(key) ? subject : value !== undefined ? { ...(subject as any), ...{ [key]: value as JsonValue } } : json.delete(subject, key),
22
22
  omit: <T extends Json = Json>(subject: T, ...keys: string[]): T => keys.reduce((js, k) => json.delete(js, k), json.parse<T>(subject)),
23
23
  defaults: <T extends Json = Json>(options: Partial<T> = {}, defaults: Partial<T> = {}): T => json.merge(defaults, options) as T,
24
24
  };
package/src/utils/View.ts CHANGED
@@ -20,6 +20,7 @@ import {
20
20
  use,
21
21
  } from '../types';
22
22
  import { traverse } from './Traverse';
23
+ import { ifDefined } from './If';
23
24
 
24
25
  type Func<T = unknown> = (a: any, key?: string) => T;
25
26
  type Viewer = { key: string; f: Func };
@@ -39,19 +40,27 @@ export const toViewer = (key: string, value: ViewType): Viewer =>
39
40
  .type(isString, s => ({ key, f: (a: any) => traverse(a, s) }))
40
41
  .type(isConstructor, c => ({
41
42
  key,
42
- f: (a, key) => use(traverse(a, key), v => (isArray(v) ? v.map(i => new c(i)) : new c(v))),
43
+ f: (a, key) => use(traverse(a, key), v => (isArray(v) ? v.map(i => optional(c, i)) : optional(c, v))),
43
44
  }))
44
45
  .type(isSimpleView, f => ({ key, f: (a: any) => f.from(traverse(a, key)) }))
45
46
  .type(isFunction, f => ({ key, f }))
46
47
  .else(v => ({ key, f: () => v }));
47
48
 
49
+ const optional = (c: Constructor, v: any) =>
50
+ ifDefined(
51
+ v,
52
+ i => new c(i),
53
+ () => v,
54
+ );
55
+
48
56
  const toViewers = (views: ViewRecord): Viewer[] =>
49
57
  meta(views)
50
58
  .entries<ViewType>()
51
59
  .map(([k, v]) => toViewer(k, v));
52
60
 
53
61
  export class View<V = Json> {
54
- constructor(private views = {} as ViewRecord<V>, readonly startsFrom: 'scratch' | 'source' = 'scratch', readonly viewers: Viewer[] = toViewers(views)) {}
62
+ constructor(private views = {} as ViewRecord<V>, readonly startsFrom: 'scratch' | 'source' = 'scratch', readonly viewers: Viewer[] = toViewers(views)) {
63
+ }
55
64
 
56
65
  get fromSource(): View<V> {
57
66
  return new View(this.views, 'source', this.viewers);
@@ -65,7 +74,7 @@ export class View<V = Json> {
65
74
  if (isPageList(source))
66
75
  return toPageList(
67
76
  source.map(s => this.reduce(s)),
68
- source
77
+ source,
69
78
  );
70
79
  if (isArray(source)) return source.map(s => this.reduce(s));
71
80
  return this.reduce(source);