UNPKG

angular-odata

Version:

Client side OData typescript library for Angular

66 lines 7.83 kB
import { DEFAULT_VERSION, MAX_AGE, VERSION_2_0, VERSION_3_0, VERSION_4_0, } from '../constants'; import { ODataHelper } from '../helper'; export class ODataResponseOptions { version; streaming; // OData metadata; ieee754Compatible; // Location location; // Cache cacheability; maxAge; constructor(config) { this.version = config.version || DEFAULT_VERSION; } get helper() { return ODataHelper[this.version]; } clone() { return new ODataResponseOptions(this); } setFeatures(features) { features.split(';').forEach((o) => { let [k, v] = o.split('='); switch (k.trim()) { case 'odata.metadata': this.metadata = v; break; case 'odata.streaming': this.streaming = v == 'true'; break; case 'IEEE754Compatible': this.ieee754Compatible = v == 'true'; break; } }); } setVersion(version) { const value = version.replace(/\;/g, '').trim(); if ([VERSION_2_0, VERSION_3_0, VERSION_4_0].indexOf(value) !== -1) this.version = value; } setLocation(location) { // TODO: resolve location? this.location = location; } setPreferenceApplied(preference) { preference.split(',').forEach((prefer) => { // TODO: resolve preference }); } setCache(cacheControl) { cacheControl.split(',').forEach((directive) => { if (directive.startsWith(MAX_AGE)) { let maxAge = Number(directive.split('=')[1]); if (!Number.isNaN(maxAge)) this.maxAge = maxAge; } if (['public', 'private', 'no-cache', 'no-store'].indexOf(directive) !== -1) { this.cacheability = directive; } }); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9yZXNvdXJjZXMvb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQ0wsZUFBZSxFQUNmLE9BQU8sRUFDUCxXQUFXLEVBQ1gsV0FBVyxFQUNYLFdBQVcsR0FDWixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXhDLE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsT0FBTyxDQUFlO0lBQ3RCLFNBQVMsQ0FBVztJQUNwQixRQUFRO0lBQ1IsUUFBUSxDQUFxQjtJQUM3QixpQkFBaUIsQ0FBVztJQUM1QixXQUFXO0lBQ1gsUUFBUSxDQUFVO0lBQ2xCLFFBQVE7SUFDUixZQUFZLENBQWtEO0lBQzlELE1BQU0sQ0FBVTtJQUVoQixZQUFZLE1BQXFCO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxlQUFlLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWdCO1FBQzFCLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFCLFFBQVEsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ2pCLEtBQUssZ0JBQWdCO29CQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQXNCLENBQUM7b0JBQ3ZDLE1BQU07Z0JBQ1IsS0FBSyxpQkFBaUI7b0JBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQztvQkFDN0IsTUFBTTtnQkFDUixLQUFLLG1CQUFtQjtvQkFDdEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsSUFBSSxNQUFNLENBQUM7b0JBQ3JDLE1BQU07WUFDVixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQWU7UUFDeEIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQXFCLENBQUM7SUFDekMsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFnQjtRQUMxQiwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVELG9CQUFvQixDQUFDLFVBQWtCO1FBQ3JDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDdkMsMkJBQTJCO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxZQUFvQjtRQUMzQixZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQzVDLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM3QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7b0JBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDbEQsQ0FBQztZQUNELElBQ0UsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ3ZFLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUE4QixDQUFDO1lBQ3JELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENhY2hlQ2FjaGVhYmlsaXR5LFxuICBPRGF0YU1ldGFkYXRhVHlwZSxcbiAgT0RhdGFWZXJzaW9uLFxuICBQYXJzZXJPcHRpb25zLFxuICBSZXNwb25zZU9wdGlvbnMsXG59IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7XG4gIERFRkFVTFRfVkVSU0lPTixcbiAgTUFYX0FHRSxcbiAgVkVSU0lPTl8yXzAsXG4gIFZFUlNJT05fM18wLFxuICBWRVJTSU9OXzRfMCxcbn0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuaW1wb3J0IHsgT0RhdGFIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXInO1xuXG5leHBvcnQgY2xhc3MgT0RhdGFSZXNwb25zZU9wdGlvbnMgaW1wbGVtZW50cyBSZXNwb25zZU9wdGlvbnMge1xuICB2ZXJzaW9uOiBPRGF0YVZlcnNpb247XG4gIHN0cmVhbWluZz86IGJvb2xlYW47XG4gIC8vIE9EYXRhXG4gIG1ldGFkYXRhPzogT0RhdGFNZXRhZGF0YVR5cGU7XG4gIGllZWU3NTRDb21wYXRpYmxlPzogYm9vbGVhbjtcbiAgLy8gTG9jYXRpb25cbiAgbG9jYXRpb24/OiBzdHJpbmc7XG4gIC8vIENhY2hlXG4gIGNhY2hlYWJpbGl0eT86ICdwdWJsaWMnIHwgJ3ByaXZhdGUnIHwgJ25vLWNhY2hlJyB8ICduby1zdG9yZSc7XG4gIG1heEFnZT86IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IFBhcnNlck9wdGlvbnMpIHtcbiAgICB0aGlzLnZlcnNpb24gPSBjb25maWcudmVyc2lvbiB8fCBERUZBVUxUX1ZFUlNJT047XG4gIH1cblxuICBnZXQgaGVscGVyKCkge1xuICAgIHJldHVybiBPRGF0YUhlbHBlclt0aGlzLnZlcnNpb25dO1xuICB9XG5cbiAgY2xvbmUoKSB7XG4gICAgcmV0dXJuIG5ldyBPRGF0YVJlc3BvbnNlT3B0aW9ucyh0aGlzKTtcbiAgfVxuXG4gIHNldEZlYXR1cmVzKGZlYXR1cmVzOiBzdHJpbmcpIHtcbiAgICBmZWF0dXJlcy5zcGxpdCgnOycpLmZvckVhY2goKG8pID0+IHtcbiAgICAgIGxldCBbaywgdl0gPSBvLnNwbGl0KCc9Jyk7XG4gICAgICBzd2l0Y2ggKGsudHJpbSgpKSB7XG4gICAgICAgIGNhc2UgJ29kYXRhLm1ldGFkYXRhJzpcbiAgICAgICAgICB0aGlzLm1ldGFkYXRhID0gdiBhcyBPRGF0YU1ldGFkYXRhVHlwZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnb2RhdGEuc3RyZWFtaW5nJzpcbiAgICAgICAgICB0aGlzLnN0cmVhbWluZyA9IHYgPT0gJ3RydWUnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdJRUVFNzU0Q29tcGF0aWJsZSc6XG4gICAgICAgICAgdGhpcy5pZWVlNzU0Q29tcGF0aWJsZSA9IHYgPT0gJ3RydWUnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc2V0VmVyc2lvbih2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHZlcnNpb24ucmVwbGFjZSgvXFw7L2csICcnKS50cmltKCk7XG4gICAgaWYgKFtWRVJTSU9OXzJfMCwgVkVSU0lPTl8zXzAsIFZFUlNJT05fNF8wXS5pbmRleE9mKHZhbHVlKSAhPT0gLTEpXG4gICAgICB0aGlzLnZlcnNpb24gPSB2YWx1ZSBhcyBPRGF0YVZlcnNpb247XG4gIH1cblxuICBzZXRMb2NhdGlvbihsb2NhdGlvbjogc3RyaW5nKSB7XG4gICAgLy8gVE9ETzogcmVzb2x2ZSBsb2NhdGlvbj9cbiAgICB0aGlzLmxvY2F0aW9uID0gbG9jYXRpb247XG4gIH1cblxuICBzZXRQcmVmZXJlbmNlQXBwbGllZChwcmVmZXJlbmNlOiBzdHJpbmcpIHtcbiAgICBwcmVmZXJlbmNlLnNwbGl0KCcsJykuZm9yRWFjaCgocHJlZmVyKSA9PiB7XG4gICAgICAvLyBUT0RPOiByZXNvbHZlIHByZWZlcmVuY2VcbiAgICB9KTtcbiAgfVxuXG4gIHNldENhY2hlKGNhY2hlQ29udHJvbDogc3RyaW5nKSB7XG4gICAgY2FjaGVDb250cm9sLnNwbGl0KCcsJykuZm9yRWFjaCgoZGlyZWN0aXZlKSA9PiB7XG4gICAgICBpZiAoZGlyZWN0aXZlLnN0YXJ0c1dpdGgoTUFYX0FHRSkpIHtcbiAgICAgICAgbGV0IG1heEFnZSA9IE51bWJlcihkaXJlY3RpdmUuc3BsaXQoJz0nKVsxXSk7XG4gICAgICAgIGlmICghTnVtYmVyLmlzTmFOKG1heEFnZSkpIHRoaXMubWF4QWdlID0gbWF4QWdlO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBbJ3B1YmxpYycsICdwcml2YXRlJywgJ25vLWNhY2hlJywgJ25vLXN0b3JlJ10uaW5kZXhPZihkaXJlY3RpdmUpICE9PSAtMVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuY2FjaGVhYmlsaXR5ID0gZGlyZWN0aXZlIGFzIENhY2hlQ2FjaGVhYmlsaXR5O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=