angular-odata
Version:
Client side OData typescript library for Angular
41 lines • 6.26 kB
JavaScript
import { CsdlReference } from './csdl/csdl-reference';
import { CsdlSchema } from './csdl/csdl-schema';
export class ODataMetadata {
Version;
References;
Schemas;
constructor(Version, References, Schemas) {
this.Version = Version;
this.References = References?.map((r) => new CsdlReference(r));
this.Schemas = Schemas?.map((s) => new CsdlSchema(s));
}
toConfig(base) {
return {
...base,
version: base?.version ?? this.Version,
schemas: (this.Schemas ?? []).map((ms) => ms.toConfig(base?.schemas?.find((cs) => cs.namespace === ms.Namespace))),
references: (this.References ?? []).map((mr) => mr.toConfig(base?.references?.find((cs) => cs.uri === mr.Uri))),
};
}
toJson() {
return {
Version: this.Version,
References: this.References.map((r) => r.toJson()),
Schemas: this.Schemas.map((s) => s.toJson()),
};
}
functions() {
return this.Schemas.reduce((acc, s) => {
return [...acc, ...(s.Function ?? [])];
}, []);
}
actions() {
return this.Schemas.reduce((acc, s) => {
return [...acc, ...(s.Action ?? [])];
}, []);
}
static fromJson(json) {
return new ODataMetadata(json.Version, json.References, json.Schemas);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvbWV0YWRhdGEvbWV0YWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUdoRCxNQUFNLE9BQU8sYUFBYTtJQUN4QixPQUFPLENBQVM7SUFDaEIsVUFBVSxDQUFrQjtJQUM1QixPQUFPLENBQWU7SUFDdEIsWUFBWSxPQUFlLEVBQUUsVUFBaUIsRUFBRSxPQUFjO1FBQzVELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUF5QjtRQUNoQyxPQUFPO1lBQ0wsR0FBRyxJQUFJO1lBQ1AsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLElBQUssSUFBSSxDQUFDLE9BQXdCO1lBQ3hELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FDdkMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDeEU7WUFDRCxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQzdDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQy9EO1NBQ1csQ0FBQztJQUNqQixDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU87WUFDTCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEQsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDN0MsQ0FBQztJQUNKLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNwQyxPQUFPLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6QyxDQUFDLEVBQUUsRUFBb0IsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNwQyxPQUFPLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN2QyxDQUFDLEVBQUUsRUFBa0IsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQVM7UUFDdkIsT0FBTyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENzZGxBY3Rpb24sIENzZGxGdW5jdGlvbiB9IGZyb20gJy4vY3NkbC9jc2RsLWZ1bmN0aW9uLWFjdGlvbic7XG5pbXBvcnQgeyBDc2RsUmVmZXJlbmNlIH0gZnJvbSAnLi9jc2RsL2NzZGwtcmVmZXJlbmNlJztcbmltcG9ydCB7IENzZGxTY2hlbWEgfSBmcm9tICcuL2NzZGwvY3NkbC1zY2hlbWEnO1xuaW1wb3J0IHsgQXBpQ29uZmlnLCBPRGF0YVZlcnNpb24gfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBPRGF0YU1ldGFkYXRhIHtcbiAgVmVyc2lvbjogc3RyaW5nO1xuICBSZWZlcmVuY2VzOiBDc2RsUmVmZXJlbmNlW107XG4gIFNjaGVtYXM6IENzZGxTY2hlbWFbXTtcbiAgY29uc3RydWN0b3IoVmVyc2lvbjogc3RyaW5nLCBSZWZlcmVuY2VzOiBhbnlbXSwgU2NoZW1hczogYW55W10pIHtcbiAgICB0aGlzLlZlcnNpb24gPSBWZXJzaW9uO1xuICAgIHRoaXMuUmVmZXJlbmNlcyA9IFJlZmVyZW5jZXM/Lm1hcCgocikgPT4gbmV3IENzZGxSZWZlcmVuY2UocikpO1xuICAgIHRoaXMuU2NoZW1hcyA9IFNjaGVtYXM/Lm1hcCgocykgPT4gbmV3IENzZGxTY2hlbWEocykpO1xuICB9XG5cbiAgdG9Db25maWcoYmFzZT86IFBhcnRpYWw8QXBpQ29uZmlnPik6IEFwaUNvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmJhc2UsXG4gICAgICB2ZXJzaW9uOiBiYXNlPy52ZXJzaW9uID8/ICh0aGlzLlZlcnNpb24gYXMgT0RhdGFWZXJzaW9uKSxcbiAgICAgIHNjaGVtYXM6ICh0aGlzLlNjaGVtYXMgPz8gW10pLm1hcCgobXMpID0+XG4gICAgICAgIG1zLnRvQ29uZmlnKGJhc2U/LnNjaGVtYXM/LmZpbmQoKGNzKSA9PiBjcy5uYW1lc3BhY2UgPT09IG1zLk5hbWVzcGFjZSkpLFxuICAgICAgKSxcbiAgICAgIHJlZmVyZW5jZXM6ICh0aGlzLlJlZmVyZW5jZXMgPz8gW10pLm1hcCgobXIpID0+XG4gICAgICAgIG1yLnRvQ29uZmlnKGJhc2U/LnJlZmVyZW5jZXM/LmZpbmQoKGNzKSA9PiBjcy51cmkgPT09IG1yLlVyaSkpLFxuICAgICAgKSxcbiAgICB9IGFzIEFwaUNvbmZpZztcbiAgfVxuXG4gIHRvSnNvbigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgVmVyc2lvbjogdGhpcy5WZXJzaW9uLFxuICAgICAgUmVmZXJlbmNlczogdGhpcy5SZWZlcmVuY2VzLm1hcCgocikgPT4gci50b0pzb24oKSksXG4gICAgICBTY2hlbWFzOiB0aGlzLlNjaGVtYXMubWFwKChzKSA9PiBzLnRvSnNvbigpKSxcbiAgICB9O1xuICB9XG5cbiAgZnVuY3Rpb25zKCkge1xuICAgIHJldHVybiB0aGlzLlNjaGVtYXMucmVkdWNlKChhY2MsIHMpID0+IHtcbiAgICAgIHJldHVybiBbLi4uYWNjLCAuLi4ocy5GdW5jdGlvbiA/PyBbXSldO1xuICAgIH0sIFtdIGFzIENzZGxGdW5jdGlvbltdKTtcbiAgfVxuXG4gIGFjdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuU2NoZW1hcy5yZWR1Y2UoKGFjYywgcykgPT4ge1xuICAgICAgcmV0dXJuIFsuLi5hY2MsIC4uLihzLkFjdGlvbiA/PyBbXSldO1xuICAgIH0sIFtdIGFzIENzZGxBY3Rpb25bXSk7XG4gIH1cblxuICBzdGF0aWMgZnJvbUpzb24oanNvbjogYW55KTogT0RhdGFNZXRhZGF0YSB7XG4gICAgcmV0dXJuIG5ldyBPRGF0YU1ldGFkYXRhKGpzb24uVmVyc2lvbiwganNvbi5SZWZlcmVuY2VzLCBqc29uLlNjaGVtYXMpO1xuICB9XG59XG4iXX0=