@protoarch.angular/api
Version:
Angular HttpClient simplifier
47 lines • 5.19 kB
JavaScript
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
import { NgModule } from '@angular/core';
import { Api } from './api.service';
import * as ApiTokens from './api.tokens';
import { BlobErrorHttpInterceptor } from './blob-error-http.interceptor';
import * as i0 from "@angular/core";
export function nullSerializerFactory() {
return {
serialize: data => data,
deserialize: data => data,
};
}
export class ApiModule {
static forRoot(options = {}) {
return {
ngModule: ApiModule,
providers: [
Api,
{
provide: ApiTokens.API_ENDPOINT,
useValue: options.endpoint || '',
},
options.serializeProvider || {
provide: ApiTokens.API_SERIALIZER,
useFactory: nullSerializerFactory,
},
{
provide: HTTP_INTERCEPTORS,
useClass: BlobErrorHttpInterceptor,
multi: true,
},
],
};
}
static ɵfac = function ApiModule_Factory(t) { return new (t || ApiModule)(); };
static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ApiModule });
static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [Api], imports: [HttpClientModule] });
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ApiModule, [{
type: NgModule,
args: [{
imports: [HttpClientModule],
providers: [Api],
}]
}], null, null); })();
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(ApiModule, { imports: [HttpClientModule] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3NyYy9saWIvYXBpLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RSxPQUFPLEVBQXNCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU1RCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xDLE9BQU8sS0FBSyxTQUFTLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLCtCQUErQixDQUFDOztBQUV2RSxNQUFNLFVBQVUscUJBQXFCO0lBQ2pDLE9BQU87UUFDSCxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJO1FBQ3ZCLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUk7S0FDNUIsQ0FBQztBQUNOLENBQUM7QUFLRCxNQUFNLE9BQU8sU0FBUztJQUNsQixNQUFNLENBQUMsT0FBTyxDQUFDLFVBQTZCLEVBQUU7UUFDMUMsT0FBTztZQUNILFFBQVEsRUFBRSxTQUFTO1lBQ25CLFNBQVMsRUFBRTtnQkFDUCxHQUFHO2dCQUNIO29CQUNJLE9BQU8sRUFBRSxTQUFTLENBQUMsWUFBWTtvQkFDL0IsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLElBQUksRUFBRTtpQkFDbkM7Z0JBQ0QsT0FBTyxDQUFDLGlCQUFpQixJQUFJO29CQUN6QixPQUFPLEVBQUUsU0FBUyxDQUFDLGNBQWM7b0JBQ2pDLFVBQVUsRUFBRSxxQkFBcUI7aUJBQ3BDO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLEtBQUssRUFBRSxJQUFJO2lCQUNkO2FBQ0o7U0FDSixDQUFDO0lBQ04sQ0FBQzttRUFyQlEsU0FBUzs0REFBVCxTQUFTO2lFQUZQLENBQUMsR0FBRyxDQUFDLFlBRE4sZ0JBQWdCOztpRkFHakIsU0FBUztjQUpyQixRQUFRO2VBQUM7Z0JBQ04sT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzNCLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQzthQUNuQjs7d0ZBQ1ksU0FBUyxjQUhSLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cENsaWVudE1vZHVsZSwgSFRUUF9JTlRFUkNFUFRPUlN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SUFwaU1vZHVsZU9wdGlvbnMsIElTZXJpYWxpemVyfSBmcm9tICcuL2FwaS5vcHRpb25zJztcclxuaW1wb3J0IHtBcGl9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgKiBhcyBBcGlUb2tlbnMgZnJvbSAnLi9hcGkudG9rZW5zJztcclxuaW1wb3J0IHtCbG9iRXJyb3JIdHRwSW50ZXJjZXB0b3J9IGZyb20gJy4vYmxvYi1lcnJvci1odHRwLmludGVyY2VwdG9yJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBudWxsU2VyaWFsaXplckZhY3RvcnkoKTogSVNlcmlhbGl6ZXIge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBzZXJpYWxpemU6IGRhdGEgPT4gZGF0YSxcclxuICAgICAgICBkZXNlcmlhbGl6ZTogZGF0YSA9PiBkYXRhLFxyXG4gICAgfTtcclxufVxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW0h0dHBDbGllbnRNb2R1bGVdLFxyXG4gICAgcHJvdmlkZXJzOiBbQXBpXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwaU1vZHVsZSB7XHJcbiAgICBzdGF0aWMgZm9yUm9vdChvcHRpb25zOiBJQXBpTW9kdWxlT3B0aW9ucyA9IHt9KTogTW9kdWxlV2l0aFByb3ZpZGVyczxBcGlNb2R1bGU+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBuZ01vZHVsZTogQXBpTW9kdWxlLFxyXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICAgICAgICAgIEFwaSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBBcGlUb2tlbnMuQVBJX0VORFBPSU5ULFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiBvcHRpb25zLmVuZHBvaW50IHx8ICcnLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIG9wdGlvbnMuc2VyaWFsaXplUHJvdmlkZXIgfHwge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFwaVRva2Vucy5BUElfU0VSSUFMSVpFUixcclxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiBudWxsU2VyaWFsaXplckZhY3RvcnksXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBCbG9iRXJyb3JIdHRwSW50ZXJjZXB0b3IsXHJcbiAgICAgICAgICAgICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuIl19