@thisisagile/easy 10.11.5 → 10.11.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,5 +1,6 @@
1
1
  import { Repo, Struct } from '../domain';
2
2
  import { Id, JsonValue, Key, PageList, PageOptions } from '../types';
3
+ import { Req } from '../resources';
3
4
  export declare class Search<T extends Struct> {
4
5
  protected repo: Repo<T>;
5
6
  constructor(repo: Repo<T>);
@@ -7,6 +8,7 @@ export declare class Search<T extends Struct> {
7
8
  byId: (id: Id) => Promise<T>;
8
9
  byIds: (...ids: Id[]) => Promise<PageList<T>>;
9
10
  byKey: (key: Key, options?: PageOptions | undefined) => Promise<PageList<T>>;
11
+ query: ({ query, skip, take }: Req) => Promise<PageList<T>>;
10
12
  search: (query: JsonValue, options?: PageOptions | undefined) => Promise<PageList<T>>;
11
13
  exists: (id: Id) => Promise<boolean>;
12
14
  }
@@ -10,6 +10,7 @@ class Search {
10
10
  this.byId = (id) => this.repo.byId(id);
11
11
  this.byIds = (...ids) => this.repo.byIds(...ids);
12
12
  this.byKey = (key, options) => this.repo.byKey(key, options);
13
+ this.query = ({ query, skip, take }) => this.search(query, { skip, take });
13
14
  this.search = (query, options) => (0, types_1.choose)(query)
14
15
  .case(types_1.isNotEmpty, q => this.repo.search(q, options))
15
16
  .else((0, utils_1.resolve)((0, types_1.toList)()));
@@ -1 +1 @@
1
- {"version":3,"file":"Search.js","sourceRoot":"","sources":["../../src/process/Search.ts"],"names":[],"mappings":";;;AACA,oCAAiG;AACjG,oCAAmC;AAGnC,MAAa,MAAM;IACjB,YAAsB,IAAa;QAAb,SAAI,GAAJ,IAAI,CAAS;QAEnC,QAAG,GAAG,CAAC,OAAqB,EAAwB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE9E,SAAI,GAAG,CAAC,EAAM,EAAc,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAElD,UAAK,GAAG,CAAC,GAAG,GAAS,EAAwB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;QAExE,UAAK,GAAG,CAAC,GAAQ,EAAC,OAAqB,EAAwB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAEhG,WAAM,GAAG,CAAC,KAAgB,EAAE,OAAqB,EAAwB,EAAE,CACzE,IAAA,cAAM,EAAC,KAAK,CAAC;aACV,IAAI,CAAC,kBAAU,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;aACnD,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,oCAAiG;AACjG,oCAAmC;AAInC,MAAa,MAAM;IACjB,YAAsB,IAAa;QAAb,SAAI,GAAJ,IAAI,CAAS;QAEnC,QAAG,GAAG,CAAC,OAAqB,EAAwB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE9E,SAAI,GAAG,CAAC,EAAM,EAAc,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAElD,UAAK,GAAG,CAAC,GAAG,GAAS,EAAwB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;QAExE,UAAK,GAAG,CAAC,GAAQ,EAAC,OAAqB,EAAwB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAEhG,UAAK,GAAG,CAAC,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAM,EAAwB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;QAE7F,WAAM,GAAG,CAAC,KAAgB,EAAE,OAAqB,EAAwB,EAAE,CACzE,IAAA,cAAM,EAAC,KAAK,CAAC;aACV,IAAI,CAAC,kBAAU,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;aACnD,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;IAjBtB,CAAC;CAkBxC;AAnBD,wBAmBC"}
@@ -6,8 +6,8 @@ export declare class Req implements Omit<PageOptions, 'sort'> {
6
6
  constructor(path: Json, query: Json, body: unknown);
7
7
  get id(): Id;
8
8
  get q(): JsonValue;
9
- readonly skip: number;
10
- readonly take: number;
9
+ readonly skip: number | undefined;
10
+ readonly take: number | undefined;
11
11
  get: (key: Text) => any;
12
12
  }
13
13
  export declare const toReq: (req: {
@@ -2,13 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.toReq = exports.Req = void 0;
4
4
  const types_1 = require("../types");
5
+ const utils_1 = require("../utils");
5
6
  class Req {
6
7
  constructor(path = {}, query = {}, body) {
7
8
  this.path = path;
8
9
  this.query = query;
9
10
  this.body = body;
10
- this.skip = (0, types_1.asNumber)(this.query?.skip);
11
- this.take = (0, types_1.asNumber)(this.query?.take);
11
+ this.skip = (0, utils_1.ifDefined)(this.query?.skip, (0, types_1.asNumber)(this.query?.skip));
12
+ this.take = (0, utils_1.ifDefined)(this.query?.take, (0, types_1.asNumber)(this.query?.take));
12
13
  this.get = (key) => this.path[key.toString()] ?? this.query[key.toString()];
13
14
  }
14
15
  get id() {
@@ -1 +1 @@
1
- {"version":3,"file":"Req.js","sourceRoot":"","sources":["../../src/resources/Req.ts"],"names":[],"mappings":";;;AAAA,oCAA4E;AAE5E,MAAa,GAAG;IACd,YAAqB,OAAa,EAAE,EAAW,QAAc,EAAE,EAAW,IAAa;QAAlE,SAAI,GAAJ,IAAI,CAAW;QAAW,UAAK,GAAL,KAAK,CAAW;QAAW,SAAI,GAAJ,IAAI,CAAS;QAU9E,SAAI,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAClC,SAAI,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAE3C,QAAG,GAAG,CAAC,GAAS,EAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAbQ,CAAC;IAE3F,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;CAMF;AAfD,kBAeC;AAEM,MAAM,KAAK,GAAG,CAAC,GAA2E,EAAO,EAAE,CACxG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAc,EAAE,GAAG,CAAC,KAAa,EAAE,GAAG,CAAC,IAAY,CAAC,CAAC;AADtD,QAAA,KAAK,SACiD"}
1
+ {"version":3,"file":"Req.js","sourceRoot":"","sources":["../../src/resources/Req.ts"],"names":[],"mappings":";;;AAAA,oCAA4E;AAC5E,oCAAqC;AAErC,MAAa,GAAG;IACd,YAAqB,OAAa,EAAE,EAAW,QAAc,EAAE,EAAW,IAAa;QAAlE,SAAI,GAAJ,IAAI,CAAW;QAAW,UAAK,GAAL,KAAK,CAAW;QAAW,SAAI,GAAJ,IAAI,CAAS;QAU9E,SAAI,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAA,gBAAQ,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/D,SAAI,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAA,gBAAQ,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAExE,QAAG,GAAG,CAAC,GAAS,EAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAbQ,CAAC;IAE3F,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;CAMF;AAfD,kBAeC;AAEM,MAAM,KAAK,GAAG,CAAC,GAA2E,EAAO,EAAE,CACxG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAc,EAAE,GAAG,CAAC,KAAa,EAAE,GAAG,CAAC,IAAY,CAAC,CAAC;AADtD,QAAA,KAAK,SACiD"}
@@ -15,6 +15,18 @@ declare abstract class Try<T = unknown> implements Validatable {
15
15
  valid: (prop?: Func<unknown, T> | undefined) => Try<T>;
16
16
  };
17
17
  };
18
+ if: {
19
+ defined: (prop?: Func<unknown, T> | undefined) => Try<T>;
20
+ empty: (prop?: Func<unknown, T> | undefined) => Try<T>;
21
+ valid: (prop?: Func<unknown, T> | undefined) => Try<T>;
22
+ true: (prop?: Func<unknown, T> | undefined) => Try<T>;
23
+ false: (prop?: Func<unknown, T> | undefined) => Try<T>;
24
+ not: {
25
+ defined: (prop?: Func<unknown, T> | undefined) => Try<T>;
26
+ empty: (prop?: Func<unknown, T> | undefined) => Try<T>;
27
+ valid: (prop?: Func<unknown, T> | undefined) => Try<T>;
28
+ };
29
+ };
18
30
  abstract get value(): T;
19
31
  abstract get error(): Error;
20
32
  abstract get isValid(): boolean;
package/dist/types/Try.js CHANGED
@@ -19,6 +19,7 @@ class Try {
19
19
  valid: (prop) => this.filter(v => !(0, validation_1.validate)(prop ? prop(v) : v).isValid),
20
20
  },
21
21
  };
22
+ this.if = this.is;
22
23
  }
23
24
  }
24
25
  Try.of = (c, ...args) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Try.js","sourceRoot":"","sources":["../../src/types/Try.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Try.js","sourceRoot":"","sources":["../../src/types/Try.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.11.5",
3
+ "version": "10.11.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": "10.11.5",
34
+ "@thisisagile/easy-test": "10.11.10",
35
35
  "@types/form-urlencoded": "^4.4.0",
36
36
  "@types/jsonwebtoken": "^8.5.8",
37
37
  "@types/validator": "^13.7.2"
@@ -1,6 +1,7 @@
1
1
  import { Repo, Struct } from '../domain';
2
2
  import { choose, Id, isNotEmpty, JsonValue, Key, toList, PageList, PageOptions } from '../types';
3
3
  import { resolve } from '../utils';
4
+ import { Req } from '../resources';
4
5
 
5
6
 
6
7
  export class Search<T extends Struct> {
@@ -14,6 +15,8 @@ export class Search<T extends Struct> {
14
15
 
15
16
  byKey = (key: Key,options?: PageOptions): Promise<PageList<T>> => this.repo.byKey(key, options);
16
17
 
18
+ query = ({query, skip, take}: Req): Promise<PageList<T>> => this.search(query, {skip, take});
19
+
17
20
  search = (query: JsonValue, options?: PageOptions): Promise<PageList<T>> =>
18
21
  choose(query)
19
22
  .case(isNotEmpty, q => this.repo.search(q, options))
@@ -1,4 +1,5 @@
1
1
  import { asNumber, Id, Json, JsonValue, PageOptions, Text } from '../types';
2
+ import { ifDefined } from '../utils';
2
3
 
3
4
  export class Req implements Omit<PageOptions, 'sort'> {
4
5
  constructor(readonly path: Json = {}, readonly query: Json = {}, readonly body: unknown) {}
@@ -11,8 +12,8 @@ export class Req implements Omit<PageOptions, 'sort'> {
11
12
  return this.get('q');
12
13
  }
13
14
 
14
- readonly skip = asNumber(this.query?.skip);
15
- readonly take = asNumber(this.query?.take);
15
+ readonly skip = ifDefined(this.query?.skip, asNumber(this.query?.skip));
16
+ readonly take = ifDefined(this.query?.take, asNumber(this.query?.take));
16
17
 
17
18
  get = (key: Text): any => this.path[key.toString()] ?? this.query[key.toString()];
18
19
  }
package/src/types/Try.ts CHANGED
@@ -6,6 +6,7 @@ import { Get, ofGet } from './Get';
6
6
  import { Func } from './Func';
7
7
 
8
8
  abstract class Try<T = unknown> implements Validatable {
9
+
9
10
  is = {
10
11
  defined: (prop?: Func<unknown, T>): Try<T> => this.filter(v => isDefined(prop ? prop(v) : v)),
11
12
  empty: (prop?: Func<unknown, T>): Try<T> => this.filter(v => isEmpty(prop ? prop(v) : v)),
@@ -19,6 +20,8 @@ abstract class Try<T = unknown> implements Validatable {
19
20
  },
20
21
  };
21
22
 
23
+ if = this.is;
24
+
22
25
  abstract get value(): T;
23
26
 
24
27
  abstract get error(): Error;