@thisisagile/easy 7.9.0 → 7.10.3
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.
- package/README.md +1 -1
- package/dist/domain/Repo.d.ts +2 -1
- package/dist/domain/Repo.js +3 -0
- package/dist/domain/Repo.js.map +1 -1
- package/dist/process/Search.d.ts +2 -1
- package/dist/process/Search.js +1 -0
- package/dist/process/Search.js.map +1 -1
- package/dist/types/Id.d.ts +2 -1
- package/dist/types/Id.js.map +1 -1
- package/package.json +3 -3
- package/src/domain/Repo.ts +5 -1
- package/src/process/Search.ts +3 -1
- package/src/types/Id.ts +2 -1
package/README.md
CHANGED
|
@@ -227,7 +227,7 @@ Because data in existing databases rarely supplies the format you need in your s
|
|
|
227
227
|
}
|
|
228
228
|
}
|
|
229
229
|
|
|
230
|
-
The `Map
|
|
230
|
+
The `Map` and `Table` classes have a property called `db` that represents the database to connect to. This is usually an instance of the `Database` enumeration, which in its turn defines the database (and its provider) to connect to, as in the example below.
|
|
231
231
|
|
|
232
232
|
export class MyDatabase extends Database {
|
|
233
233
|
static readonly Erp = new Database('openerp', PostgreSqlProvider);
|
package/dist/domain/Repo.d.ts
CHANGED
|
@@ -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>;
|
package/dist/domain/Repo.js
CHANGED
|
@@ -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
|
}
|
package/dist/domain/Repo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Repo.js","sourceRoot":"","sources":["../../src/domain/Repo.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"Repo.js","sourceRoot":"","sources":["../../src/domain/Repo.ts"],"names":[],"mappings":"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"}
|
package/dist/process/Search.d.ts
CHANGED
|
@@ -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
|
}
|
package/dist/process/Search.js
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/types/Id.d.ts
CHANGED
package/dist/types/Id.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Id.js","sourceRoot":"","sources":["../../src/types/Id.ts"],"names":[],"mappings":";;;AAAA,iCAAgC;
|
|
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.
|
|
3
|
+
"version": "7.10.3",
|
|
4
4
|
"description": "Straightforward library for building domain-driven microservice architectures",
|
|
5
5
|
"author": "Sander Hoogendoorn",
|
|
6
6
|
"license": "MIT",
|
|
@@ -31,13 +31,13 @@
|
|
|
31
31
|
"access": "public"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@thisisagile/easy-test": "7.
|
|
34
|
+
"@thisisagile/easy-test": "7.10.3",
|
|
35
35
|
"@types/form-urlencoded": "^4.4.0",
|
|
36
36
|
"@types/jsonwebtoken": "^8.5.5",
|
|
37
|
-
"@types/uuid": "^8.3.1",
|
|
38
37
|
"@types/validator": "^13.6.3"
|
|
39
38
|
},
|
|
40
39
|
"dependencies": {
|
|
40
|
+
"@types/uuid": "^8.3.1",
|
|
41
41
|
"axios": "^0.21.1",
|
|
42
42
|
"form-urlencoded": "^6.0.4",
|
|
43
43
|
"jsonwebtoken": "^8.5.1",
|
package/src/domain/Repo.ts
CHANGED
|
@@ -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
|
}
|
package/src/process/Search.ts
CHANGED
|
@@ -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(
|