UNPKG

redink

Version:
49 lines (35 loc) 5.26 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _hasOwnProperty = require('./hasOwnProperty'); var _hasOwnProperty2 = _interopRequireDefault(_hasOwnProperty); var _queries = require('../queries'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /* eslint-disable no-param-reassign */ exports.default = function (record, schema, id) { var syncRelationshipsArray = []; Object.keys(schema.relationships).forEach(function (relationship) { var relationshipObject = schema.relationships[relationship]; var field = relationshipObject.field; var relation = relationshipObject.relation; var inverse = relationshipObject.inverse; var inverseType = inverse.type; var inverseField = inverse.field; var inverseRelation = inverse.relation; var data = record[field]; var queryToPush = void 0; if ((0, _hasOwnProperty2.default)(record, field)) { if (inverseRelation === 'hasMany') { var dataCoercedToArray = Array.isArray(data) ? data : [data]; queryToPush = (0, _queries.pushIdToInverseField)(inverseType, inverseField, [], dataCoercedToArray, id); } if (inverseRelation === 'hasOne') { queryToPush = relation === 'hasMany' ? (0, _queries.putIdToManyRecordsField)(inverseType, data, inverseField, id) : (0, _queries.putIdToRecordField)(inverseType, data, inverseField, id); } if (queryToPush) syncRelationshipsArray.push(queryToPush); } }); return syncRelationshipsArray; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9zeW5jUmVsYXRpb25zaGlwcy5qcyJdLCJuYW1lcyI6WyJyZWNvcmQiLCJzY2hlbWEiLCJpZCIsInN5bmNSZWxhdGlvbnNoaXBzQXJyYXkiLCJPYmplY3QiLCJrZXlzIiwicmVsYXRpb25zaGlwcyIsImZvckVhY2giLCJyZWxhdGlvbnNoaXBPYmplY3QiLCJyZWxhdGlvbnNoaXAiLCJmaWVsZCIsInJlbGF0aW9uIiwiaW52ZXJzZSIsImludmVyc2VUeXBlIiwidHlwZSIsImludmVyc2VGaWVsZCIsImludmVyc2VSZWxhdGlvbiIsImRhdGEiLCJxdWVyeVRvUHVzaCIsImRhdGFDb2VyY2VkVG9BcnJheSIsIkFycmF5IiwiaXNBcnJheSIsInB1c2giXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBOzs7O0FBRUE7Ozs7QUFIQTtrQkFTZSxVQUFDQSxNQUFELEVBQVNDLE1BQVQsRUFBaUJDLEVBQWpCLEVBQXdCO0FBQ3JDLE1BQU1DLHlCQUF5QixFQUEvQjs7QUFFQUMsU0FBT0MsSUFBUCxDQUFZSixPQUFPSyxhQUFuQixFQUFrQ0MsT0FBbEMsQ0FBMEMsd0JBQWdCO0FBQ3hELFFBQU1DLHFCQUFxQlAsT0FBT0ssYUFBUCxDQUFxQkcsWUFBckIsQ0FBM0I7QUFEd0QsUUFFaERDLEtBRmdELEdBRW5CRixrQkFGbUIsQ0FFaERFLEtBRmdEO0FBQUEsUUFFekNDLFFBRnlDLEdBRW5CSCxrQkFGbUIsQ0FFekNHLFFBRnlDO0FBQUEsUUFFL0JDLE9BRitCLEdBRW5CSixrQkFGbUIsQ0FFL0JJLE9BRitCO0FBQUEsUUFHMUNDLFdBSDBDLEdBR3NCRCxPQUh0QixDQUdoREUsSUFIZ0Q7QUFBQSxRQUd0QkMsWUFIc0IsR0FHc0JILE9BSHRCLENBRzdCRixLQUg2QjtBQUFBLFFBR0VNLGVBSEYsR0FHc0JKLE9BSHRCLENBR1JELFFBSFE7OztBQUt4RCxRQUFNTSxPQUFPakIsT0FBT1UsS0FBUCxDQUFiOztBQUVBLFFBQUlRLG9CQUFKOztBQUVBLFFBQUksOEJBQWVsQixNQUFmLEVBQXVCVSxLQUF2QixDQUFKLEVBQW1DO0FBQ2pDLFVBQUlNLG9CQUFvQixTQUF4QixFQUFtQztBQUNqQyxZQUFNRyxxQkFBcUJDLE1BQU1DLE9BQU4sQ0FBY0osSUFBZCxJQUFzQkEsSUFBdEIsR0FBNkIsQ0FBQ0EsSUFBRCxDQUF4RDtBQUNBQyxzQkFBYyxtQ0FBcUJMLFdBQXJCLEVBQWtDRSxZQUFsQyxFQUFnRCxFQUFoRCxFQUFvREksa0JBQXBELEVBQXdFakIsRUFBeEUsQ0FBZDtBQUNEOztBQUVELFVBQUljLG9CQUFvQixRQUF4QixFQUFrQztBQUNoQ0Usc0JBQWNQLGFBQWEsU0FBYixHQUNWLHNDQUF3QkUsV0FBeEIsRUFBcUNJLElBQXJDLEVBQTJDRixZQUEzQyxFQUF5RGIsRUFBekQsQ0FEVSxHQUVWLGlDQUFtQlcsV0FBbkIsRUFBZ0NJLElBQWhDLEVBQXNDRixZQUF0QyxFQUFvRGIsRUFBcEQsQ0FGSjtBQUdEOztBQUVELFVBQUlnQixXQUFKLEVBQWlCZix1QkFBdUJtQixJQUF2QixDQUE0QkosV0FBNUI7QUFDbEI7QUFDRixHQXZCRDs7QUF5QkEsU0FBT2Ysc0JBQVA7QUFDRCxDIiwiZmlsZSI6InN5bmNSZWxhdGlvbnNoaXBzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCBoYXNPd25Qcm9wZXJ0eSBmcm9tICcuL2hhc093blByb3BlcnR5JztcblxuaW1wb3J0IHtcbiAgcHVzaElkVG9JbnZlcnNlRmllbGQsXG4gIHB1dElkVG9SZWNvcmRGaWVsZCxcbiAgcHV0SWRUb01hbnlSZWNvcmRzRmllbGQsXG59IGZyb20gJy4uL3F1ZXJpZXMnO1xuXG5leHBvcnQgZGVmYXVsdCAocmVjb3JkLCBzY2hlbWEsIGlkKSA9PiB7XG4gIGNvbnN0IHN5bmNSZWxhdGlvbnNoaXBzQXJyYXkgPSBbXTtcblxuICBPYmplY3Qua2V5cyhzY2hlbWEucmVsYXRpb25zaGlwcykuZm9yRWFjaChyZWxhdGlvbnNoaXAgPT4ge1xuICAgIGNvbnN0IHJlbGF0aW9uc2hpcE9iamVjdCA9IHNjaGVtYS5yZWxhdGlvbnNoaXBzW3JlbGF0aW9uc2hpcF07XG4gICAgY29uc3QgeyBmaWVsZCwgcmVsYXRpb24sIGludmVyc2UgfSA9IHJlbGF0aW9uc2hpcE9iamVjdDtcbiAgICBjb25zdCB7IHR5cGU6IGludmVyc2VUeXBlLCBmaWVsZDogaW52ZXJzZUZpZWxkLCByZWxhdGlvbjogaW52ZXJzZVJlbGF0aW9uIH0gPSBpbnZlcnNlO1xuXG4gICAgY29uc3QgZGF0YSA9IHJlY29yZFtmaWVsZF07XG5cbiAgICBsZXQgcXVlcnlUb1B1c2g7XG5cbiAgICBpZiAoaGFzT3duUHJvcGVydHkocmVjb3JkLCBmaWVsZCkpIHtcbiAgICAgIGlmIChpbnZlcnNlUmVsYXRpb24gPT09ICdoYXNNYW55Jykge1xuICAgICAgICBjb25zdCBkYXRhQ29lcmNlZFRvQXJyYXkgPSBBcnJheS5pc0FycmF5KGRhdGEpID8gZGF0YSA6IFtkYXRhXTtcbiAgICAgICAgcXVlcnlUb1B1c2ggPSBwdXNoSWRUb0ludmVyc2VGaWVsZChpbnZlcnNlVHlwZSwgaW52ZXJzZUZpZWxkLCBbXSwgZGF0YUNvZXJjZWRUb0FycmF5LCBpZCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChpbnZlcnNlUmVsYXRpb24gPT09ICdoYXNPbmUnKSB7XG4gICAgICAgIHF1ZXJ5VG9QdXNoID0gcmVsYXRpb24gPT09ICdoYXNNYW55J1xuICAgICAgICAgID8gcHV0SWRUb01hbnlSZWNvcmRzRmllbGQoaW52ZXJzZVR5cGUsIGRhdGEsIGludmVyc2VGaWVsZCwgaWQpXG4gICAgICAgICAgOiBwdXRJZFRvUmVjb3JkRmllbGQoaW52ZXJzZVR5cGUsIGRhdGEsIGludmVyc2VGaWVsZCwgaWQpO1xuICAgICAgfVxuXG4gICAgICBpZiAocXVlcnlUb1B1c2gpIHN5bmNSZWxhdGlvbnNoaXBzQXJyYXkucHVzaChxdWVyeVRvUHVzaCk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gc3luY1JlbGF0aW9uc2hpcHNBcnJheTtcbn07XG4iXX0=