@thisisagile/easy 11.6.11 → 11.7.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.
@@ -6,6 +6,7 @@ export declare type RestResult = {
6
6
  items: List<Json>;
7
7
  itemCount: number;
8
8
  totalItems?: number;
9
+ meta?: List<Json>;
9
10
  };
10
11
  error?: {
11
12
  code: number;
@@ -15,7 +16,7 @@ export declare type RestResult = {
15
16
  };
16
17
  };
17
18
  export declare const rest: {
18
- toData: (status: HttpStatus, items?: Json[], totalItems?: number) => RestResult;
19
+ toData: (status: HttpStatus, items?: Json[], totalItems?: number, meta?: Json[]) => RestResult;
19
20
  toError: (status: HttpStatus, errors?: Result[]) => RestResult;
20
21
  to: (payload?: any | any[], status?: HttpStatus) => RestResult;
21
22
  };
@@ -7,12 +7,13 @@ const Response_1 = require("./Response");
7
7
  const hasErrors = (a) => (0, types_1.isDefined)(a?.error?.errors);
8
8
  const hasItems = (a) => (0, types_1.isDefined)(a?.data.items);
9
9
  exports.rest = {
10
- toData: (status, items = [], totalItems) => ({
10
+ toData: (status, items = [], totalItems, meta) => ({
11
11
  data: {
12
12
  code: status.status,
13
13
  items: (0, types_1.toList)(items),
14
14
  itemCount: items.length,
15
15
  totalItems,
16
+ meta: meta ? (0, types_1.toList)(meta) : undefined,
16
17
  },
17
18
  }),
18
19
  toError: (status, errors = [(0, types_1.toResult)(status.name)]) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"RestResult.js","sourceRoot":"","sources":["../../src/http/RestResult.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RestResult.js","sourceRoot":"","sources":["../../src/http/RestResult.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,20 @@ export declare type Sort = {
4
4
  key: string;
5
5
  value: -1 | 1;
6
6
  };
7
+ export declare type FilterValue = {
8
+ label: string;
9
+ value: any;
10
+ };
11
+ export declare type Filter = {
12
+ label: string;
13
+ field: string;
14
+ values: FilterValue[];
15
+ };
7
16
  export declare type PageOptions = {
8
17
  take?: number;
9
18
  skip?: number;
10
19
  sort?: Sort[];
20
+ filters?: Filter[];
11
21
  };
12
22
  export declare type PageList<T> = List<T> & Omit<PageOptions, 'sort'> & {
13
23
  total?: number;
@@ -11,6 +11,7 @@ const toPageList = (items, options) => {
11
11
  list.take = options?.take ?? 250;
12
12
  list.skip = options?.skip ?? 0;
13
13
  list.total = options?.total;
14
+ list.filters = options?.filters;
14
15
  return list;
15
16
  };
16
17
  exports.toPageList = toPageList;
@@ -1 +1 @@
1
- {"version":3,"file":"PageList.js","sourceRoot":"","sources":["../../src/types/PageList.ts"],"names":[],"mappings":";;;AAAA,iCAA8C;AAC9C,+CAAuD;AACvD,+BAA4B;AAQrB,MAAM,UAAU,GAAG,CAAI,CAAO,EAAoB,EAAE,CAAC,IAAA,aAAM,EAAI,CAAC,CAAC,IAAI,IAAA,SAAG,EAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAA/E,QAAA,UAAU,cAAqE;AAErF,MAAM,UAAU,GAAG,CAAI,KAAW,EAAE,OAAwD,EAAe,EAAE;IAClH,MAAM,IAAI,GAAG,IAAA,aAAM,EAAI,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAQ,CAAC;IAChD,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,GAAG,CAAC;IACjC,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;IAC5B,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AANW,QAAA,UAAU,cAMrB;AAEK,MAAM,UAAU,GAAG,CAAO,CAAe,EAAE,QAAQ,IAAA,kBAAU,GAAK,EAAe,EAAE,CACxF,IAAA,kBAAU,EACR,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,yBAAW,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACjC,KAAK,CACN,CAAC;AAJS,QAAA,UAAU,cAInB"}
1
+ {"version":3,"file":"PageList.js","sourceRoot":"","sources":["../../src/types/PageList.ts"],"names":[],"mappings":";;;AAAA,iCAA8C;AAC9C,+CAAuD;AACvD,+BAA4B;AAUrB,MAAM,UAAU,GAAG,CAAI,CAAO,EAAoB,EAAE,CAAC,IAAA,aAAM,EAAI,CAAC,CAAC,IAAI,IAAA,SAAG,EAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAA/E,QAAA,UAAU,cAAqE;AAErF,MAAM,UAAU,GAAG,CAAI,KAAW,EAAE,OAAwD,EAAe,EAAE;IAClH,MAAM,IAAI,GAAG,IAAA,aAAM,EAAI,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAgB,CAAC;IACxD,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,GAAG,CAAC;IACjC,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;IAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;IAChC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAPW,QAAA,UAAU,cAOrB;AAEK,MAAM,UAAU,GAAG,CAAO,CAAe,EAAE,QAAQ,IAAA,kBAAU,GAAK,EAAe,EAAE,CACxF,IAAA,kBAAU,EACR,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,yBAAW,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACjC,KAAK,CACN,CAAC;AAJS,QAAA,UAAU,cAInB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy",
3
- "version": "11.6.11",
3
+ "version": "11.7.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": "11.6.11",
34
+ "@thisisagile/easy-test": "11.7.0",
35
35
  "@types/form-urlencoded": "^4.4.0",
36
36
  "@types/jsonwebtoken": "^8.5.8",
37
37
  "@types/luxon": "3.0.0",
@@ -3,7 +3,7 @@ import { HttpStatus, isHttpStatus } from './HttpStatus';
3
3
  import { isResponse } from './Response';
4
4
 
5
5
  export type RestResult = {
6
- data?: { code: number; items: List<Json>; itemCount: number; totalItems?: number };
6
+ data?: { code: number; items: List<Json>; itemCount: number; totalItems?: number; meta?: List<Json> };
7
7
  error?: { code: number; message: string; errorCount: number; errors: List<Result> };
8
8
  };
9
9
 
@@ -11,12 +11,13 @@ const hasErrors = (a: any): a is { error: { code: number; errors: List<Result> }
11
11
  const hasItems = (a: any): a is { data: { code: number; items: List<Json>; totalItems?: number } } => isDefined(a?.data.items);
12
12
 
13
13
  export const rest = {
14
- toData: (status: HttpStatus, items: Json[] = [], totalItems?: number): RestResult => ({
14
+ toData: (status: HttpStatus, items: Json[] = [], totalItems?: number, meta?: Json[]): RestResult => ({
15
15
  data: {
16
16
  code: status.status,
17
17
  items: toList(items),
18
18
  itemCount: items.length,
19
19
  totalItems,
20
+ meta: meta ? toList(meta) : undefined,
20
21
  },
21
22
  }),
22
23
  toError: (status: HttpStatus, errors: Result[] = [toResult(status.name)]): RestResult => ({
@@ -4,22 +4,25 @@ import { isA } from './IsA';
4
4
 
5
5
  export type Sort = { key: string; value: -1 | 1 };
6
6
 
7
- export type PageOptions = { take?: number; skip?: number; sort?: Sort[] };
7
+ export type FilterValue = { label: string, value: any };
8
+ export type Filter = { label: string, field: string, values: FilterValue[] };
8
9
 
10
+ export type PageOptions = { take?: number; skip?: number; sort?: Sort[]; filters?: Filter[] };
9
11
  export type PageList<T> = List<T> & Omit<PageOptions, 'sort'> & { total?: number };
10
12
 
11
13
  export const isPageList = <T>(l?: T[]): l is PageList<T> => isList<T>(l) && isA(l, 'total');
12
14
 
13
15
  export const toPageList = <T>(items?: T[], options?: Omit<PageOptions, 'sort'> & { total?: number }): PageList<T> => {
14
- const list = toList<T>(...(items ?? [])) as any;
16
+ const list = toList<T>(...(items ?? [])) as PageList<T>;
15
17
  list.take = options?.take ?? 250;
16
18
  list.skip = options?.skip ?? 0;
17
19
  list.total = options?.total;
20
+ list.filters = options?.filters;
18
21
  return list;
19
22
  };
20
23
 
21
24
  export const asPageList = <T, U>(c: Construct<T>, items = toPageList<U>()): PageList<T> =>
22
25
  toPageList<T>(
23
26
  items.map(i => ofConstruct(c, i)),
24
- items
27
+ items,
25
28
  );