{"version":3,"sources":["../../src/services/ViewRouteGateway.ts"],"sourcesContent":["import { Api } from './Api';\nimport { RouteGateway } from './RouteGateway';\nimport { Func } from '../types/Func';\nimport { Uri } from '../types/Uri';\nimport { view } from '../utils/View';\nimport { RequestOptions } from '../http/RequestOptions';\nimport { PageList } from '../types/PageList';\nimport { Json } from '../types/Json';\nimport { Optional } from '../types/Types';\n\nexport class ViewRouteGateway extends RouteGateway {\n  constructor(\n    readonly route: Func<Uri>,\n    readonly routeId: Func<Uri>,\n    readonly views = {\n      in: view({}).fromSource,\n      out: view({}).fromSource,\n    },\n    readonly api: Api = new Api()\n  ) {\n    super(route, routeId, api);\n  }\n\n  get(uri: Uri, options?: RequestOptions): Promise<PageList<Json>> {\n    return super.get(uri, options).then(is => is.map(i => this.views.in.from(i)));\n  }\n\n  getOne(uri: Uri, options?: RequestOptions): Promise<Optional<Json>> {\n    return super\n      .get(uri, options)\n      .then(is => is.first())\n      .then(i => this.views.in.from(i));\n  }\n\n  add(item: Json): Promise<Json> {\n    return super.add(this.views.out.from(item));\n  }\n\n  update(item: Json): Promise<Json> {\n    return super.update(this.views.out.from(item));\n  }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUO,IAAM,mBAAN,cAA+B,aAAa;AAAA,EACjD,YACW,OACA,SACA,QAAQ;AAAA,IACf,IAAI,KAAK,CAAC,CAAC,EAAE;AAAA,IACb,KAAK,KAAK,CAAC,CAAC,EAAE;AAAA,EAChB,GACS,MAAW,IAAI,IAAI,GAC5B;AACA,UAAM,OAAO,SAAS,GAAG;AARhB;AACA;AACA;AAIA;AAAA,EAGX;AAAA,EAEA,IAAI,KAAU,SAAmD;AAC/D,WAAO,MAAM,IAAI,KAAK,OAAO,EAAE,KAAK,QAAM,GAAG,IAAI,OAAK,KAAK,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;AAAA,EAC9E;AAAA,EAEA,OAAO,KAAU,SAAmD;AAClE,WAAO,MACJ,IAAI,KAAK,OAAO,EAChB,KAAK,QAAM,GAAG,MAAM,CAAC,EACrB,KAAK,OAAK,KAAK,MAAM,GAAG,KAAK,CAAC,CAAC;AAAA,EACpC;AAAA,EAEA,IAAI,MAA2B;AAC7B,WAAO,MAAM,IAAI,KAAK,MAAM,IAAI,KAAK,IAAI,CAAC;AAAA,EAC5C;AAAA,EAEA,OAAO,MAA2B;AAChC,WAAO,MAAM,OAAO,KAAK,MAAM,IAAI,KAAK,IAAI,CAAC;AAAA,EAC/C;AACF;","names":[]}