UNPKG

@orbit/record-cache

Version:

Orbit base classes used to access and maintain a set of records.

50 lines 5.82 kB
import { cloneRecordIdentity } from '@orbit/records'; export function recordOperationChange(operation) { const record = operation.record; const change = { ...cloneRecordIdentity(record), remove: false, keys: [], attributes: [], relationships: [], meta: [], links: [] }; switch (operation.op) { case 'addRecord': case 'updateRecord': if (record.keys) { change.keys = Object.keys(record.keys); } if (record.attributes) { change.attributes = Object.keys(record.attributes); } if (record.relationships) { change.relationships = Object.keys(record.relationships); } if (record.meta) { change.meta = Object.keys(record.meta); } if (record.links) { change.links = Object.keys(record.links); } break; case 'replaceAttribute': change.attributes = [operation.attribute]; break; case 'replaceKey': change.keys = [operation.key]; break; case 'replaceRelatedRecord': case 'replaceRelatedRecords': case 'addToRelatedRecords': case 'removeFromRelatedRecords': change.relationships = [operation.relationship]; break; case 'removeRecord': change.remove = true; break; } return change; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLWNoYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saXZlLXF1ZXJ5L3JlY29yZC1jaGFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLG1CQUFtQixFQUdwQixNQUFNLGdCQUFnQixDQUFDO0FBV3hCLE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsU0FBMEI7SUFFMUIsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQTJCLENBQUM7SUFDckQsTUFBTSxNQUFNLEdBQWlCO1FBQzNCLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFDO1FBQzlCLE1BQU0sRUFBRSxLQUFLO1FBQ2IsSUFBSSxFQUFFLEVBQUU7UUFDUixVQUFVLEVBQUUsRUFBRTtRQUNkLGFBQWEsRUFBRSxFQUFFO1FBQ2pCLElBQUksRUFBRSxFQUFFO1FBQ1IsS0FBSyxFQUFFLEVBQUU7S0FDVixDQUFDO0lBRUYsUUFBUSxTQUFTLENBQUMsRUFBRSxFQUFFO1FBQ3BCLEtBQUssV0FBVyxDQUFDO1FBQ2pCLEtBQUssY0FBYztZQUNqQixJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUU7Z0JBQ2YsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN4QztZQUNELElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRTtnQkFDckIsTUFBTSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNwRDtZQUNELElBQUksTUFBTSxDQUFDLGFBQWEsRUFBRTtnQkFDeEIsTUFBTSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUMxRDtZQUNELElBQUksTUFBTSxDQUFDLElBQUksRUFBRTtnQkFDZixNQUFNLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3hDO1lBQ0QsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFO2dCQUNoQixNQUFNLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzFDO1lBQ0QsTUFBTTtRQUNSLEtBQUssa0JBQWtCO1lBQ3JCLE1BQU0sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDMUMsTUFBTTtRQUNSLEtBQUssWUFBWTtZQUNmLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUIsTUFBTTtRQUNSLEtBQUssc0JBQXNCLENBQUM7UUFDNUIsS0FBSyx1QkFBdUIsQ0FBQztRQUM3QixLQUFLLHFCQUFxQixDQUFDO1FBQzNCLEtBQUssMEJBQTBCO1lBQzdCLE1BQU0sQ0FBQyxhQUFhLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDaEQsTUFBTTtRQUNSLEtBQUssY0FBYztZQUNqQixNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNyQixNQUFNO0tBQ1Q7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5pdGlhbGl6ZWRSZWNvcmQsXG4gIGNsb25lUmVjb3JkSWRlbnRpdHksXG4gIFJlY29yZElkZW50aXR5LFxuICBSZWNvcmRPcGVyYXRpb25cbn0gZnJvbSAnQG9yYml0L3JlY29yZHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlY29yZENoYW5nZSBleHRlbmRzIFJlY29yZElkZW50aXR5IHtcbiAga2V5czogc3RyaW5nW107XG4gIGF0dHJpYnV0ZXM6IHN0cmluZ1tdO1xuICByZWxhdGlvbnNoaXBzOiBzdHJpbmdbXTtcbiAgbWV0YTogc3RyaW5nW107XG4gIGxpbmtzOiBzdHJpbmdbXTtcbiAgcmVtb3ZlOiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVjb3JkT3BlcmF0aW9uQ2hhbmdlKFxuICBvcGVyYXRpb246IFJlY29yZE9wZXJhdGlvblxuKTogUmVjb3JkQ2hhbmdlIHtcbiAgY29uc3QgcmVjb3JkID0gb3BlcmF0aW9uLnJlY29yZCBhcyBJbml0aWFsaXplZFJlY29yZDtcbiAgY29uc3QgY2hhbmdlOiBSZWNvcmRDaGFuZ2UgPSB7XG4gICAgLi4uY2xvbmVSZWNvcmRJZGVudGl0eShyZWNvcmQpLFxuICAgIHJlbW92ZTogZmFsc2UsXG4gICAga2V5czogW10sXG4gICAgYXR0cmlidXRlczogW10sXG4gICAgcmVsYXRpb25zaGlwczogW10sXG4gICAgbWV0YTogW10sXG4gICAgbGlua3M6IFtdXG4gIH07XG5cbiAgc3dpdGNoIChvcGVyYXRpb24ub3ApIHtcbiAgICBjYXNlICdhZGRSZWNvcmQnOlxuICAgIGNhc2UgJ3VwZGF0ZVJlY29yZCc6XG4gICAgICBpZiAocmVjb3JkLmtleXMpIHtcbiAgICAgICAgY2hhbmdlLmtleXMgPSBPYmplY3Qua2V5cyhyZWNvcmQua2V5cyk7XG4gICAgICB9XG4gICAgICBpZiAocmVjb3JkLmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgY2hhbmdlLmF0dHJpYnV0ZXMgPSBPYmplY3Qua2V5cyhyZWNvcmQuYXR0cmlidXRlcyk7XG4gICAgICB9XG4gICAgICBpZiAocmVjb3JkLnJlbGF0aW9uc2hpcHMpIHtcbiAgICAgICAgY2hhbmdlLnJlbGF0aW9uc2hpcHMgPSBPYmplY3Qua2V5cyhyZWNvcmQucmVsYXRpb25zaGlwcyk7XG4gICAgICB9XG4gICAgICBpZiAocmVjb3JkLm1ldGEpIHtcbiAgICAgICAgY2hhbmdlLm1ldGEgPSBPYmplY3Qua2V5cyhyZWNvcmQubWV0YSk7XG4gICAgICB9XG4gICAgICBpZiAocmVjb3JkLmxpbmtzKSB7XG4gICAgICAgIGNoYW5nZS5saW5rcyA9IE9iamVjdC5rZXlzKHJlY29yZC5saW5rcyk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdyZXBsYWNlQXR0cmlidXRlJzpcbiAgICAgIGNoYW5nZS5hdHRyaWJ1dGVzID0gW29wZXJhdGlvbi5hdHRyaWJ1dGVdO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAncmVwbGFjZUtleSc6XG4gICAgICBjaGFuZ2Uua2V5cyA9IFtvcGVyYXRpb24ua2V5XTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3JlcGxhY2VSZWxhdGVkUmVjb3JkJzpcbiAgICBjYXNlICdyZXBsYWNlUmVsYXRlZFJlY29yZHMnOlxuICAgIGNhc2UgJ2FkZFRvUmVsYXRlZFJlY29yZHMnOlxuICAgIGNhc2UgJ3JlbW92ZUZyb21SZWxhdGVkUmVjb3Jkcyc6XG4gICAgICBjaGFuZ2UucmVsYXRpb25zaGlwcyA9IFtvcGVyYXRpb24ucmVsYXRpb25zaGlwXTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3JlbW92ZVJlY29yZCc6XG4gICAgICBjaGFuZ2UucmVtb3ZlID0gdHJ1ZTtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIGNoYW5nZTtcbn1cbiJdfQ==