@thisisagile/easy 12.19.14 → 12.20.0
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/dist/sql/TableGateway.d.ts +12 -8
- package/dist/sql/TableGateway.js +16 -11
- package/dist/sql/TableGateway.js.map +1 -1
- package/dist/types/Text.d.ts +1 -1
- package/dist/types/Text.js +1 -1
- package/dist/types/Text.js.map +1 -1
- package/package.json +2 -2
- package/src/sql/TableGateway.ts +21 -13
- package/src/types/Text.ts +1 -1
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
import { Gateway, Id, Json, List } from '../types';
|
|
1
|
+
import { Gateway, Id, Json, List, PageOptions } from '../types';
|
|
2
2
|
import { QueryProvider } from '../data';
|
|
3
3
|
import { Table } from './Table';
|
|
4
|
-
export declare
|
|
4
|
+
export declare type TableOptions = PageOptions & {
|
|
5
|
+
provider?: QueryProvider;
|
|
6
|
+
};
|
|
7
|
+
export declare class TableGateway<T extends Table> extends Gateway<PageOptions> {
|
|
5
8
|
readonly table: T;
|
|
6
9
|
readonly provider: QueryProvider;
|
|
7
10
|
constructor(table: T, provider?: QueryProvider);
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
protected provide: ({ provider }?: TableOptions) => QueryProvider;
|
|
12
|
+
all(options?: TableOptions): Promise<List<Json>>;
|
|
13
|
+
byId(id: Id, options?: TableOptions): Promise<Json | undefined>;
|
|
14
|
+
exists(id: Id, options?: TableOptions): Promise<boolean>;
|
|
15
|
+
add(item: Json, options?: TableOptions): Promise<Json>;
|
|
16
|
+
remove(id: Id, options?: TableOptions): Promise<boolean>;
|
|
17
|
+
update(item: Json, options?: TableOptions): Promise<Json>;
|
|
14
18
|
}
|
package/dist/sql/TableGateway.js
CHANGED
|
@@ -9,30 +9,35 @@ class TableGateway extends types_1.Gateway {
|
|
|
9
9
|
super();
|
|
10
10
|
this.table = table;
|
|
11
11
|
this.provider = provider;
|
|
12
|
+
this.provide = ({ provider } = {}) => provider ?? this.provider;
|
|
12
13
|
}
|
|
13
|
-
all() {
|
|
14
|
-
return this.
|
|
14
|
+
all(options) {
|
|
15
|
+
return this.provide(options)
|
|
16
|
+
.query(this.table.select())
|
|
17
|
+
.then(js => js.map(j => this.table.in(j)));
|
|
15
18
|
}
|
|
16
|
-
byId(id) {
|
|
17
|
-
return this.
|
|
19
|
+
byId(id, options) {
|
|
20
|
+
return this.provide(options)
|
|
18
21
|
.query(this.table.select().where(this.table.id.is(id)))
|
|
19
22
|
.then(js => js.first())
|
|
20
23
|
.then(j => (0, utils_1.ifDefined)(j, this.table.in(j)));
|
|
21
24
|
}
|
|
22
|
-
exists(id) {
|
|
25
|
+
exists(id, options) {
|
|
23
26
|
return this.byId(id).then(j => (0, types_1.isDefined)(j));
|
|
24
27
|
}
|
|
25
|
-
add(item) {
|
|
26
|
-
return this.
|
|
28
|
+
add(item, options) {
|
|
29
|
+
return this.provide(options)
|
|
27
30
|
.query(this.table.insert(item))
|
|
28
31
|
.then(js => (0, validation_1.when)(js.first()).not.isDefined.reject(`Could not add items with id ${item.id}`))
|
|
29
32
|
.then(j => this.table.in(j));
|
|
30
33
|
}
|
|
31
|
-
remove(id) {
|
|
32
|
-
return this.
|
|
34
|
+
remove(id, options) {
|
|
35
|
+
return this.provide(options)
|
|
36
|
+
.command(this.table.delete().where(this.table.id.is(id)))
|
|
37
|
+
.then(() => true);
|
|
33
38
|
}
|
|
34
|
-
update(item) {
|
|
35
|
-
return this.
|
|
39
|
+
update(item, options) {
|
|
40
|
+
return this.provide(options)
|
|
36
41
|
.query(this.table.update(item).where(this.table.id.is(item.id)))
|
|
37
42
|
.then(js => (0, validation_1.when)(js.first()).not.isDefined.reject(`Could not update item with id ${item.id}`))
|
|
38
43
|
.then(j => this.table.in(j));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableGateway.js","sourceRoot":"","sources":["../../src/sql/TableGateway.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"TableGateway.js","sourceRoot":"","sources":["../../src/sql/TableGateway.ts"],"names":[],"mappings":"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"}
|
package/dist/types/Text.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export declare type Text = {
|
|
|
6
6
|
export declare const isText: (t?: unknown) => t is Text;
|
|
7
7
|
export declare const asString: (t?: unknown, alt?: Get<Text>) => string;
|
|
8
8
|
export declare const replaceAll: (origin: Text, search: Text, replace?: Text) => string;
|
|
9
|
-
export declare const kebab: (s
|
|
9
|
+
export declare const kebab: (s?: string) => string;
|
|
10
10
|
export declare class ToText implements Text {
|
|
11
11
|
readonly subject: string;
|
|
12
12
|
constructor(subject: string);
|
package/dist/types/Text.js
CHANGED
|
@@ -13,7 +13,7 @@ const asString = (t, alt = '') => ((0, exports.isText)(t) ? t : (0, Get_1.ofGet)
|
|
|
13
13
|
exports.asString = asString;
|
|
14
14
|
const replaceAll = (origin, search, replace = '') => (0, exports.asString)(origin).split((0, exports.asString)(search)).join((0, exports.asString)(replace));
|
|
15
15
|
exports.replaceAll = replaceAll;
|
|
16
|
-
const kebab = (s) => s
|
|
16
|
+
const kebab = (s = '') => s
|
|
17
17
|
.replace(/[^a-z\d]+/gi, '-')
|
|
18
18
|
.replace(/-$/, '')
|
|
19
19
|
.replace(/^-/, '')
|
package/dist/types/Text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.js","sourceRoot":"","sources":["../../src/types/Text.ts"],"names":[],"mappings":";;;AAAA,6BAAsD;AACtD,+CAAuC;AACvC,yCAAsC;AACtC,iCAAgC;AAChC,+BAAmC;AACnC,iCAAgC;AAKzB,MAAM,MAAM,GAAG,CAAC,CAAW,EAAa,EAAE,CAAC,IAAA,cAAS,EAAC,CAAC,CAAC,IAAI,IAAA,aAAM,EAAe,CAAS,CAAC,QAAQ,CAAC,CAAC;AAA9F,QAAA,MAAM,UAAwF;AAEpG,MAAM,QAAQ,GAAG,CAAC,CAAW,EAAE,MAAiB,EAAE,EAAU,EAAE,CAAC,CAAC,IAAA,cAAM,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,WAAK,EAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAAjG,QAAA,QAAQ,YAAyF;AAEvG,MAAM,UAAU,GAAG,CAAC,MAAY,EAAE,MAAY,EAAE,UAAgB,EAAE,EAAU,EAAE,CAAC,IAAA,gBAAQ,EAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAA,gBAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,gBAAQ,EAAC,OAAO,CAAC,CAAC,CAAC;AAA1I,QAAA,UAAU,cAAgI;AAEhJ,MAAM,KAAK,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"Text.js","sourceRoot":"","sources":["../../src/types/Text.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thisisagile/easy",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.20.0",
|
|
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": "12.
|
|
34
|
+
"@thisisagile/easy-test": "12.20.0",
|
|
35
35
|
"@types/form-urlencoded": "^4.4.0",
|
|
36
36
|
"@types/jsonwebtoken": "^8.5.9",
|
|
37
37
|
"@types/luxon": "3.1.0",
|
package/src/sql/TableGateway.ts
CHANGED
|
@@ -1,42 +1,50 @@
|
|
|
1
|
-
import { Gateway, Id, isDefined, Json, List } from '../types';
|
|
1
|
+
import { Gateway, Id, isDefined, Json, List, PageOptions } from '../types';
|
|
2
2
|
import { QueryProvider } from '../data';
|
|
3
3
|
import { when } from '../validation';
|
|
4
4
|
import { ifDefined } from '../utils';
|
|
5
5
|
import { Table } from './Table';
|
|
6
6
|
|
|
7
|
-
export
|
|
7
|
+
export type TableOptions = PageOptions & { provider?: QueryProvider };
|
|
8
|
+
|
|
9
|
+
export class TableGateway<T extends Table> extends Gateway<PageOptions> {
|
|
8
10
|
constructor(readonly table: T, readonly provider = table.db.provide<QueryProvider>()) {
|
|
9
11
|
super();
|
|
10
12
|
}
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
+
protected provide = ({ provider }: TableOptions = {}): QueryProvider => provider ?? this.provider;
|
|
15
|
+
|
|
16
|
+
all(options?: TableOptions): Promise<List<Json>> {
|
|
17
|
+
return this.provide(options)
|
|
18
|
+
.query(this.table.select())
|
|
19
|
+
.then(js => js.map(j => this.table.in(j)));
|
|
14
20
|
}
|
|
15
21
|
|
|
16
|
-
byId(id: Id): Promise<Json | undefined> {
|
|
17
|
-
return this.
|
|
22
|
+
byId(id: Id, options?: TableOptions): Promise<Json | undefined> {
|
|
23
|
+
return this.provide(options)
|
|
18
24
|
.query(this.table.select().where(this.table.id.is(id)))
|
|
19
25
|
.then(js => js.first())
|
|
20
26
|
.then(j => ifDefined(j, this.table.in(j)));
|
|
21
27
|
}
|
|
22
28
|
|
|
23
|
-
exists(id: Id): Promise<boolean> {
|
|
29
|
+
exists(id: Id, options?: TableOptions): Promise<boolean> {
|
|
24
30
|
return this.byId(id).then(j => isDefined(j));
|
|
25
31
|
}
|
|
26
32
|
|
|
27
|
-
add(item: Json): Promise<Json> {
|
|
28
|
-
return this.
|
|
33
|
+
add(item: Json, options?: TableOptions): Promise<Json> {
|
|
34
|
+
return this.provide(options)
|
|
29
35
|
.query(this.table.insert(item))
|
|
30
36
|
.then(js => when(js.first()).not.isDefined.reject(`Could not add items with id ${item.id}`))
|
|
31
37
|
.then(j => this.table.in(j));
|
|
32
38
|
}
|
|
33
39
|
|
|
34
|
-
remove(id: Id): Promise<boolean> {
|
|
35
|
-
return this.
|
|
40
|
+
remove(id: Id, options?: TableOptions): Promise<boolean> {
|
|
41
|
+
return this.provide(options)
|
|
42
|
+
.command(this.table.delete().where(this.table.id.is(id)))
|
|
43
|
+
.then(() => true);
|
|
36
44
|
}
|
|
37
45
|
|
|
38
|
-
update(item: Json): Promise<Json> {
|
|
39
|
-
return this.
|
|
46
|
+
update(item: Json, options?: TableOptions): Promise<Json> {
|
|
47
|
+
return this.provide(options)
|
|
40
48
|
.query(this.table.update(item).where(this.table.id.is(item.id)))
|
|
41
49
|
.then(js => when(js.first()).not.isDefined.reject(`Could not update item with id ${item.id}`))
|
|
42
50
|
.then(j => this.table.in(j));
|
package/src/types/Text.ts
CHANGED
|
@@ -14,7 +14,7 @@ export const asString = (t?: unknown, alt: Get<Text> = ''): string => (isText(t)
|
|
|
14
14
|
|
|
15
15
|
export const replaceAll = (origin: Text, search: Text, replace: Text = ''): string => asString(origin).split(asString(search)).join(asString(replace));
|
|
16
16
|
|
|
17
|
-
export const kebab = (s
|
|
17
|
+
export const kebab = (s = ''): string =>
|
|
18
18
|
s
|
|
19
19
|
.replace(/[^a-z\d]+/gi, '-')
|
|
20
20
|
.replace(/-$/, '')
|