angular-odata
Version:
Client side OData typescript library for Angular
55 lines • 7.17 kB
JavaScript
import { CommonModule } from '@angular/common';
import { HttpClientModule } from '@angular/common/http';
import { InjectionToken, NgModule, makeEnvironmentProviders, } from '@angular/core';
import { ODataClient } from './client';
import { ODataConfigLoader, ODataConfigSyncLoader } from './loaders';
import { ODataServiceFactory } from './services/index';
import * as i0 from "@angular/core";
export const ODATA_CONFIG = new InjectionToken('odata.config');
export function createSyncLoader(passedConfig) {
return new ODataConfigSyncLoader(passedConfig.config);
}
// Standalone version
export function provideODataClient(passedConfig) {
return makeEnvironmentProviders([
{ provide: ODATA_CONFIG, useValue: passedConfig },
passedConfig?.loader ?? {
provide: ODataConfigLoader,
useFactory: createSyncLoader,
deps: [ODATA_CONFIG],
},
ODataClient,
ODataServiceFactory,
]);
}
// Module version
export class ODataModule {
static forRoot(passedConfig) {
return {
ngModule: ODataModule,
providers: [
// Make the ODATA_CONFIG available through injection
{ provide: ODATA_CONFIG, useValue: passedConfig },
// Create the loader: Either the one getting passed or a sync one
passedConfig?.loader ?? {
provide: ODataConfigLoader,
useFactory: createSyncLoader,
deps: [ODATA_CONFIG],
},
ODataClient,
ODataServiceFactory,
],
};
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ODataModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: ODataModule, imports: [CommonModule, HttpClientModule] });
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ODataModule, providers: [ODataClient, ODataServiceFactory], imports: [CommonModule, HttpClientModule] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ODataModule, decorators: [{
type: NgModule,
args: [{
imports: [CommonModule, HttpClientModule],
providers: [ODataClient, ODataServiceFactory],
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUVMLGNBQWMsRUFFZCxRQUFRLEVBRVIsd0JBQXdCLEdBQ3pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQVF2RCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQVksY0FBYyxDQUFDLENBQUM7QUFFMUUsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFlBQWlDO0lBQ2hFLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsTUFBTyxDQUFDLENBQUM7QUFDekQsQ0FBQztBQUVELHFCQUFxQjtBQUNyQixNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLFlBQWlDO0lBRWpDLE9BQU8sd0JBQXdCLENBQUM7UUFDOUIsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUU7UUFDakQsWUFBWSxFQUFFLE1BQU0sSUFBSTtZQUN0QixPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFVBQVUsRUFBRSxnQkFBZ0I7WUFDNUIsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDO1NBQ3JCO1FBQ0QsV0FBVztRQUNYLG1CQUFtQjtLQUNwQixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsaUJBQWlCO0FBS2pCLE1BQU0sT0FBTyxXQUFXO0lBQ3RCLE1BQU0sQ0FBQyxPQUFPLENBQ1osWUFBaUM7UUFFakMsT0FBTztZQUNMLFFBQVEsRUFBRSxXQUFXO1lBQ3JCLFNBQVMsRUFBRTtnQkFDVCxvREFBb0Q7Z0JBQ3BELEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFO2dCQUVqRCxpRUFBaUU7Z0JBQ2pFLFlBQVksRUFBRSxNQUFNLElBQUk7b0JBQ3RCLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFVBQVUsRUFBRSxnQkFBZ0I7b0JBQzVCLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDckI7Z0JBQ0QsV0FBVztnQkFDWCxtQkFBbUI7YUFDcEI7U0FDRixDQUFDO0lBQ0osQ0FBQzt1R0FwQlUsV0FBVzt3R0FBWCxXQUFXLFlBSFosWUFBWSxFQUFFLGdCQUFnQjt3R0FHN0IsV0FBVyxhQUZYLENBQUMsV0FBVyxFQUFFLG1CQUFtQixDQUFDLFlBRG5DLFlBQVksRUFBRSxnQkFBZ0I7OzJGQUc3QixXQUFXO2tCQUp2QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQztvQkFDekMsU0FBUyxFQUFFLENBQUMsV0FBVyxFQUFFLG1CQUFtQixDQUFDO2lCQUM5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gIEluamVjdGlvblRva2VuLFxuICBNb2R1bGVXaXRoUHJvdmlkZXJzLFxuICBOZ01vZHVsZSxcbiAgUHJvdmlkZXIsXG4gIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPRGF0YUNsaWVudCB9IGZyb20gJy4vY2xpZW50JztcbmltcG9ydCB7IE9EYXRhQ29uZmlnTG9hZGVyLCBPRGF0YUNvbmZpZ1N5bmNMb2FkZXIgfSBmcm9tICcuL2xvYWRlcnMnO1xuaW1wb3J0IHsgT0RhdGFTZXJ2aWNlRmFjdG9yeSB9IGZyb20gJy4vc2VydmljZXMvaW5kZXgnO1xuaW1wb3J0IHsgQXBpQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFzc2VkSW5pdGlhbENvbmZpZyB7XG4gIGNvbmZpZz86IEFwaUNvbmZpZyB8IEFwaUNvbmZpZ1tdO1xuICBsb2FkZXI/OiBQcm92aWRlcjtcbn1cblxuZXhwb3J0IGNvbnN0IE9EQVRBX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBcGlDb25maWc+KCdvZGF0YS5jb25maWcnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN5bmNMb2FkZXIocGFzc2VkQ29uZmlnOiBQYXNzZWRJbml0aWFsQ29uZmlnKSB7XG4gIHJldHVybiBuZXcgT0RhdGFDb25maWdTeW5jTG9hZGVyKHBhc3NlZENvbmZpZy5jb25maWchKTtcbn1cblxuLy8gU3RhbmRhbG9uZSB2ZXJzaW9uXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZU9EYXRhQ2xpZW50KFxuICBwYXNzZWRDb25maWc6IFBhc3NlZEluaXRpYWxDb25maWcsXG4pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgIHsgcHJvdmlkZTogT0RBVEFfQ09ORklHLCB1c2VWYWx1ZTogcGFzc2VkQ29uZmlnIH0sXG4gICAgcGFzc2VkQ29uZmlnPy5sb2FkZXIgPz8ge1xuICAgICAgcHJvdmlkZTogT0RhdGFDb25maWdMb2FkZXIsXG4gICAgICB1c2VGYWN0b3J5OiBjcmVhdGVTeW5jTG9hZGVyLFxuICAgICAgZGVwczogW09EQVRBX0NPTkZJR10sXG4gICAgfSxcbiAgICBPRGF0YUNsaWVudCxcbiAgICBPRGF0YVNlcnZpY2VGYWN0b3J5LFxuICBdKTtcbn1cblxuLy8gTW9kdWxlIHZlcnNpb25cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEh0dHBDbGllbnRNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtPRGF0YUNsaWVudCwgT0RhdGFTZXJ2aWNlRmFjdG9yeV0sXG59KVxuZXhwb3J0IGNsYXNzIE9EYXRhTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoXG4gICAgcGFzc2VkQ29uZmlnOiBQYXNzZWRJbml0aWFsQ29uZmlnLFxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE9EYXRhTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBPRGF0YU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAvLyBNYWtlIHRoZSBPREFUQV9DT05GSUcgYXZhaWxhYmxlIHRocm91Z2ggaW5qZWN0aW9uXG4gICAgICAgIHsgcHJvdmlkZTogT0RBVEFfQ09ORklHLCB1c2VWYWx1ZTogcGFzc2VkQ29uZmlnIH0sXG5cbiAgICAgICAgLy8gQ3JlYXRlIHRoZSBsb2FkZXI6IEVpdGhlciB0aGUgb25lIGdldHRpbmcgcGFzc2VkIG9yIGEgc3luYyBvbmVcbiAgICAgICAgcGFzc2VkQ29uZmlnPy5sb2FkZXIgPz8ge1xuICAgICAgICAgIHByb3ZpZGU6IE9EYXRhQ29uZmlnTG9hZGVyLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGNyZWF0ZVN5bmNMb2FkZXIsXG4gICAgICAgICAgZGVwczogW09EQVRBX0NPTkZJR10sXG4gICAgICAgIH0sXG4gICAgICAgIE9EYXRhQ2xpZW50LFxuICAgICAgICBPRGF0YVNlcnZpY2VGYWN0b3J5LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0=