claire-framework
Version:
- được viết bằng TypeScript - hỗ trợ websocket và HTTP request - hỗ trợ CLI để generate base project (claire-cli)
47 lines • 4.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
class AbstractQuery {
constructor(model, metadata) {
this.currentModel = model;
this.currentMetadata = metadata;
}
getProjectionFields(projection) {
return projection.map((key) => this.currentMetadata.getFieldByLogicName(key).fieldDataName);
}
convertToLogicObjects(dataObjects, projection) {
return dataObjects.map(dataObject => {
let result = new this.currentModel();
// @ts-ignore
this.currentMetadata.fields.filter((field) => !projection || projection.includes(field.fieldLogicName)).forEach((field) => {
if (dataObject[field.fieldDataName] !== null && dataObject[field.fieldDataName] !== undefined) {
if (field.getSetField) {
//-- avoid setter, assign directly to underlying data variable
result[field.fieldDataName] = dataObject[field.fieldDataName];
}
else {
result[field.fieldLogicName] = dataObject[field.fieldDataName];
}
}
});
return result;
});
}
convertToDataObjects(modelInstances) {
return modelInstances.map(instance => {
let result = {};
this.currentMetadata.fields.forEach(field => {
let value = instance[field.fieldDataName];
//-- getter can provider undesired default value so avoid it
if (value === undefined && !field.getSetField) {
value = instance[field.fieldLogicName];
}
if (value !== undefined) {
result[field.fieldDataName] = value;
}
});
return result;
});
}
}
exports.AbstractQuery = AbstractQuery;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RRdWVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9tb2RlbC9BYnN0cmFjdFF1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBSUEsTUFBc0IsYUFBYTtJQTBCL0IsWUFBc0IsS0FBNEMsRUFBRSxRQUF1QjtRQUN2RixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQztJQUNwQyxDQUFDO0lBRVMsbUJBQW1CLENBQUMsVUFBMEI7UUFDcEQsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBRSxDQUFDLGFBQWMsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFFUyxxQkFBcUIsQ0FBQyxXQUFrQixFQUFFLFVBQTJCO1FBQzNFLE9BQU8sV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNoQyxJQUFJLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQVMsQ0FBQztZQUM1QyxhQUFhO1lBQ2IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxjQUFlLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUN2SCxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsYUFBYyxDQUFDLEtBQUssSUFBSSxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsYUFBYyxDQUFDLEtBQUssU0FBUyxFQUFFO29CQUM3RixJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUU7d0JBQ25CLDhEQUE4RDt3QkFDOUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFjLENBQUMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLGFBQWMsQ0FBQyxDQUFDO3FCQUNuRTt5QkFBTTt3QkFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLGNBQWUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsYUFBYyxDQUFDLENBQUM7cUJBQ3BFO2lCQUNKO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE1BQVcsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUyxvQkFBb0IsQ0FBQyxjQUE0QjtRQUN2RCxPQUFPLGNBQWMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDakMsSUFBSSxNQUFNLEdBQVEsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDeEMsSUFBSSxLQUFLLEdBQUksUUFBZ0IsQ0FBQyxLQUFLLENBQUMsYUFBYyxDQUFDLENBQUM7Z0JBQ3BELDREQUE0RDtnQkFDNUQsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRTtvQkFDM0MsS0FBSyxHQUFJLFFBQWdCLENBQUMsS0FBSyxDQUFDLGNBQWUsQ0FBQyxDQUFDO2lCQUNwRDtnQkFDRCxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7b0JBQ3JCLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYyxDQUFDLEdBQUcsS0FBSyxDQUFDO2lCQUN4QztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBRUo7QUF0RUQsc0NBc0VDIn0=