@tjc-group/odata-v2-service-metadata
Version:
Limited version of OData metadata response for OData V2, based on odata-v4-service-metadata
46 lines • 1.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const odata_v4_metadata_1 = require("@tjc-group/odata-v4-metadata");
const xmlMetadataV2_1 = require("./xmlMetadataV2");
const defineEntitiesV2_1 = require("./defineEntitiesV2");
class ServiceMetadata {
static processMetadataJson(json, options) {
var edmx = new odata_v4_metadata_1.Edm.Edmx(json);
return new this(edmx, options);
}
static processEdmx(edmx, options) {
return new this(edmx, options);
}
static defineEntities(entityConfig, options) {
var json = defineEntitiesV2_1.defineEntities(entityConfig);
var edmx = new odata_v4_metadata_1.Edm.Edmx(json);
return new this(edmx, options);
}
constructor(edmx, options) {
this.edmx = edmx;
this.process(edmx, options);
}
document(format) {
switch (format) {
case 'json':
case 'application/json':
throw new Error('Not implemented');
default: return this.data;
}
}
process(edmx, options) {
var xmlMetadata = new xmlMetadataV2_1.XmlMetadata(options, edmx);
this.data = xmlMetadata.processMetadata();
}
requestHandler(format) {
return (_, res, __) => {
res.set('Content-Type', 'application/xml');
res.send(this.document(format));
};
}
valueOf() {
return this.data;
}
}
exports.ServiceMetadata = ServiceMetadata;
//# sourceMappingURL=metadata.js.map