angular-odata
Version:
Client side OData typescript library for Angular
35 lines • 4.71 kB
JavaScript
import { map } from 'rxjs/operators';
import { $METADATA, ACCEPT, APPLICATION_XML } from '../../constants';
import { PathSegment } from '../../types';
import { ODataPathSegments } from '../path';
import { ODataResource } from '../resource';
import { ODataMetadataParser } from '../../metadata';
export class ODataMetadataResource extends ODataResource {
constructor(api, segments) {
super(api, { segments });
}
//#region Factory
static factory(api) {
let segments = new ODataPathSegments();
segments.add(PathSegment.metadata, $METADATA);
return new ODataMetadataResource(api, segments);
}
clone() {
return super.clone();
}
//#endregion
//#region Requests
get(options) {
return super.get({
responseType: 'text',
...options,
headers: { [ACCEPT]: APPLICATION_XML },
});
}
//#endregion
//#region Shortcuts
fetch(options) {
return this.get(options).pipe(map((body) => new ODataMetadataParser(body).metadata()));
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3R5cGVzL21ldGFkYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxhQUFrQjtJQUMzRCxZQUFZLEdBQWEsRUFBRSxRQUE0QjtRQUNyRCxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsaUJBQWlCO0lBQ2pCLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBYTtRQUMxQixJQUFJLFFBQVEsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDdkMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVRLEtBQUs7UUFDWixPQUFPLEtBQUssQ0FBQyxLQUFLLEVBQTJCLENBQUM7SUFDaEQsQ0FBQztJQUNELFlBQVk7SUFFWixrQkFBa0I7SUFDQyxHQUFHLENBQUMsT0FBc0I7UUFDM0MsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQ2YsWUFBWSxFQUFFLE1BQU07WUFDcEIsR0FBRyxPQUFPO1lBQ1YsT0FBTyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxlQUFlLEVBQUU7U0FDdkMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFlBQVk7SUFFWixtQkFBbUI7SUFDbkIsS0FBSyxDQUFDLE9BQXNCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzNCLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUM3RCxDQUFDO0lBQ0osQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT0RhdGFBcGkgfSBmcm9tICcuLi8uLi9hcGknO1xuaW1wb3J0IHsgJE1FVEFEQVRBLCBBQ0NFUFQsIEFQUExJQ0FUSU9OX1hNTCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBQYXRoU2VnbWVudCB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IE9EYXRhUGF0aFNlZ21lbnRzIH0gZnJvbSAnLi4vcGF0aCc7XG5pbXBvcnQgeyBPRGF0YVJlc291cmNlIH0gZnJvbSAnLi4vcmVzb3VyY2UnO1xuaW1wb3J0IHsgT0RhdGFPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcbmltcG9ydCB7IE9EYXRhTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tZXRhZGF0YS9tZXRhZGF0YSc7XG5pbXBvcnQgeyBPRGF0YU1ldGFkYXRhUGFyc2VyIH0gZnJvbSAnLi4vLi4vbWV0YWRhdGEnO1xuXG5leHBvcnQgY2xhc3MgT0RhdGFNZXRhZGF0YVJlc291cmNlIGV4dGVuZHMgT0RhdGFSZXNvdXJjZTxhbnk+IHtcbiAgY29uc3RydWN0b3IoYXBpOiBPRGF0YUFwaSwgc2VnbWVudHM/OiBPRGF0YVBhdGhTZWdtZW50cykge1xuICAgIHN1cGVyKGFwaSwgeyBzZWdtZW50cyB9KTtcbiAgfVxuXG4gIC8vI3JlZ2lvbiBGYWN0b3J5XG4gIHN0YXRpYyBmYWN0b3J5KGFwaTogT0RhdGFBcGkpIHtcbiAgICBsZXQgc2VnbWVudHMgPSBuZXcgT0RhdGFQYXRoU2VnbWVudHMoKTtcbiAgICBzZWdtZW50cy5hZGQoUGF0aFNlZ21lbnQubWV0YWRhdGEsICRNRVRBREFUQSk7XG4gICAgcmV0dXJuIG5ldyBPRGF0YU1ldGFkYXRhUmVzb3VyY2UoYXBpLCBzZWdtZW50cyk7XG4gIH1cblxuICBvdmVycmlkZSBjbG9uZSgpOiBPRGF0YU1ldGFkYXRhUmVzb3VyY2Uge1xuICAgIHJldHVybiBzdXBlci5jbG9uZSgpIGFzIE9EYXRhTWV0YWRhdGFSZXNvdXJjZTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gUmVxdWVzdHNcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldChvcHRpb25zPzogT0RhdGFPcHRpb25zKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0KHtcbiAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGhlYWRlcnM6IHsgW0FDQ0VQVF06IEFQUExJQ0FUSU9OX1hNTCB9LFxuICAgIH0pO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBTaG9ydGN1dHNcbiAgZmV0Y2gob3B0aW9ucz86IE9EYXRhT3B0aW9ucyk6IE9ic2VydmFibGU8T0RhdGFNZXRhZGF0YT4ge1xuICAgIHJldHVybiB0aGlzLmdldChvcHRpb25zKS5waXBlKFxuICAgICAgbWFwKChib2R5OiBhbnkpID0+IG5ldyBPRGF0YU1ldGFkYXRhUGFyc2VyKGJvZHkpLm1ldGFkYXRhKCkpLFxuICAgICk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG59XG4iXX0=