UNPKG

pretur.clay

Version:
41 lines 6.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var Value_1 = require("./Value"); var Record_1 = require("./Record"); var Set_1 = require("./Set"); function buildFields(pool, spec, values) { if (values === void 0) { values = {}; } var fields = {}; for (var _i = 0, _a = spec.attributes; _i < _a.length; _i++) { var attribute = _a[_i]; fields[attribute.name] = new Value_1.Value(values[attribute.name]); } for (var _b = 0, _c = spec.relations; _b < _c.length; _b++) { var relation = _c[_b]; var target = pool[relation.target.scope][relation.target.model]; if (values[relation.alias]) { switch (relation.type) { case 'DETAIL': case 'MANY_TO_MANY': fields[relation.alias] = buildSet(pool, target, values[relation.alias]); break; default: fields[relation.alias] = buildRecord(pool, target, values[relation.alias]); } } } return fields; } exports.buildFields = buildFields; function buildRecord(pool, spec, values, state) { if (values === void 0) { values = {}; } if (state === void 0) { state = 'normal'; } return new Record_1.Record(buildFields(pool, spec, values), undefined, state); } exports.buildRecord = buildRecord; function buildSet(pool, spec, items) { if (items === void 0) { items = []; } return new Set_1.Set(items.map(function (item) { return buildRecord(pool, spec, item); })); } exports.buildSet = buildSet; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ZpZWxkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLGlDQUFnQztBQUNoQyxtQ0FBa0M7QUFDbEMsNkJBQTRCO0FBTzVCLHFCQUNFLElBQWMsRUFDZCxJQUFhLEVBQ2IsTUFBOEI7SUFBOUIsdUJBQUEsRUFBQSxXQUE4QjtJQUU5QixJQUFNLE1BQU0sR0FBUSxFQUFFLENBQUM7SUFFdkIsR0FBRyxDQUFDLENBQW9CLFVBQWUsRUFBZixLQUFBLElBQUksQ0FBQyxVQUFVLEVBQWYsY0FBZSxFQUFmLElBQWU7UUFBbEMsSUFBTSxTQUFTLFNBQUE7UUFDbEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGFBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7S0FDNUQ7SUFFRCxHQUFHLENBQUMsQ0FBbUIsVUFBYyxFQUFkLEtBQUEsSUFBSSxDQUFDLFNBQVMsRUFBZCxjQUFjLEVBQWQsSUFBYztRQUFoQyxJQUFNLFFBQVEsU0FBQTtRQUNqQixJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUN0QixLQUFLLFFBQVEsQ0FBQztnQkFDZCxLQUFLLGNBQWM7b0JBQ2pCLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUN4RSxLQUFLLENBQUM7Z0JBQ1I7b0JBQ0UsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDL0UsQ0FBQztRQUNILENBQUM7S0FDRjtJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQTFCRCxrQ0EwQkM7QUFFRCxxQkFDRSxJQUFjLEVBQ2QsSUFBYSxFQUNiLE1BQThCLEVBQzlCLEtBQXVCO0lBRHZCLHVCQUFBLEVBQUEsV0FBOEI7SUFDOUIsc0JBQUEsRUFBQSxnQkFBdUI7SUFFdkIsTUFBTSxDQUFDLElBQUksZUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBUEQsa0NBT0M7QUFFRCxrQkFDRSxJQUFjLEVBQ2QsSUFBYSxFQUNiLEtBQStCO0lBQS9CLHNCQUFBLEVBQUEsVUFBK0I7SUFFL0IsTUFBTSxDQUFDLElBQUksU0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBN0IsQ0FBNkIsQ0FBQyxDQUFDLENBQUM7QUFDbkUsQ0FBQztBQU5ELDRCQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3BlYywgU3BlY1R5cGUsIE1vZGVsLCBTcGVjUG9vbCB9IGZyb20gJ3ByZXR1ci5zcGVjJztcclxuaW1wb3J0IHsgU3RhdGUgfSBmcm9tICcuL2NsYXknO1xyXG5pbXBvcnQgeyBWYWx1ZSB9IGZyb20gJy4vVmFsdWUnO1xyXG5pbXBvcnQgeyBSZWNvcmQgfSBmcm9tICcuL1JlY29yZCc7XHJcbmltcG9ydCB7IFNldCB9IGZyb20gJy4vU2V0JztcclxuXHJcbmV4cG9ydCB0eXBlIEZpZWxkczxUIGV4dGVuZHMgU3BlY1R5cGU+ID1cclxuICAmIHtbUCBpbiBrZXlvZiBUWydmaWVsZHMnXV06IFZhbHVlPFRbJ2ZpZWxkcyddW1BdPn1cclxuICAmIHtbUCBpbiBrZXlvZiBUWydyZWNvcmRzJ11dOiBSZWNvcmQ8VFsncmVjb3JkcyddW1BdPn1cclxuICAmIHtbUCBpbiBrZXlvZiBUWydzZXRzJ11dOiBTZXQ8VFsnc2V0cyddW1BdPn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRGaWVsZHM8VCBleHRlbmRzIFNwZWNUeXBlPihcclxuICBwb29sOiBTcGVjUG9vbCxcclxuICBzcGVjOiBTcGVjPFQ+LFxyXG4gIHZhbHVlczogUGFydGlhbDxNb2RlbDxUPj4gPSB7fSxcclxuKTogRmllbGRzPFQ+IHtcclxuICBjb25zdCBmaWVsZHM6IGFueSA9IHt9O1xyXG5cclxuICBmb3IgKGNvbnN0IGF0dHJpYnV0ZSBvZiBzcGVjLmF0dHJpYnV0ZXMpIHtcclxuICAgIGZpZWxkc1thdHRyaWJ1dGUubmFtZV0gPSBuZXcgVmFsdWUodmFsdWVzW2F0dHJpYnV0ZS5uYW1lXSk7XHJcbiAgfVxyXG5cclxuICBmb3IgKGNvbnN0IHJlbGF0aW9uIG9mIHNwZWMucmVsYXRpb25zKSB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBwb29sW3JlbGF0aW9uLnRhcmdldC5zY29wZV1bcmVsYXRpb24udGFyZ2V0Lm1vZGVsXTtcclxuICAgIGlmICh2YWx1ZXNbcmVsYXRpb24uYWxpYXNdKSB7XHJcbiAgICAgIHN3aXRjaCAocmVsYXRpb24udHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ0RFVEFJTCc6XHJcbiAgICAgICAgY2FzZSAnTUFOWV9UT19NQU5ZJzpcclxuICAgICAgICAgIGZpZWxkc1tyZWxhdGlvbi5hbGlhc10gPSBidWlsZFNldChwb29sLCB0YXJnZXQsIHZhbHVlc1tyZWxhdGlvbi5hbGlhc10pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGZpZWxkc1tyZWxhdGlvbi5hbGlhc10gPSBidWlsZFJlY29yZChwb29sLCB0YXJnZXQsIHZhbHVlc1tyZWxhdGlvbi5hbGlhc10pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZmllbGRzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRSZWNvcmQ8VCBleHRlbmRzIFNwZWNUeXBlPihcclxuICBwb29sOiBTcGVjUG9vbCxcclxuICBzcGVjOiBTcGVjPFQ+LFxyXG4gIHZhbHVlczogUGFydGlhbDxNb2RlbDxUPj4gPSB7fSxcclxuICBzdGF0ZTogU3RhdGUgPSAnbm9ybWFsJyxcclxuKTogUmVjb3JkPFQ+IHtcclxuICByZXR1cm4gbmV3IFJlY29yZChidWlsZEZpZWxkcyhwb29sLCBzcGVjLCB2YWx1ZXMpLCB1bmRlZmluZWQsIHN0YXRlKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkU2V0PFQgZXh0ZW5kcyBTcGVjVHlwZT4oXHJcbiAgcG9vbDogU3BlY1Bvb2wsXHJcbiAgc3BlYzogU3BlYzxUPixcclxuICBpdGVtczogUGFydGlhbDxNb2RlbDxUPj5bXSA9IFtdLFxyXG4pOiBTZXQ8VD4ge1xyXG4gIHJldHVybiBuZXcgU2V0KGl0ZW1zLm1hcChpdGVtID0+IGJ1aWxkUmVjb3JkKHBvb2wsIHNwZWMsIGl0ZW0pKSk7XHJcbn1cclxuIl19