UNPKG

@orbit/jsonapi

Version:

JSON:API support for Orbit.

46 lines 7.63 kB
import { JSONAPIBaseSerializer } from './jsonapi-base-serializer'; export class JSONAPIAtomicOperationsDocumentSerializer extends JSONAPIBaseSerializer { serialize(document) { const result = { 'atomic:operations': this.serializeAtomicOperations(document.operations) }; this.serializeLinks(document, result); this.serializeMeta(document, result); return result; } serializeAtomicOperations(operations) { return operations.map((operation) => this.serializeAtomicOperation(operation)); } serializeAtomicOperation(operation) { return this.atomicOperationSerializer.serialize(operation); } /* eslint-disable @typescript-eslint/no-unused-vars */ serializeLinks(document, resDocument) { } serializeMeta(document, resDocument) { } /* eslint-enable @typescript-eslint/no-unused-vars */ deserialize(document) { const result = { operations: this.deserializeAtomicOperations(document['atomic:operations']) }; this.deserializeLinks(document, result); this.deserializeMeta(document, result); return result; } deserializeAtomicOperations(operations) { return operations.map((operation) => this.deserializeAtomicOperation(operation)); } deserializeAtomicOperation(operation) { return this.atomicOperationSerializer.deserialize(operation); } deserializeLinks(resDocument, document) { if (resDocument.links) { document.links = resDocument.links; } } deserializeMeta(resDocument, document) { if (resDocument.meta) { document.meta = resDocument.meta; } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmFwaS1hdG9taWMtb3BlcmF0aW9ucy1kb2N1bWVudC1zZXJpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcmlhbGl6ZXJzL2pzb25hcGktYXRvbWljLW9wZXJhdGlvbnMtZG9jdW1lbnQtc2VyaWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVsRSxNQUFNLE9BQU8seUNBQTBDLFNBQVEscUJBSzlEO0lBQ0MsU0FBUyxDQUNQLFFBQWtDO1FBRWxDLE1BQU0sTUFBTSxHQUFxQztZQUMvQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMseUJBQXlCLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztTQUN6RSxDQUFDO1FBRUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFckMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVTLHlCQUF5QixDQUNqQyxVQUE2QjtRQUU3QixPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUNsQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQ3pDLENBQUM7SUFDSixDQUFDO0lBRVMsd0JBQXdCLENBQ2hDLFNBQTBCO1FBRTFCLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsc0RBQXNEO0lBQzVDLGNBQWMsQ0FDdEIsUUFBa0MsRUFDbEMsV0FBNkMsSUFDdEMsQ0FBQztJQUVBLGFBQWEsQ0FDckIsUUFBa0MsRUFDbEMsV0FBNkMsSUFDdEMsQ0FBQztJQUNWLHFEQUFxRDtJQUVyRCxXQUFXLENBQ1QsUUFBMEM7UUFFMUMsTUFBTSxNQUFNLEdBQTZCO1lBQ3ZDLFVBQVUsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQzFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUM5QjtTQUNGLENBQUM7UUFFRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXZDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCwyQkFBMkIsQ0FDekIsVUFBcUM7UUFFckMsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FDbEMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFNBQVMsQ0FBQyxDQUMzQyxDQUFDO0lBQ0osQ0FBQztJQUVELDBCQUEwQixDQUN4QixTQUFrQztRQUVsQyxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVTLGdCQUFnQixDQUN4QixXQUE2QyxFQUM3QyxRQUFrQztRQUVsQyxJQUFJLFdBQVcsQ0FBQyxLQUFLLEVBQUU7WUFDckIsUUFBUSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVTLGVBQWUsQ0FDdkIsV0FBNkMsRUFDN0MsUUFBa0M7UUFFbEMsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFO1lBQ3BCLFFBQVEsQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztTQUNsQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlY29yZE9wZXJhdGlvbiB9IGZyb20gJ0BvcmJpdC9yZWNvcmRzJztcbmltcG9ydCB7XG4gIFJlc291cmNlQXRvbWljT3BlcmF0aW9uLFxuICBSZWNvcmRPcGVyYXRpb25zRG9jdW1lbnQsXG4gIFJlc291cmNlQXRvbWljT3BlcmF0aW9uc0RvY3VtZW50XG59IGZyb20gJy4uL3Jlc291cmNlLW9wZXJhdGlvbnMnO1xuaW1wb3J0IHsgSlNPTkFQSUJhc2VTZXJpYWxpemVyIH0gZnJvbSAnLi9qc29uYXBpLWJhc2Utc2VyaWFsaXplcic7XG5cbmV4cG9ydCBjbGFzcyBKU09OQVBJQXRvbWljT3BlcmF0aW9uc0RvY3VtZW50U2VyaWFsaXplciBleHRlbmRzIEpTT05BUElCYXNlU2VyaWFsaXplcjxcbiAgUmVjb3JkT3BlcmF0aW9uc0RvY3VtZW50LFxuICBSZXNvdXJjZUF0b21pY09wZXJhdGlvbnNEb2N1bWVudCxcbiAgdW5rbm93bixcbiAgdW5rbm93blxuPiB7XG4gIHNlcmlhbGl6ZShcbiAgICBkb2N1bWVudDogUmVjb3JkT3BlcmF0aW9uc0RvY3VtZW50XG4gICk6IFJlc291cmNlQXRvbWljT3BlcmF0aW9uc0RvY3VtZW50IHtcbiAgICBjb25zdCByZXN1bHQ6IFJlc291cmNlQXRvbWljT3BlcmF0aW9uc0RvY3VtZW50ID0ge1xuICAgICAgJ2F0b21pYzpvcGVyYXRpb25zJzogdGhpcy5zZXJpYWxpemVBdG9taWNPcGVyYXRpb25zKGRvY3VtZW50Lm9wZXJhdGlvbnMpXG4gICAgfTtcblxuICAgIHRoaXMuc2VyaWFsaXplTGlua3MoZG9jdW1lbnQsIHJlc3VsdCk7XG4gICAgdGhpcy5zZXJpYWxpemVNZXRhKGRvY3VtZW50LCByZXN1bHQpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXJpYWxpemVBdG9taWNPcGVyYXRpb25zKFxuICAgIG9wZXJhdGlvbnM6IFJlY29yZE9wZXJhdGlvbltdXG4gICk6IFJlc291cmNlQXRvbWljT3BlcmF0aW9uW10ge1xuICAgIHJldHVybiBvcGVyYXRpb25zLm1hcCgob3BlcmF0aW9uKSA9PlxuICAgICAgdGhpcy5zZXJpYWxpemVBdG9taWNPcGVyYXRpb24ob3BlcmF0aW9uKVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VyaWFsaXplQXRvbWljT3BlcmF0aW9uKFxuICAgIG9wZXJhdGlvbjogUmVjb3JkT3BlcmF0aW9uXG4gICk6IFJlc291cmNlQXRvbWljT3BlcmF0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5hdG9taWNPcGVyYXRpb25TZXJpYWxpemVyLnNlcmlhbGl6ZShvcGVyYXRpb24pO1xuICB9XG5cbiAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG4gIHByb3RlY3RlZCBzZXJpYWxpemVMaW5rcyhcbiAgICBkb2N1bWVudDogUmVjb3JkT3BlcmF0aW9uc0RvY3VtZW50LFxuICAgIHJlc0RvY3VtZW50OiBSZXNvdXJjZUF0b21pY09wZXJhdGlvbnNEb2N1bWVudFxuICApOiB2b2lkIHt9XG5cbiAgcHJvdGVjdGVkIHNlcmlhbGl6ZU1ldGEoXG4gICAgZG9jdW1lbnQ6IFJlY29yZE9wZXJhdGlvbnNEb2N1bWVudCxcbiAgICByZXNEb2N1bWVudDogUmVzb3VyY2VBdG9taWNPcGVyYXRpb25zRG9jdW1lbnRcbiAgKTogdm9pZCB7fVxuICAvKiBlc2xpbnQtZW5hYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuXG4gIGRlc2VyaWFsaXplKFxuICAgIGRvY3VtZW50OiBSZXNvdXJjZUF0b21pY09wZXJhdGlvbnNEb2N1bWVudFxuICApOiBSZWNvcmRPcGVyYXRpb25zRG9jdW1lbnQge1xuICAgIGNvbnN0IHJlc3VsdDogUmVjb3JkT3BlcmF0aW9uc0RvY3VtZW50ID0ge1xuICAgICAgb3BlcmF0aW9uczogdGhpcy5kZXNlcmlhbGl6ZUF0b21pY09wZXJhdGlvbnMoXG4gICAgICAgIGRvY3VtZW50WydhdG9taWM6b3BlcmF0aW9ucyddXG4gICAgICApXG4gICAgfTtcblxuICAgIHRoaXMuZGVzZXJpYWxpemVMaW5rcyhkb2N1bWVudCwgcmVzdWx0KTtcbiAgICB0aGlzLmRlc2VyaWFsaXplTWV0YShkb2N1bWVudCwgcmVzdWx0KTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBkZXNlcmlhbGl6ZUF0b21pY09wZXJhdGlvbnMoXG4gICAgb3BlcmF0aW9uczogUmVzb3VyY2VBdG9taWNPcGVyYXRpb25bXVxuICApOiBSZWNvcmRPcGVyYXRpb25bXSB7XG4gICAgcmV0dXJuIG9wZXJhdGlvbnMubWFwKChvcGVyYXRpb24pID0+XG4gICAgICB0aGlzLmRlc2VyaWFsaXplQXRvbWljT3BlcmF0aW9uKG9wZXJhdGlvbilcbiAgICApO1xuICB9XG5cbiAgZGVzZXJpYWxpemVBdG9taWNPcGVyYXRpb24oXG4gICAgb3BlcmF0aW9uOiBSZXNvdXJjZUF0b21pY09wZXJhdGlvblxuICApOiBSZWNvcmRPcGVyYXRpb24ge1xuICAgIHJldHVybiB0aGlzLmF0b21pY09wZXJhdGlvblNlcmlhbGl6ZXIuZGVzZXJpYWxpemUob3BlcmF0aW9uKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZXNlcmlhbGl6ZUxpbmtzKFxuICAgIHJlc0RvY3VtZW50OiBSZXNvdXJjZUF0b21pY09wZXJhdGlvbnNEb2N1bWVudCxcbiAgICBkb2N1bWVudDogUmVjb3JkT3BlcmF0aW9uc0RvY3VtZW50XG4gICk6IHZvaWQge1xuICAgIGlmIChyZXNEb2N1bWVudC5saW5rcykge1xuICAgICAgZG9jdW1lbnQubGlua3MgPSByZXNEb2N1bWVudC5saW5rcztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZGVzZXJpYWxpemVNZXRhKFxuICAgIHJlc0RvY3VtZW50OiBSZXNvdXJjZUF0b21pY09wZXJhdGlvbnNEb2N1bWVudCxcbiAgICBkb2N1bWVudDogUmVjb3JkT3BlcmF0aW9uc0RvY3VtZW50XG4gICk6IHZvaWQge1xuICAgIGlmIChyZXNEb2N1bWVudC5tZXRhKSB7XG4gICAgICBkb2N1bWVudC5tZXRhID0gcmVzRG9jdW1lbnQubWV0YTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==