UNPKG

@thisisagile/easy

Version:

Straightforward library for building domain-driven microservice architectures

1 lines 2.91 kB
{"version":3,"sources":["../src/services/ApiGateway.ts"],"sourcesContent":["import { Api, RouteOptions } from './Api';\nimport { FetchOptions, Gateway } from '../types/Gateway';\nimport { Uri } from '../types/Uri';\nimport { PageList, toPageList } from '../types/PageList';\nimport { Json } from '../types/Json';\nimport { use } from '../types/Constructor';\nimport { Optional } from '../types/Types';\nimport { RequestOptions } from '../http/RequestOptions';\n\nexport class ApiGateway extends Gateway<RouteOptions> {\n constructor(readonly api: Api = new Api()) {\n super();\n }\n\n get(uri: Uri, options?: RouteOptions): Promise<PageList<Json>> {\n return this.api.get(uri, options).then(r => use(r.body.data, d => toPageList(d?.items, { total: d?.totalItems, ...d?.meta })));\n }\n\n getOne(uri: Uri, options?: RouteOptions): Promise<Optional<Json>> {\n return this.get(uri, options).then(r => r.first());\n }\n\n post(uri: Uri, item?: Json, options?: RouteOptions): Promise<Json> {\n return this.api.post(uri, item, options).then(r => r.body.data?.items.first() ?? {});\n }\n\n postSearch(uri: Uri, options?: RequestOptions | FetchOptions): Promise<PageList<Json>> {\n return this.api.post(uri, options).then(r => use(r.body.data, d => toPageList(d?.items, { total: d?.totalItems, ...d?.meta })));\n }\n\n patch(uri: Uri, item?: Json, options?: RouteOptions): Promise<Json> {\n return this.api.patch(uri, item, options).then(r => r.body.data?.items.first() ?? {});\n }\n\n put(uri: Uri, item?: Json, options?: RouteOptions): Promise<Json> {\n return this.api.put(uri, item, options).then(r => r.body.data?.items.first() ?? {});\n }\n\n delete(uri: Uri, options?: RouteOptions): Promise<boolean> {\n return this.api.delete(uri, options).then(() => true);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AASO,IAAM,aAAN,cAAyB,QAAsB;AAAA,EACpD,YAAqB,MAAW,IAAI,IAAI,GAAG;AACzC,UAAM;AADa;AAAA,EAErB;AAAA,EAEA,IAAI,KAAU,SAAiD;AAC7D,WAAO,KAAK,IAAI,IAAI,KAAK,OAAO,EAAE,KAAK,OAAK,IAAI,EAAE,KAAK,MAAM,OAAK,WAAW,GAAG,OAAO,EAAE,OAAO,GAAG,YAAY,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;AAAA,EAC/H;AAAA,EAEA,OAAO,KAAU,SAAiD;AAChE,WAAO,KAAK,IAAI,KAAK,OAAO,EAAE,KAAK,OAAK,EAAE,MAAM,CAAC;AAAA,EACnD;AAAA,EAEA,KAAK,KAAU,MAAa,SAAuC;AACjE,WAAO,KAAK,IAAI,KAAK,KAAK,MAAM,OAAO,EAAE,KAAK,OAAK,EAAE,KAAK,MAAM,MAAM,MAAM,KAAK,CAAC,CAAC;AAAA,EACrF;AAAA,EAEA,WAAW,KAAU,SAAkE;AACrF,WAAO,KAAK,IAAI,KAAK,KAAK,OAAO,EAAE,KAAK,OAAK,IAAI,EAAE,KAAK,MAAM,OAAK,WAAW,GAAG,OAAO,EAAE,OAAO,GAAG,YAAY,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;AAAA,EAChI;AAAA,EAEA,MAAM,KAAU,MAAa,SAAuC;AAClE,WAAO,KAAK,IAAI,MAAM,KAAK,MAAM,OAAO,EAAE,KAAK,OAAK,EAAE,KAAK,MAAM,MAAM,MAAM,KAAK,CAAC,CAAC;AAAA,EACtF;AAAA,EAEA,IAAI,KAAU,MAAa,SAAuC;AAChE,WAAO,KAAK,IAAI,IAAI,KAAK,MAAM,OAAO,EAAE,KAAK,OAAK,EAAE,KAAK,MAAM,MAAM,MAAM,KAAK,CAAC,CAAC;AAAA,EACpF;AAAA,EAEA,OAAO,KAAU,SAA0C;AACzD,WAAO,KAAK,IAAI,OAAO,KAAK,OAAO,EAAE,KAAK,MAAM,IAAI;AAAA,EACtD;AACF;","names":[]}