UNPKG

@thisisagile/easy

Version:

Straightforward library for building domain-driven microservice architectures

1 lines 2.27 kB
{"version":3,"sources":["../src/process/Search.ts"],"sourcesContent":["import { FetchOptions } from '../types/Gateway';\nimport { Repository } from '../types/Repository';\nimport { PageList, toPageList } from '../types/PageList';\nimport { Id, Key } from '../types/Id';\nimport { List } from '../types/List';\nimport { Req } from '../resources/Req';\nimport { JsonValue } from '../types/Json';\nimport { choose } from '../types/Case';\nimport { resolve } from '../utils/Promise';\n\nexport class Search<T, Options = FetchOptions> {\n constructor(protected repo: Repository<T, Options>) {}\n\n all(options?: Options): Promise<PageList<T>> {\n return this.repo.all(options);\n }\n\n byId(id: Id): Promise<T> {\n return this.repo.byId(id);\n }\n\n byIds(...ids: Id[]): Promise<List<T>> {\n return this.repo.byIds(...ids);\n }\n\n byKey(key: Key, options?: Options): Promise<PageList<T>> {\n return this.repo.byKey(key, options);\n }\n\n query({ query, skip, take }: Req): Promise<PageList<T>> {\n return this.search(query, { skip, take } as Options);\n }\n\n search(query: JsonValue, options?: Options): Promise<PageList<T>> {\n return choose(query)\n .is.not.empty(\n q => q,\n q => this.repo.search(q, options)\n )\n .else(() => resolve(toPageList<T>()));\n }\n\n filter(options?: Options): Promise<PageList<T>> {\n return this.repo.filter(options);\n }\n\n exists(id: Id): Promise<boolean> {\n return this.repo.exists(id);\n }\n}\n"],"mappings":";;;;;;;;;;;AAUO,IAAM,SAAN,MAAwC;AAAA,EAC7C,YAAsB,MAA8B;AAA9B;AAAA,EAA+B;AAAA,EAErD,IAAI,SAAyC;AAC3C,WAAO,KAAK,KAAK,IAAI,OAAO;AAAA,EAC9B;AAAA,EAEA,KAAK,IAAoB;AACvB,WAAO,KAAK,KAAK,KAAK,EAAE;AAAA,EAC1B;AAAA,EAEA,SAAS,KAA6B;AACpC,WAAO,KAAK,KAAK,MAAM,GAAG,GAAG;AAAA,EAC/B;AAAA,EAEA,MAAM,KAAU,SAAyC;AACvD,WAAO,KAAK,KAAK,MAAM,KAAK,OAAO;AAAA,EACrC;AAAA,EAEA,MAAM,EAAE,OAAO,MAAM,KAAK,GAA8B;AACtD,WAAO,KAAK,OAAO,OAAO,EAAE,MAAM,KAAK,CAAY;AAAA,EACrD;AAAA,EAEA,OAAO,OAAkB,SAAyC;AAChE,WAAO,OAAO,KAAK,EAChB,GAAG,IAAI;AAAA,MACN,OAAK;AAAA,MACL,OAAK,KAAK,KAAK,OAAO,GAAG,OAAO;AAAA,IAClC,EACC,KAAK,MAAM,QAAQ,WAAc,CAAC,CAAC;AAAA,EACxC;AAAA,EAEA,OAAO,SAAyC;AAC9C,WAAO,KAAK,KAAK,OAAO,OAAO;AAAA,EACjC;AAAA,EAEA,OAAO,IAA0B;AAC/B,WAAO,KAAK,KAAK,OAAO,EAAE;AAAA,EAC5B;AACF;","names":[]}