@ngx-resource/handler-ngx-http
Version:
Resource handler for angular
1 lines • 8.09 kB
Source Map (JSON)
{"version":3,"file":"ngx-resource-handler-ngx-http.mjs","sources":["../../../../projects/ngx-resource/handler-ngx-http/src/lib/ResourceHandlerHttpClient.ts","../../../../projects/ngx-resource/handler-ngx-http/src/lib/ResourceModule.ts","../../../../projects/ngx-resource/handler-ngx-http/src/public-api.ts","../../../../projects/ngx-resource/handler-ngx-http/src/ngx-resource-handler-ngx-http.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams, HttpRequest, HttpResponse } from '@angular/common/http';\nimport { catchError, last, map } from 'rxjs/operators';\nimport {\n IResourceHandlerResponse,\n IResourceRequest,\n IResourceResponse,\n ResourceHandler,\n ResourceRequestMethod,\n ResourceResponseBodyType\n} from '@ngx-resource/core';\n\n@Injectable()\nexport class ResourceHandlerHttpClient extends ResourceHandler {\n\n constructor(private http: HttpClient) {\n super();\n }\n\n handle(req: IResourceRequest): IResourceHandlerResponse {\n\n const request = this.prepareRequest(req);\n\n return {\n observable: this.http.request(request)\n .pipe(\n last(),\n map((resp: HttpResponse<any>) => this.handleResponse(req, resp)),\n catchError((resp: HttpErrorResponse) => {\n throw this.handleResponse(req, resp);\n })\n )\n };\n\n }\n\n\n protected prepareRequest(req: IResourceRequest): HttpRequest<any> {\n\n let method = 'GET';\n\n switch (req.method) {\n\n case ResourceRequestMethod.Get:\n method = 'GET';\n break;\n\n case ResourceRequestMethod.Post:\n method = 'POST';\n break;\n\n case ResourceRequestMethod.Put:\n method = 'PUT';\n break;\n\n case ResourceRequestMethod.Delete:\n method = 'DELETE';\n break;\n\n case ResourceRequestMethod.Head:\n method = 'HEAD';\n break;\n\n case ResourceRequestMethod.Options:\n method = 'OPTIONS';\n break;\n\n case ResourceRequestMethod.Patch:\n method = 'PATCH';\n\n }\n\n const init: IHttpRequestInit = {\n withCredentials: req.withCredentials\n };\n\n switch (req.responseBodyType) {\n\n case ResourceResponseBodyType.Json:\n init.responseType = 'json';\n break;\n\n case ResourceResponseBodyType.ArrayBuffer:\n init.responseType = 'arraybuffer';\n break;\n\n case ResourceResponseBodyType.Blob:\n init.responseType = 'blob';\n break;\n\n default:\n init.responseType = 'text';\n\n }\n\n if (req.headers) {\n init.headers = new HttpHeaders(req.headers);\n }\n\n if (req.query) {\n init.params = new HttpParams({fromObject: req.query});\n }\n\n return new HttpRequest(method, req.url || '', req.body, init);\n\n }\n\n protected handleResponse(req: IResourceRequest, response: HttpResponse<any> | HttpErrorResponse): IResourceResponse {\n\n const headers: any = {};\n const keys = response.headers?.keys();\n\n if (keys) {\n keys.forEach((key: string) => {\n headers[key] = response.headers.getAll(key);\n });\n }\n\n return {\n status: response.status,\n body: (response as HttpResponse<any>).body || (response as HttpErrorResponse).error,\n headers\n };\n }\n\n}\n\nexport type THttpRequestInitResponseType = 'arraybuffer' | 'blob' | 'json' | 'text';\n\nexport interface IHttpRequestInit {\n headers?: HttpHeaders;\n params?: HttpParams;\n responseType?: THttpRequestInitResponseType;\n withCredentials?: boolean;\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { IResourceModuleConfig, ResourceHandler, ResourceModule as ResourceModuleCore } from '@ngx-resource/core';\nimport { ResourceHandlerHttpClient } from './ResourceHandlerHttpClient';\n\n@NgModule()\nexport class ResourceModule extends ResourceModuleCore {\n\n /**\n * For root\n */\n static forRoot(config: IResourceModuleConfig = {}): ModuleWithProviders<ResourceModuleCore> {\n return ResourceModuleCore.forRoot({\n handler: config.handler || {provide: ResourceHandler, useClass: ResourceHandlerHttpClient, deps: [HttpClient]}\n });\n }\n\n /**\n * For child\n */\n static forChild(config: IResourceModuleConfig = {}): ModuleWithProviders<ResourceModuleCore> {\n return ResourceModuleCore.forChild({\n handler: config.handler || {provide: ResourceHandler, useClass: ResourceHandlerHttpClient, deps: [HttpClient]}\n });\n }\n}\n","/*\n * Public API Surface of handler-ngx-http\n */\n\nexport * from './lib/ResourceHandlerHttpClient';\nexport * from './lib/ResourceModule';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ResourceModuleCore"],"mappings":";;;;;;;AAaM,MAAO,yBAA0B,SAAQ,eAAe,CAAA;AAE5D,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAClC,QAAA,KAAK,EAAE,CAAC;QADU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KAEnC;AAED,IAAA,MAAM,CAAC,GAAqB,EAAA;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAEzC,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;iBACnC,IAAI,CACH,IAAI,EAAE,EACN,GAAG,CAAC,CAAC,IAAuB,KAAK,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAChE,UAAU,CAAC,CAAC,IAAuB,KAAI;gBACrC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACvC,aAAC,CAAC,CACH;SACJ,CAAC;KAEH;AAGS,IAAA,cAAc,CAAC,GAAqB,EAAA;QAE5C,IAAI,MAAM,GAAG,KAAK,CAAC;QAEnB,QAAQ,GAAG,CAAC,MAAM;YAEhB,KAAK,qBAAqB,CAAC,GAAG;gBAC5B,MAAM,GAAG,KAAK,CAAC;gBACf,MAAM;YAER,KAAK,qBAAqB,CAAC,IAAI;gBAC7B,MAAM,GAAG,MAAM,CAAC;gBAChB,MAAM;YAER,KAAK,qBAAqB,CAAC,GAAG;gBAC5B,MAAM,GAAG,KAAK,CAAC;gBACf,MAAM;YAER,KAAK,qBAAqB,CAAC,MAAM;gBAC/B,MAAM,GAAG,QAAQ,CAAC;gBAClB,MAAM;YAER,KAAK,qBAAqB,CAAC,IAAI;gBAC7B,MAAM,GAAG,MAAM,CAAC;gBAChB,MAAM;YAER,KAAK,qBAAqB,CAAC,OAAO;gBAChC,MAAM,GAAG,SAAS,CAAC;gBACnB,MAAM;YAER,KAAK,qBAAqB,CAAC,KAAK;gBAC9B,MAAM,GAAG,OAAO,CAAC;AAEpB,SAAA;AAED,QAAA,MAAM,IAAI,GAAqB;YAC7B,eAAe,EAAE,GAAG,CAAC,eAAe;SACrC,CAAC;QAEF,QAAQ,GAAG,CAAC,gBAAgB;YAE1B,KAAK,wBAAwB,CAAC,IAAI;AAChC,gBAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;gBAC3B,MAAM;YAER,KAAK,wBAAwB,CAAC,WAAW;AACvC,gBAAA,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;gBAClC,MAAM;YAER,KAAK,wBAAwB,CAAC,IAAI;AAChC,gBAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;gBAC3B,MAAM;AAER,YAAA;AACE,gBAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;AAE9B,SAAA;QAED,IAAI,GAAG,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC7C,SAAA;QAED,IAAI,GAAG,CAAC,KAAK,EAAE;AACb,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,EAAC,UAAU,EAAE,GAAG,CAAC,KAAK,EAAC,CAAC,CAAC;AACvD,SAAA;AAED,QAAA,OAAO,IAAI,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAE/D;IAES,cAAc,CAAC,GAAqB,EAAE,QAA+C,EAAA;QAE7F,MAAM,OAAO,GAAQ,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;AAEtC,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;AAC3B,gBAAA,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9C,aAAC,CAAC,CAAC;AACJ,SAAA;QAED,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,MAAM;AACvB,YAAA,IAAI,EAAG,QAA8B,CAAC,IAAI,IAAK,QAA8B,CAAC,KAAK;YACnF,OAAO;SACR,CAAC;KACH;;sHA9GU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;0HAAzB,yBAAyB,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC,UAAU;;;ACNL,MAAO,cAAe,SAAQA,gBAAkB,CAAA;AAEpD;;AAEG;AACH,IAAA,OAAO,OAAO,CAAC,MAAA,GAAgC,EAAE,EAAA;QAC/C,OAAOA,gBAAkB,CAAC,OAAO,CAAC;AAChC,YAAA,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAC;AAC/G,SAAA,CAAC,CAAC;KACJ;AAED;;AAEG;AACH,IAAA,OAAO,QAAQ,CAAC,MAAA,GAAgC,EAAE,EAAA;QAChD,OAAOA,gBAAkB,CAAC,QAAQ,CAAC;AACjC,YAAA,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAC;AAC/G,SAAA,CAAC,CAAC;KACJ;;2GAlBU,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;4GAAd,cAAc,EAAA,CAAA,CAAA;4GAAd,cAAc,EAAA,CAAA,CAAA;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,QAAQ;;;ACLT;;AAEG;;ACFH;;AAEG;;;;"}