@rest-api/react-models
Version:
[](https://www.npmjs.com/package/@rest-api/react-models) [](https://codecov.io/gh/hector7/rest-
37 lines (36 loc) • 1.25 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const Schema_1 = require("./Schema");
const BasicRestModel_1 = __importDefault(require("./restmodels/basic/BasicRestModel"));
class ModelConstructor {
constructor(getItemsStructure, getItems, getMetaData) {
this.itemStructure = getItemsStructure;
}
getItemsStructure(schema) {
if (this.itemStructure) {
return this.itemStructure(schema);
}
return undefined;
}
getItems() {
if (this.items)
return this.items;
return undefined;
}
getMetaData() {
if (this.metaData)
return this.metaData;
return undefined;
}
get routeOpts() {
return {};
}
getModel(schema, idKey, url) {
return new BasicRestModel_1.default(schema, idKey, url, this.getItemsStructure(schema), this.getItems(), this.getMetaData(), this.routeOpts);
}
}
exports.default = ModelConstructor;
const model = new ModelConstructor().getModel(Schema_1.Schema.getSchema({ id: { type: Number, required: true } }), 'id', '');