@thisisagile/easy 10.4.0 → 10.5.8

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,16 +1,16 @@
1
- import { Constructor, Gateway, Id, Json, JsonValue, Key, List } from '../types';
1
+ import { Constructor, Gateway, Id, Json, JsonValue, Key, TotalledList } from '../types';
2
2
  import { Struct } from './Struct';
3
3
  export declare class Repo<T extends Struct> {
4
4
  protected ctor: Constructor<T>;
5
5
  private readonly gateway;
6
6
  constructor(ctor: Constructor<T>, gateway: Gateway);
7
7
  create: (item: T | Json) => T;
8
- all(): Promise<List<T>>;
8
+ all(): Promise<TotalledList<T>>;
9
9
  byId(id: Id): Promise<T>;
10
- byIds(...ids: Id[]): Promise<List<T>>;
11
- byKey(key: Key): Promise<List<T>>;
12
- by(key: keyof T, value: JsonValue): Promise<List<T>>;
13
- search(q: JsonValue): Promise<List<T>>;
10
+ byIds(...ids: Id[]): Promise<TotalledList<T>>;
11
+ byKey(key: Key): Promise<TotalledList<T>>;
12
+ by(key: keyof T, value: JsonValue): Promise<TotalledList<T>>;
13
+ search(q: JsonValue): Promise<TotalledList<T>>;
14
14
  exists(id: Id): Promise<boolean>;
15
15
  add(t: T | Json): Promise<T>;
16
16
  update(id: Id, json: Json): Promise<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"Repo.js","sourceRoot":"","sources":["../../src/domain/Repo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Repo.js","sourceRoot":"","sources":["../../src/domain/Repo.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export declare type RestResult = {
5
5
  code: number;
6
6
  items: List<Json>;
7
7
  itemCount: number;
8
+ totalItems?: number;
8
9
  };
9
10
  error?: {
10
11
  code: number;
@@ -1,12 +1,12 @@
1
1
  import { Repo, Struct } from '../domain';
2
- import { Id, JsonValue, Key, List } from '../types';
2
+ import { Id, JsonValue, Key, TotalledList } from '../types';
3
3
  export declare class Search<T extends Struct> {
4
4
  protected repo: Repo<T>;
5
5
  constructor(repo: Repo<T>);
6
- all: () => Promise<List<T>>;
6
+ all: () => Promise<TotalledList<T>>;
7
7
  byId: (id: Id) => Promise<T>;
8
- byIds: (...ids: Id[]) => Promise<List<T>>;
9
- byKey: (key: Key) => Promise<List<T>>;
10
- search: (query: JsonValue) => Promise<List<T>>;
8
+ byIds: (...ids: Id[]) => Promise<TotalledList<T>>;
9
+ byKey: (key: Key) => Promise<TotalledList<T>>;
10
+ search: (query: JsonValue) => Promise<TotalledList<T>>;
11
11
  exists: (id: Id) => Promise<boolean>;
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Search.js","sourceRoot":"","sources":["../../src/process/Search.ts"],"names":[],"mappings":";;;AACA,oCAAgF;AAChF,oCAAmC;AAEnC,MAAa,MAAM;IACjB,YAAsB,IAAa;QAAb,SAAI,GAAJ,IAAI,CAAS;QAEnC,QAAG,GAAG,GAAqB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAE9C,SAAI,GAAG,CAAC,EAAM,EAAc,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAElD,UAAK,GAAG,CAAC,GAAG,GAAS,EAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;QAEpE,UAAK,GAAG,CAAC,GAAQ,EAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE7D,WAAM,GAAG,CAAC,KAAgB,EAAoB,EAAE,CAC9C,IAAA,cAAM,EAAC,KAAK,CAAC;aACV,IAAI,CAAC,kBAAU,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aAC1C,IAAI,CAAC,IAAA,eAAO,EAAC,IAAA,cAAM,GAAK,CAAC,CAAC,CAAC;QAEhC,WAAM,GAAG,CAAC,EAAM,EAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAftB,CAAC;CAgBxC;AAjBD,wBAiBC"}
1
+ {"version":3,"file":"Search.js","sourceRoot":"","sources":["../../src/process/Search.ts"],"names":[],"mappings":";;;AACA,oCAAwF;AACxF,oCAAmC;AAEnC,MAAa,MAAM;IACjB,YAAsB,IAAa;QAAb,SAAI,GAAJ,IAAI,CAAS;QAGnC,QAAG,GAAG,GAA6B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAEtD,SAAI,GAAG,CAAC,EAAM,EAAc,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAElD,UAAK,GAAG,CAAC,GAAG,GAAS,EAA4B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;QAE5E,UAAK,GAAG,CAAC,GAAQ,EAA4B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAErE,WAAM,GAAG,CAAC,KAAgB,EAA4B,EAAE,CACtD,IAAA,cAAM,EAAC,KAAK,CAAC;aACV,IAAI,CAAC,kBAAU,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aAC1C,IAAI,CAAC,IAAA,eAAO,EAAC,IAAA,cAAM,GAAK,CAAC,CAAC,CAAC;QAEhC,WAAM,GAAG,CAAC,EAAM,EAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAf5D,CAAC;CAgBF;AAlBD,wBAkBC"}
@@ -1,12 +1,12 @@
1
- import { List } from './List';
1
+ import { TotalledList } from './List';
2
2
  import { Json, JsonValue } from './Json';
3
3
  import { Id } from './Id';
4
4
  export declare abstract class Gateway {
5
- all(): Promise<List<Json>>;
5
+ all(): Promise<TotalledList<Json>>;
6
6
  byId(id: Id): Promise<Json | undefined>;
7
- by(key: string, value: JsonValue): Promise<List<Json>>;
8
- byIds(...ids: Id[]): Promise<List<Json>>;
9
- search(q: JsonValue): Promise<List<Json>>;
7
+ by(key: string, value: JsonValue): Promise<TotalledList<Json>>;
8
+ byIds(...ids: Id[]): Promise<TotalledList<Json>>;
9
+ search(q: JsonValue): Promise<TotalledList<Json>>;
10
10
  exists(id: Id): Promise<boolean>;
11
11
  add(item: Json): Promise<Json>;
12
12
  update(item: Json): Promise<Json>;
@@ -13,10 +13,10 @@ export declare class List<T = unknown> extends Array<T> {
13
13
  last: (p?: ((value: T, index: number, array: T[]) => unknown) | undefined, params?: unknown) => T;
14
14
  isLast: (value: T) => boolean;
15
15
  overlaps: (...items: ArrayLike<T>) => boolean;
16
- diff: (items: ArrayLike<T>) => List<T>;
17
- diffByKey: (items: ArrayLike<T>, key?: string) => List<T>;
18
- interSect: (items: ArrayLike<T>) => List<T>;
19
- interSectByKey: (items: ArrayLike<T>, key?: string) => List<T>;
16
+ diff: (others: ArrayLike<T>) => List<T>;
17
+ diffByKey: (others: ArrayLike<T>, key: keyof T) => List<T>;
18
+ intersect: (others: ArrayLike<T>) => List<T>;
19
+ intersectByKey: (others: ArrayLike<T>, key: keyof T) => List<T>;
20
20
  toJSON: () => Json[];
21
21
  map: <U>(f: (value: T, index: number, array: T[]) => U, params?: unknown) => List<U>;
22
22
  flatMap: <U, This = unknown>(f: (this: This, value: T, index: number, array: T[]) => U | readonly U[], params?: This | undefined) => List<U>;
@@ -36,3 +36,6 @@ export declare class List<T = unknown> extends Array<T> {
36
36
  export declare const toList: <T = unknown>(...items: ArrayLike<T>) => List<T>;
37
37
  export declare const isList: <T>(l?: unknown) => l is List<T>;
38
38
  export declare const asList: <T>(c: Constructor<T>, items?: unknown | unknown[]) => List<T>;
39
+ export declare type TotalledList<T> = List<T> & {
40
+ total?: number;
41
+ };
@@ -19,10 +19,10 @@ class List extends Array {
19
19
  this.last = (p, params) => (p ? this.filter(p, params).last() : this[this.length - 1]);
20
20
  this.isLast = (value) => value === this.last();
21
21
  this.overlaps = (...items) => (0, exports.toList)(...items).some(i => this.some(t => i === t));
22
- this.diff = (items) => this.filter(i => !items.includes(i));
23
- this.diffByKey = (items, key = 'id') => this.filter((i) => !items.some((ii) => Object.keys(i).includes(key) && Object.keys(ii).includes(key) && ii[key] === i[key]));
24
- this.interSect = (items) => this.filter(i => items.includes(i));
25
- this.interSectByKey = (items, key = 'id') => this.filter((i) => items.some((ii) => Object.keys(i).includes(key) && Object.keys(ii).includes(key) && ii[key] === i[key]));
22
+ this.diff = (others) => this.filter(i => !others.includes(i));
23
+ this.diffByKey = (others, key) => this.filter((i) => !others.some((o) => o[key] === i[key]));
24
+ this.intersect = (others) => this.filter(i => others.includes(i));
25
+ this.intersectByKey = (others, key) => this.filter((i) => others.some((o) => o[key] === i[key]));
26
26
  this.toJSON = () => this.reduce((a, i) => {
27
27
  a.push(Json_1.json.parse(i));
28
28
  return a;
@@ -1 +1 @@
1
- {"version":3,"file":"List.js","sourceRoot":"","sources":["../../src/types/List.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"List.js","sourceRoot":"","sources":["../../src/types/List.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy",
3
- "version": "10.4.0",
3
+ "version": "10.5.8",
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": "10.4.0",
34
+ "@thisisagile/easy-test": "10.5.8",
35
35
  "@types/form-urlencoded": "^4.4.0",
36
36
  "@types/jsonwebtoken": "^8.5.8",
37
37
  "@types/validator": "^13.7.2"
@@ -1,14 +1,27 @@
1
- import { asList, Constructor, Exception, Gateway, Id, isValidatable, Json, JsonValue, Key, List, toJson } from '../types';
1
+ import {
2
+ asList,
3
+ Constructor,
4
+ Exception,
5
+ Gateway,
6
+ Id,
7
+ isValidatable,
8
+ Json,
9
+ JsonValue,
10
+ Key,
11
+ toJson,
12
+ TotalledList,
13
+ } from '../types';
2
14
  import { when } from '../validation';
3
15
  import { reject, resolve } from '../utils';
4
16
  import { Struct } from './Struct';
5
17
 
6
18
  export class Repo<T extends Struct> {
7
- constructor(protected ctor: Constructor<T>, private readonly gateway: Gateway) {}
19
+ constructor(protected ctor: Constructor<T>, private readonly gateway: Gateway) {
20
+ }
8
21
 
9
22
  create = (item: T | Json): T => (isValidatable(item) ? item : new this.ctor(item));
10
23
 
11
- all(): Promise<List<T>> {
24
+ all(): Promise<TotalledList<T>> {
12
25
  return this.gateway.all().then(js => js.map(j => new this.ctor(j)));
13
26
  }
14
27
 
@@ -19,19 +32,19 @@ export class Repo<T extends Struct> {
19
32
  .then(j => new this.ctor(j));
20
33
  }
21
34
 
22
- byIds(...ids: Id[]): Promise<List<T>> {
35
+ byIds(...ids: Id[]): Promise<TotalledList<T>> {
23
36
  return this.gateway.byIds(...ids).then(j => asList(this.ctor, j));
24
37
  }
25
38
 
26
- byKey(key: Key): Promise<List<T>> {
39
+ byKey(key: Key): Promise<TotalledList<T>> {
27
40
  return this.gateway.by('key', key).then(js => js.map(j => new this.ctor(j)));
28
41
  }
29
42
 
30
- by(key: keyof T, value: JsonValue): Promise<List<T>> {
43
+ by(key: keyof T, value: JsonValue): Promise<TotalledList<T>> {
31
44
  return this.gateway.by(key.toString(), value).then(js => js.map(j => new this.ctor(j)));
32
45
  }
33
46
 
34
- search(q: JsonValue): Promise<List<T>> {
47
+ search(q: JsonValue): Promise<TotalledList<T>> {
35
48
  return this.gateway.search(q).then(js => js.map(j => new this.ctor(j)));
36
49
  }
37
50
 
@@ -16,7 +16,7 @@ import { HttpStatus, isHttpStatus } from './HttpStatus';
16
16
  import { isResponse } from './Response';
17
17
 
18
18
  export type RestResult = {
19
- data?: { code: number; items: List<Json>; itemCount: number };
19
+ data?: { code: number; items: List<Json>; itemCount: number; totalItems?: number };
20
20
  error?: { code: number; message: string; errorCount: number; errors: List<Result> };
21
21
  };
22
22
 
@@ -1,19 +1,20 @@
1
1
  import { Repo, Struct } from '../domain';
2
- import { choose, Id, isNotEmpty, JsonValue, Key, List, toList } from '../types';
2
+ import { choose, Id, isNotEmpty, JsonValue, Key, toList, TotalledList } from '../types';
3
3
  import { resolve } from '../utils';
4
4
 
5
5
  export class Search<T extends Struct> {
6
- constructor(protected repo: Repo<T>) {}
6
+ constructor(protected repo: Repo<T>) {
7
+ }
7
8
 
8
- all = (): Promise<List<T>> => this.repo.all();
9
+ all = (): Promise<TotalledList<T>> => this.repo.all();
9
10
 
10
11
  byId = (id: Id): Promise<T> => this.repo.byId(id);
11
12
 
12
- byIds = (...ids: Id[]): Promise<List<T>> => this.repo.byIds(...ids);
13
+ byIds = (...ids: Id[]): Promise<TotalledList<T>> => this.repo.byIds(...ids);
13
14
 
14
- byKey = (key: Key): Promise<List<T>> => this.repo.byKey(key);
15
+ byKey = (key: Key): Promise<TotalledList<T>> => this.repo.byKey(key);
15
16
 
16
- search = (query: JsonValue): Promise<List<T>> =>
17
+ search = (query: JsonValue): Promise<TotalledList<T>> =>
17
18
  choose(query)
18
19
  .case(isNotEmpty, q => this.repo.search(q))
19
20
  .else(resolve(toList<T>()));
@@ -1,11 +1,11 @@
1
- import { List } from './List';
1
+ import { TotalledList } from './List';
2
2
  import { Json, JsonValue } from './Json';
3
3
  import { Id } from './Id';
4
4
  import { Exception } from './Exception';
5
5
  import { reject } from '../utils';
6
6
 
7
7
  export abstract class Gateway {
8
- all(): Promise<List<Json>> {
8
+ all(): Promise<TotalledList<Json>> {
9
9
  return reject(Exception.IsNotImplemented);
10
10
  }
11
11
 
@@ -13,15 +13,15 @@ export abstract class Gateway {
13
13
  return reject(Exception.IsNotImplemented);
14
14
  }
15
15
 
16
- by(key: string, value: JsonValue): Promise<List<Json>> {
16
+ by(key: string, value: JsonValue): Promise<TotalledList<Json>> {
17
17
  return reject(Exception.IsNotImplemented);
18
18
  }
19
19
 
20
- byIds(...ids: Id[]): Promise<List<Json>> {
20
+ byIds(...ids: Id[]): Promise<TotalledList<Json>> {
21
21
  return reject(Exception.IsNotImplemented);
22
22
  }
23
23
 
24
- search(q: JsonValue): Promise<List<Json>> {
24
+ search(q: JsonValue): Promise<TotalledList<Json>> {
25
25
  return reject(Exception.IsNotImplemented);
26
26
  }
27
27
 
package/src/types/List.ts CHANGED
@@ -26,15 +26,14 @@ export class List<T = unknown> extends Array<T> {
26
26
 
27
27
  overlaps = (...items: ArrayLike<T>): boolean => toList<T>(...items).some(i => this.some(t => i === t));
28
28
 
29
- diff = (items: ArrayLike<T>): List<T> => this.filter(i => !items.includes(i));
29
+ diff = (others: ArrayLike<T>): List<T> => this.filter(i => !others.includes(i));
30
30
 
31
- diffByKey = (items: ArrayLike<T>, key = 'id'): List<T> =>
32
- this.filter((i: any) => !items.some((ii: any) => Object.keys(i).includes(key) && Object.keys(ii).includes(key) && ii[key] === i[key]));
31
+ diffByKey = (others: ArrayLike<T>, key: keyof T): List<T> =>
32
+ this.filter((i: any) => !others.some((o: any) => o[key] === i[key]));
33
33
 
34
- interSect = (items: ArrayLike<T>): List<T> => this.filter(i => items.includes(i));
34
+ intersect = (others: ArrayLike<T>): List<T> => this.filter(i => others.includes(i));
35
35
 
36
- interSectByKey = (items: ArrayLike<T>, key = 'id'): List<T> =>
37
- this.filter((i: any) => items.some((ii: any) => Object.keys(i).includes(key) && Object.keys(ii).includes(key) && ii[key] === i[key]));
36
+ intersectByKey = (others: ArrayLike<T>, key: keyof T): List<T> => this.filter((i: any) => others.some((o: any) => o[key] === i[key]));
38
37
 
39
38
  toJSON = (): Json[] =>
40
39
  this.reduce((a, i) => {
@@ -85,5 +84,7 @@ export const toList = <T = unknown>(...items: ArrayLike<T>): List<T> => new List
85
84
 
86
85
  export const isList = <T>(l?: unknown): l is List<T> => isDefined(l) && isArray(l) && isA<List<T>>(l, 'first', 'last', 'asc', 'desc');
87
86
 
88
- // export const asList = <T>(c: Constructor<T>, items: unknown[] = []): List<T> => toList<T>(items.map(i => new c(i)));
89
87
  export const asList = <T>(c: Constructor<T>, items: unknown | unknown[] = []): List<T> => toList<T>(toArray(items).map(i => new c(i)));
88
+
89
+
90
+ export type TotalledList<T> = List<T> & {total?: number};