angular-odata
Version:
Client side OData typescript library for Angular
39 lines • 5.33 kB
JavaScript
import { Injectable } from '@angular/core';
import { ODataEntitySetService } from './entity-set';
import { ODataSingletonService } from './singleton';
import * as i0 from "@angular/core";
import * as i1 from "../client";
export class ODataServiceFactory {
client;
constructor(client) {
this.client = client;
}
/**
* Factory method to create an entity set service.
* @param entitySetName Name of the entity set.
* @param apiNameOrEntityType Name of the API or the type of the entity.
*/
entitySet(entitySetName, apiNameOrEntityType, options = {}) {
const Service = class extends ODataEntitySetService {
Model = options?.Model;
Collection = options?.Collection;
};
return new Service(this.client, entitySetName, apiNameOrEntityType);
}
/** Factory method to create a singleton service.
* @param singletonName Name of the singleton.
* @param apiNameOrEntityType Name of the API or the type of the entity.
*/
singleton(singletonName, apiNameOrEntityType, options = {}) {
const Service = class extends ODataSingletonService {
Model = options?.Model;
};
return new Service(this.client, singletonName, apiNameOrEntityType);
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ODataServiceFactory, deps: [{ token: i1.ODataClient }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ODataServiceFactory });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ODataServiceFactory, decorators: [{
type: Injectable
}], ctorParameters: () => [{ type: i1.ODataClient }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9zZXJ2aWNlcy9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBSXBELE1BQU0sT0FBTyxtQkFBbUI7SUFDUjtJQUF0QixZQUFzQixNQUFtQjtRQUFuQixXQUFNLEdBQU4sTUFBTSxDQUFhO0lBQUcsQ0FBQztJQUU3Qzs7OztPQUlHO0lBQ0gsU0FBUyxDQUNQLGFBQXFCLEVBQ3JCLG1CQUE0QixFQUM1QixVQUtJLEVBQUU7UUFFTixNQUFNLE9BQU8sR0FBRyxLQUFNLFNBQVEscUJBQXdCO1lBQ3BELEtBQUssR0FBRyxPQUFPLEVBQUUsS0FBSyxDQUFDO1lBQ3ZCLFVBQVUsR0FBRyxPQUFPLEVBQUUsVUFBVSxDQUFDO1NBQ2xDLENBQUM7UUFDRixPQUFPLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FDUCxhQUFxQixFQUNyQixtQkFBNEIsRUFDNUIsVUFBaUUsRUFBRTtRQUVuRSxNQUFNLE9BQU8sR0FBRyxLQUFNLFNBQVEscUJBQXdCO1lBQ3BELEtBQUssR0FBRyxPQUFPLEVBQUUsS0FBSyxDQUFDO1NBQ3hCLENBQUM7UUFDRixPQUFPLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFDdEUsQ0FBQzt1R0F0Q1UsbUJBQW1COzJHQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPRGF0YUNsaWVudCB9IGZyb20gJy4uL2NsaWVudCc7XG5pbXBvcnQgeyBPRGF0YUVudGl0eVNldFNlcnZpY2UgfSBmcm9tICcuL2VudGl0eS1zZXQnO1xuaW1wb3J0IHsgT0RhdGFTaW5nbGV0b25TZXJ2aWNlIH0gZnJvbSAnLi9zaW5nbGV0b24nO1xuaW1wb3J0IHsgT0RhdGFDb2xsZWN0aW9uLCBPRGF0YU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9EYXRhU2VydmljZUZhY3Rvcnkge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2xpZW50OiBPRGF0YUNsaWVudCkge31cblxuICAvKipcbiAgICogRmFjdG9yeSBtZXRob2QgdG8gY3JlYXRlIGFuIGVudGl0eSBzZXQgc2VydmljZS5cbiAgICogQHBhcmFtIGVudGl0eVNldE5hbWUgTmFtZSBvZiB0aGUgZW50aXR5IHNldC5cbiAgICogQHBhcmFtIGFwaU5hbWVPckVudGl0eVR5cGUgTmFtZSBvZiB0aGUgQVBJIG9yIHRoZSB0eXBlIG9mIHRoZSBlbnRpdHkuXG4gICAqL1xuICBlbnRpdHlTZXQ8VD4oXG4gICAgZW50aXR5U2V0TmFtZTogc3RyaW5nLFxuICAgIGFwaU5hbWVPckVudGl0eVR5cGU/OiBzdHJpbmcsXG4gICAgb3B0aW9uczoge1xuICAgICAgTW9kZWw/OiB7IG5ldyAoLi4ucGFyYW1zOiBhbnlbXSk6IE9EYXRhTW9kZWw8VD4gfTtcbiAgICAgIENvbGxlY3Rpb24/OiB7XG4gICAgICAgIG5ldyAoLi4ucGFyYW1zOiBhbnlbXSk6IE9EYXRhQ29sbGVjdGlvbjxULCBPRGF0YU1vZGVsPFQ+PjtcbiAgICAgIH07XG4gICAgfSA9IHt9LFxuICApOiBPRGF0YUVudGl0eVNldFNlcnZpY2U8VD4ge1xuICAgIGNvbnN0IFNlcnZpY2UgPSBjbGFzcyBleHRlbmRzIE9EYXRhRW50aXR5U2V0U2VydmljZTxUPiB7XG4gICAgICBNb2RlbCA9IG9wdGlvbnM/Lk1vZGVsO1xuICAgICAgQ29sbGVjdGlvbiA9IG9wdGlvbnM/LkNvbGxlY3Rpb247XG4gICAgfTtcbiAgICByZXR1cm4gbmV3IFNlcnZpY2UodGhpcy5jbGllbnQsIGVudGl0eVNldE5hbWUsIGFwaU5hbWVPckVudGl0eVR5cGUpO1xuICB9XG5cbiAgLyoqIEZhY3RvcnkgbWV0aG9kIHRvIGNyZWF0ZSBhIHNpbmdsZXRvbiBzZXJ2aWNlLlxuICAgKiBAcGFyYW0gc2luZ2xldG9uTmFtZSBOYW1lIG9mIHRoZSBzaW5nbGV0b24uXG4gICAqIEBwYXJhbSBhcGlOYW1lT3JFbnRpdHlUeXBlIE5hbWUgb2YgdGhlIEFQSSBvciB0aGUgdHlwZSBvZiB0aGUgZW50aXR5LlxuICAgKi9cbiAgc2luZ2xldG9uPFQ+KFxuICAgIHNpbmdsZXRvbk5hbWU6IHN0cmluZyxcbiAgICBhcGlOYW1lT3JFbnRpdHlUeXBlPzogc3RyaW5nLFxuICAgIG9wdGlvbnM6IHsgTW9kZWw/OiB7IG5ldyAoLi4ucGFyYW1zOiBhbnlbXSk6IE9EYXRhTW9kZWw8VD4gfSB9ID0ge30sXG4gICk6IE9EYXRhU2luZ2xldG9uU2VydmljZTxUPiB7XG4gICAgY29uc3QgU2VydmljZSA9IGNsYXNzIGV4dGVuZHMgT0RhdGFTaW5nbGV0b25TZXJ2aWNlPFQ+IHtcbiAgICAgIE1vZGVsID0gb3B0aW9ucz8uTW9kZWw7XG4gICAgfTtcbiAgICByZXR1cm4gbmV3IFNlcnZpY2UodGhpcy5jbGllbnQsIHNpbmdsZXRvbk5hbWUsIGFwaU5hbWVPckVudGl0eVR5cGUpO1xuICB9XG59XG4iXX0=