@thisisagile/easy 7.10.0 → 7.10.10

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,4 +1,4 @@
1
- import { Constructor, Gateway, Id, Json, JsonValue, List } from '../types';
1
+ import { Constructor, Gateway, Id, Json, JsonValue, Key, List } from '../types';
2
2
  import { Struct } from './Struct';
3
3
  export declare class Repo<T extends Struct> {
4
4
  protected ctor: Constructor<T>;
@@ -6,6 +6,7 @@ export declare class Repo<T extends Struct> {
6
6
  constructor(ctor: Constructor<T>, gateway: Gateway);
7
7
  all(): Promise<List<T>>;
8
8
  byId(id: Id): Promise<T>;
9
+ byKey(key: Key): Promise<List<T>>;
9
10
  by(key: keyof T, value: JsonValue): Promise<List<T>>;
10
11
  search(q: JsonValue): Promise<List<T>>;
11
12
  exists(id: Id): Promise<boolean>;
@@ -18,6 +18,9 @@ class Repo {
18
18
  .then(j => validation_1.when(j).not.isDefined.reject(types_1.Exception.DoesNotExist))
19
19
  .then(j => new this.ctor(j));
20
20
  }
21
+ byKey(key) {
22
+ return this.gateway.by('key', key).then(js => js.map(j => new this.ctor(j)));
23
+ }
21
24
  by(key, value) {
22
25
  return this.gateway.by(key.toString(), value).then(js => js.map(j => new this.ctor(j)));
23
26
  }
@@ -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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"}
@@ -1,10 +1,11 @@
1
1
  import { Repo, Struct } from '../domain';
2
- import { Id, JsonValue, List } from '../types';
2
+ import { Id, JsonValue, Key, List } from '../types';
3
3
  export declare class Search<T extends Struct> {
4
4
  protected repo: Repo<T>;
5
5
  constructor(repo: Repo<T>);
6
6
  all: () => Promise<List<T>>;
7
7
  byId: (id: Id) => Promise<T>;
8
+ byKey: (key: Key) => Promise<List<T>>;
8
9
  search: (query: JsonValue) => Promise<List<T>>;
9
10
  exists: (id: Id) => Promise<boolean>;
10
11
  }
@@ -8,6 +8,7 @@ class Search {
8
8
  this.repo = repo;
9
9
  this.all = () => this.repo.all();
10
10
  this.byId = (id) => this.repo.byId(id);
11
+ this.byKey = (key) => this.repo.byKey(key);
11
12
  this.search = (query) => utils_1.choose(query)
12
13
  .case(q => types_1.isNotEmpty(q), q => this.repo.search(q))
13
14
  .else(utils_1.resolve(types_1.toList()));
@@ -1 +1 @@
1
- {"version":3,"file":"Search.js","sourceRoot":"","sources":["../../src/process/Search.ts"],"names":[],"mappings":";;;AACA,oCAAmE;AACnE,oCAA2C;AAE3C,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,WAAM,GAAG,CAAC,KAAgB,EAAoB,EAAE,CAC9C,cAAM,CAA8B,KAAK,CAAC;aACvC,IAAI,CACH,CAAC,CAAC,EAAE,CAAC,kBAAU,CAAC,CAAC,CAAC,EAClB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CACzB;aACA,IAAI,CAAC,eAAO,CAAC,cAAM,EAAK,CAAC,CAAC,CAAC;QAEhC,WAAM,GAAG,CAAC,EAAM,EAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAdtB,CAAC;CAexC;AAhBD,wBAgBC"}
1
+ {"version":3,"file":"Search.js","sourceRoot":"","sources":["../../src/process/Search.ts"],"names":[],"mappings":";;;AACA,oCAAwE;AACxE,oCAA2C;AAE3C,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,GAAQ,EAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE7D,WAAM,GAAG,CAAC,KAAgB,EAAoB,EAAE,CAC9C,cAAM,CAA8B,KAAK,CAAC;aACvC,IAAI,CACH,CAAC,CAAC,EAAE,CAAC,kBAAU,CAAC,CAAC,CAAC,EAClB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CACzB;aACA,IAAI,CAAC,eAAO,CAAC,cAAM,EAAK,CAAC,CAAC,CAAC;QAEhC,WAAM,GAAG,CAAC,EAAM,EAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAhBtB,CAAC;CAiBxC;AAlBD,wBAkBC"}
@@ -1,3 +1,4 @@
1
1
  export declare type Id = string | number;
2
- export declare type Code = string | number;
2
+ export declare type Key = Id;
3
+ export declare type Code = Id;
3
4
  export declare const toId: () => Id;
@@ -1 +1 @@
1
- {"version":3,"file":"Id.js","sourceRoot":"","sources":["../../src/types/Id.ts"],"names":[],"mappings":";;;AAAA,iCAAgC;AAKzB,MAAM,IAAI,GAAG,GAAO,EAAE,CAAC,aAAM,EAAE,CAAC;AAA1B,QAAA,IAAI,QAAsB"}
1
+ {"version":3,"file":"Id.js","sourceRoot":"","sources":["../../src/types/Id.ts"],"names":[],"mappings":";;;AAAA,iCAAgC;AAMzB,MAAM,IAAI,GAAG,GAAO,EAAE,CAAC,aAAM,EAAE,CAAC;AAA1B,QAAA,IAAI,QAAsB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy",
3
- "version": "7.10.0",
3
+ "version": "7.10.10",
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": "7.10.0",
34
+ "@thisisagile/easy-test": "7.10.10",
35
35
  "@types/form-urlencoded": "^4.4.0",
36
36
  "@types/jsonwebtoken": "^8.5.5",
37
37
  "@types/validator": "^13.6.3"
@@ -1,4 +1,4 @@
1
- import { Constructor, Exception, Gateway, Id, Json, JsonValue, List, toJson } from '../types';
1
+ import { Constructor, Exception, Gateway, Id, Json, JsonValue, Key, List, toJson } from '../types';
2
2
  import { when } from '../validation';
3
3
  import { reject, resolve } from '../utils';
4
4
  import { Struct } from './Struct';
@@ -17,6 +17,10 @@ export class Repo<T extends Struct> {
17
17
  .then(j => new this.ctor(j));
18
18
  }
19
19
 
20
+ byKey(key: Key): Promise<List<T>> {
21
+ return this.gateway.by('key', key).then(js => js.map(j => new this.ctor(j)));
22
+ }
23
+
20
24
  by(key: keyof T, value: JsonValue): Promise<List<T>> {
21
25
  return this.gateway.by(key.toString(), value).then(js => js.map(j => new this.ctor(j)));
22
26
  }
@@ -1,5 +1,5 @@
1
1
  import { Repo, Struct } from '../domain';
2
- import { Id, isNotEmpty, JsonValue, List, toList } from '../types';
2
+ import { Id, isNotEmpty, JsonValue, Key, List, toList } from '../types';
3
3
  import { choose, resolve } from '../utils';
4
4
 
5
5
  export class Search<T extends Struct> {
@@ -9,6 +9,8 @@ export class Search<T extends Struct> {
9
9
 
10
10
  byId = (id: Id): Promise<T> => this.repo.byId(id);
11
11
 
12
+ byKey = (key: Key): Promise<List<T>> => this.repo.byKey(key);
13
+
12
14
  search = (query: JsonValue): Promise<List<T>> =>
13
15
  choose<Promise<List<T>>, JsonValue>(query)
14
16
  .case(
package/src/types/Id.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { toUuid } from './Uuid';
2
2
 
3
3
  export type Id = string | number;
4
- export type Code = string | number;
4
+ export type Key = Id;
5
+ export type Code = Id;
5
6
 
6
7
  export const toId = (): Id => toUuid();