@orbit/jsonapi
Version:
JSON:API support for Orbit.
45 lines • 8.05 kB
JavaScript
import { BaseSerializer } from '@orbit/serializers';
import { JSONAPISerializers } from './jsonapi-serializers';
export class JSONAPIBaseSerializer extends BaseSerializer {
constructor(settings) {
const { serializerFor, serializationOptions, deserializationOptions, schema, keyMap } = settings;
super({
serializerFor,
serializationOptions,
deserializationOptions
});
this._schema = schema;
this._keyMap = keyMap;
}
get schema() {
return this._schema;
}
get keyMap() {
return this._keyMap;
}
get resourceSerializer() {
return this.serializerFor(JSONAPISerializers.Resource);
}
get documentSerializer() {
return this.serializerFor(JSONAPISerializers.ResourceDocument);
}
get identitySerializer() {
return this.serializerFor(JSONAPISerializers.ResourceIdentity);
}
get typeSerializer() {
return this.serializerFor(JSONAPISerializers.ResourceType);
}
get fieldSerializer() {
return this.serializerFor(JSONAPISerializers.ResourceField);
}
get atomicOperationSerializer() {
return this.serializerFor(JSONAPISerializers.ResourceAtomicOperation);
}
get atomicOperationsDocumentSerializer() {
return this.serializerFor(JSONAPISerializers.ResourceAtomicOperationsDocument);
}
get atomicResultsDocumentSerializer() {
return this.serializerFor(JSONAPISerializers.ResourceAtomicResultsDocument);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmFwaS1iYXNlLXNlcmlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VyaWFsaXplcnMvanNvbmFwaS1iYXNlLXNlcmlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLGNBQWMsRUFHZixNQUFNLG9CQUFvQixDQUFDO0FBRzVCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBTzNELE1BQU0sT0FBZ0IscUJBS3BCLFNBQVEsY0FLVDtJQUtDLFlBQVksUUFNWDtRQUNDLE1BQU0sRUFDSixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLHNCQUFzQixFQUN0QixNQUFNLEVBQ04sTUFBTSxFQUNQLEdBQUcsUUFBUSxDQUFDO1FBQ2IsS0FBSyxDQUFDO1lBQ0osYUFBYTtZQUNiLG9CQUFvQjtZQUNwQixzQkFBc0I7U0FDdkIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFjLGtCQUFrQjtRQUM5QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQ3ZCLGtCQUFrQixDQUFDLFFBQVEsQ0FDQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFjLGtCQUFrQjtRQUM5QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQ3ZCLGtCQUFrQixDQUFDLGdCQUFnQixDQUNQLENBQUM7SUFDakMsQ0FBQztJQUVELElBQWMsa0JBQWtCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FDdkIsa0JBQWtCLENBQUMsZ0JBQWdCLENBQ0MsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBYyxjQUFjO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FDdkIsa0JBQWtCLENBQUMsWUFBWSxDQUNaLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQ3ZCLGtCQUFrQixDQUFDLGFBQWEsQ0FDQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFjLHlCQUF5QjtRQUNyQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQ3ZCLGtCQUFrQixDQUFDLHVCQUF1QixDQUNQLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQWMsa0NBQWtDO1FBQzlDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FDdkIsa0JBQWtCLENBQUMsZ0NBQWdDLENBQ1AsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBYywrQkFBK0I7UUFDM0MsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUN2QixrQkFBa0IsQ0FBQyw2QkFBNkIsQ0FDUCxDQUFDO0lBQzlDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlY29yZFNjaGVtYSwgUmVjb3JkS2V5TWFwIH0gZnJvbSAnQG9yYml0L3JlY29yZHMnO1xuaW1wb3J0IHtcbiAgQmFzZVNlcmlhbGl6ZXIsXG4gIFNlcmlhbGl6ZXJGb3JGbixcbiAgU3RyaW5nU2VyaWFsaXplclxufSBmcm9tICdAb3JiaXQvc2VyaWFsaXplcnMnO1xuaW1wb3J0IHsgSlNPTkFQSVJlc291cmNlSWRlbnRpdHlTZXJpYWxpemVyIH0gZnJvbSAnLi9qc29uYXBpLXJlc291cmNlLWlkZW50aXR5LXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgSlNPTkFQSVJlc291cmNlU2VyaWFsaXplciB9IGZyb20gJy4vanNvbmFwaS1yZXNvdXJjZS1zZXJpYWxpemVyJztcbmltcG9ydCB7IEpTT05BUElTZXJpYWxpemVycyB9IGZyb20gJy4vanNvbmFwaS1zZXJpYWxpemVycyc7XG5pbXBvcnQgeyBKU09OQVBJQXRvbWljT3BlcmF0aW9uU2VyaWFsaXplciB9IGZyb20gJy4vanNvbmFwaS1hdG9taWMtb3BlcmF0aW9uLXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgSlNPTkFQSVJlc291cmNlRmllbGRTZXJpYWxpemVyIH0gZnJvbSAnLi9qc29uYXBpLXJlc291cmNlLWZpZWxkLXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgSlNPTkFQSUF0b21pY09wZXJhdGlvbnNEb2N1bWVudFNlcmlhbGl6ZXIgfSBmcm9tICcuL2pzb25hcGktYXRvbWljLW9wZXJhdGlvbnMtZG9jdW1lbnQtc2VyaWFsaXplcic7XG5pbXBvcnQgeyBKU09OQVBJQXRvbWljUmVzdWx0c0RvY3VtZW50U2VyaWFsaXplciB9IGZyb20gJy4vanNvbmFwaS1hdG9taWMtcmVzdWx0cy1kb2N1bWVudC1zZXJpYWxpemVyJztcbmltcG9ydCB7IEpTT05BUElEb2N1bWVudFNlcmlhbGl6ZXIgfSBmcm9tICcuL2pzb25hcGktZG9jdW1lbnQtc2VyaWFsaXplcic7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBKU09OQVBJQmFzZVNlcmlhbGl6ZXI8XG4gIEZyb20sXG4gIFRvLFxuICBTZXJpYWxpemF0aW9uT3B0aW9ucyxcbiAgRGVzZXJpYWxpemF0aW9uT3B0aW9uc1xuPiBleHRlbmRzIEJhc2VTZXJpYWxpemVyPFxuICBGcm9tLFxuICBUbyxcbiAgU2VyaWFsaXphdGlvbk9wdGlvbnMsXG4gIERlc2VyaWFsaXphdGlvbk9wdGlvbnNcbj4ge1xuICBzZXJpYWxpemVyRm9yITogU2VyaWFsaXplckZvckZuO1xuICBwcm90ZWN0ZWQgX3NjaGVtYTogUmVjb3JkU2NoZW1hO1xuICBwcm90ZWN0ZWQgX2tleU1hcD86IFJlY29yZEtleU1hcDtcblxuICBjb25zdHJ1Y3RvcihzZXR0aW5nczoge1xuICAgIHNlcmlhbGl6ZXJGb3I6IFNlcmlhbGl6ZXJGb3JGbjtcbiAgICBzZXJpYWxpemF0aW9uT3B0aW9ucz86IFNlcmlhbGl6YXRpb25PcHRpb25zO1xuICAgIGRlc2VyaWFsaXphdGlvbk9wdGlvbnM/OiBEZXNlcmlhbGl6YXRpb25PcHRpb25zO1xuICAgIHNjaGVtYTogUmVjb3JkU2NoZW1hO1xuICAgIGtleU1hcD86IFJlY29yZEtleU1hcDtcbiAgfSkge1xuICAgIGNvbnN0IHtcbiAgICAgIHNlcmlhbGl6ZXJGb3IsXG4gICAgICBzZXJpYWxpemF0aW9uT3B0aW9ucyxcbiAgICAgIGRlc2VyaWFsaXphdGlvbk9wdGlvbnMsXG4gICAgICBzY2hlbWEsXG4gICAgICBrZXlNYXBcbiAgICB9ID0gc2V0dGluZ3M7XG4gICAgc3VwZXIoe1xuICAgICAgc2VyaWFsaXplckZvcixcbiAgICAgIHNlcmlhbGl6YXRpb25PcHRpb25zLFxuICAgICAgZGVzZXJpYWxpemF0aW9uT3B0aW9uc1xuICAgIH0pO1xuICAgIHRoaXMuX3NjaGVtYSA9IHNjaGVtYTtcbiAgICB0aGlzLl9rZXlNYXAgPSBrZXlNYXA7XG4gIH1cblxuICBnZXQgc2NoZW1hKCk6IFJlY29yZFNjaGVtYSB7XG4gICAgcmV0dXJuIHRoaXMuX3NjaGVtYTtcbiAgfVxuXG4gIGdldCBrZXlNYXAoKTogUmVjb3JkS2V5TWFwIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fa2V5TWFwO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCByZXNvdXJjZVNlcmlhbGl6ZXIoKTogSlNPTkFQSVJlc291cmNlU2VyaWFsaXplciB7XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplckZvcihcbiAgICAgIEpTT05BUElTZXJpYWxpemVycy5SZXNvdXJjZVxuICAgICkgYXMgSlNPTkFQSVJlc291cmNlU2VyaWFsaXplcjtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgZG9jdW1lbnRTZXJpYWxpemVyKCk6IEpTT05BUElEb2N1bWVudFNlcmlhbGl6ZXIge1xuICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZXJGb3IoXG4gICAgICBKU09OQVBJU2VyaWFsaXplcnMuUmVzb3VyY2VEb2N1bWVudFxuICAgICkgYXMgSlNPTkFQSURvY3VtZW50U2VyaWFsaXplcjtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaWRlbnRpdHlTZXJpYWxpemVyKCk6IEpTT05BUElSZXNvdXJjZUlkZW50aXR5U2VyaWFsaXplciB7XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplckZvcihcbiAgICAgIEpTT05BUElTZXJpYWxpemVycy5SZXNvdXJjZUlkZW50aXR5XG4gICAgKSBhcyBKU09OQVBJUmVzb3VyY2VJZGVudGl0eVNlcmlhbGl6ZXI7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHR5cGVTZXJpYWxpemVyKCk6IFN0cmluZ1NlcmlhbGl6ZXIge1xuICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZXJGb3IoXG4gICAgICBKU09OQVBJU2VyaWFsaXplcnMuUmVzb3VyY2VUeXBlXG4gICAgKSBhcyBTdHJpbmdTZXJpYWxpemVyO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBmaWVsZFNlcmlhbGl6ZXIoKTogSlNPTkFQSVJlc291cmNlRmllbGRTZXJpYWxpemVyIHtcbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemVyRm9yKFxuICAgICAgSlNPTkFQSVNlcmlhbGl6ZXJzLlJlc291cmNlRmllbGRcbiAgICApIGFzIEpTT05BUElSZXNvdXJjZUZpZWxkU2VyaWFsaXplcjtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgYXRvbWljT3BlcmF0aW9uU2VyaWFsaXplcigpOiBKU09OQVBJQXRvbWljT3BlcmF0aW9uU2VyaWFsaXplciB7XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplckZvcihcbiAgICAgIEpTT05BUElTZXJpYWxpemVycy5SZXNvdXJjZUF0b21pY09wZXJhdGlvblxuICAgICkgYXMgSlNPTkFQSUF0b21pY09wZXJhdGlvblNlcmlhbGl6ZXI7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGF0b21pY09wZXJhdGlvbnNEb2N1bWVudFNlcmlhbGl6ZXIoKTogSlNPTkFQSUF0b21pY09wZXJhdGlvbnNEb2N1bWVudFNlcmlhbGl6ZXIge1xuICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZXJGb3IoXG4gICAgICBKU09OQVBJU2VyaWFsaXplcnMuUmVzb3VyY2VBdG9taWNPcGVyYXRpb25zRG9jdW1lbnRcbiAgICApIGFzIEpTT05BUElBdG9taWNPcGVyYXRpb25zRG9jdW1lbnRTZXJpYWxpemVyO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBhdG9taWNSZXN1bHRzRG9jdW1lbnRTZXJpYWxpemVyKCk6IEpTT05BUElBdG9taWNSZXN1bHRzRG9jdW1lbnRTZXJpYWxpemVyIHtcbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemVyRm9yKFxuICAgICAgSlNPTkFQSVNlcmlhbGl6ZXJzLlJlc291cmNlQXRvbWljUmVzdWx0c0RvY3VtZW50XG4gICAgKSBhcyBKU09OQVBJQXRvbWljUmVzdWx0c0RvY3VtZW50U2VyaWFsaXplcjtcbiAgfVxufVxuIl19