UNPKG

@orbit/records

Version:

A flexible data access and synchronization layer.

86 lines 7.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RecordNotFoundException = exports.RecordException = exports.RelationshipNotDefined = exports.KeyNotDefined = exports.AttributeNotDefined = exports.ModelNotDefined = exports.ValidationError = exports.SchemaError = void 0; const core_1 = require("@orbit/core"); const validators_1 = require("@orbit/validators"); /** * An error occured related to the schema. */ class SchemaError extends core_1.Exception { constructor(description) { super(`Schema: ${description}`); } } exports.SchemaError = SchemaError; /** * A validation failed. */ class ValidationError extends core_1.Exception { constructor(description, issues) { super((0, validators_1.formatValidationDescription)(description, issues)); this.issues = issues; } } exports.ValidationError = ValidationError; /** * A model is not defined in the schema. */ class ModelNotDefined extends SchemaError { constructor(type) { super(`Model '${type}' not defined.`); } } exports.ModelNotDefined = ModelNotDefined; /** * An attribute definition could not be found in the model definition. */ class AttributeNotDefined extends SchemaError { constructor(type, attribute) { super(`Attribute '${attribute}' not defined for model '${type}'.`); } } exports.AttributeNotDefined = AttributeNotDefined; /** * A key definition could not be found in the model definition. */ class KeyNotDefined extends SchemaError { constructor(type, key) { super(`Key '${key}' not defined for model '${type}'.`); } } exports.KeyNotDefined = KeyNotDefined; /** * A relationship definition could not be found in the model definition. */ class RelationshipNotDefined extends SchemaError { constructor(type, relationship) { super(`Relationship '${relationship}' not defined for model '${type}'.`); } } exports.RelationshipNotDefined = RelationshipNotDefined; /** * An error occurred related to a particular record. */ class RecordException extends core_1.Exception { constructor(description, type, id, field) { let specifier = `${type}:${id}`; if (field) { specifier = `${specifier}/${field}`; } super(`${description}: ${specifier}`); this.type = type; this.id = id; this.field = field; } } exports.RecordException = RecordException; /** * A record could not be found. */ class RecordNotFoundException extends RecordException { constructor(type, id) { super('Record not found', type, id); } } exports.RecordNotFoundException = RecordNotFoundException; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLWV4Y2VwdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVjb3JkLWV4Y2VwdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0NBQXdDO0FBQ3hDLGtEQUcyQjtBQUUzQjs7R0FFRztBQUNILE1BQWEsV0FBWSxTQUFRLGdCQUFTO0lBQ3hDLFlBQVksV0FBbUI7UUFDN0IsS0FBSyxDQUFDLFdBQVcsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ0Y7QUFKRCxrQ0FJQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxlQUFnQixTQUFRLGdCQUFTO0lBRzVDLFlBQVksV0FBbUIsRUFBRSxNQUEwQjtRQUN6RCxLQUFLLENBQUMsSUFBQSx3Q0FBMkIsRUFBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0NBQ0Y7QUFQRCwwQ0FPQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxlQUFnQixTQUFRLFdBQVc7SUFDOUMsWUFBWSxJQUFZO1FBQ3RCLEtBQUssQ0FBQyxVQUFVLElBQUksZ0JBQWdCLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBQ0Y7QUFKRCwwQ0FJQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSxXQUFXO0lBQ2xELFlBQVksSUFBWSxFQUFFLFNBQWlCO1FBQ3pDLEtBQUssQ0FBQyxjQUFjLFNBQVMsNEJBQTRCLElBQUksSUFBSSxDQUFDLENBQUM7SUFDckUsQ0FBQztDQUNGO0FBSkQsa0RBSUM7QUFFRDs7R0FFRztBQUNILE1BQWEsYUFBYyxTQUFRLFdBQVc7SUFDNUMsWUFBWSxJQUFZLEVBQUUsR0FBVztRQUNuQyxLQUFLLENBQUMsUUFBUSxHQUFHLDRCQUE0QixJQUFJLElBQUksQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDRjtBQUpELHNDQUlDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLHNCQUF1QixTQUFRLFdBQVc7SUFDckQsWUFBWSxJQUFZLEVBQUUsWUFBb0I7UUFDNUMsS0FBSyxDQUFDLGlCQUFpQixZQUFZLDRCQUE0QixJQUFJLElBQUksQ0FBQyxDQUFDO0lBQzNFLENBQUM7Q0FDRjtBQUpELHdEQUlDO0FBRUQ7O0dBRUc7QUFDSCxNQUFzQixlQUFnQixTQUFRLGdCQUFTO0lBS3JELFlBQVksV0FBbUIsRUFBRSxJQUFZLEVBQUUsRUFBVSxFQUFFLEtBQWM7UUFDdkUsSUFBSSxTQUFTLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUM7UUFFaEMsSUFBSSxLQUFLLEVBQUU7WUFDVCxTQUFTLEdBQUcsR0FBRyxTQUFTLElBQUksS0FBSyxFQUFFLENBQUM7U0FDckM7UUFFRCxLQUFLLENBQUMsR0FBRyxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUMsQ0FBQztRQUV0QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQWxCRCwwQ0FrQkM7QUFFRDs7R0FFRztBQUNILE1BQWEsdUJBQXdCLFNBQVEsZUFBZTtJQUMxRCxZQUFZLElBQVksRUFBRSxFQUFVO1FBQ2xDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNGO0FBSkQsMERBSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFeGNlcHRpb24gfSBmcm9tICdAb3JiaXQvY29yZSc7XG5pbXBvcnQge1xuICBmb3JtYXRWYWxpZGF0aW9uRGVzY3JpcHRpb24sXG4gIFZhbGlkYXRpb25Jc3N1ZVxufSBmcm9tICdAb3JiaXQvdmFsaWRhdG9ycyc7XG5cbi8qKlxuICogQW4gZXJyb3Igb2NjdXJlZCByZWxhdGVkIHRvIHRoZSBzY2hlbWEuXG4gKi9cbmV4cG9ydCBjbGFzcyBTY2hlbWFFcnJvciBleHRlbmRzIEV4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKGRlc2NyaXB0aW9uOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgU2NoZW1hOiAke2Rlc2NyaXB0aW9ufWApO1xuICB9XG59XG5cbi8qKlxuICogQSB2YWxpZGF0aW9uIGZhaWxlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25FcnJvciBleHRlbmRzIEV4Y2VwdGlvbiB7XG4gIHB1YmxpYyBpc3N1ZXM/OiBWYWxpZGF0aW9uSXNzdWVbXTtcblxuICBjb25zdHJ1Y3RvcihkZXNjcmlwdGlvbjogc3RyaW5nLCBpc3N1ZXM/OiBWYWxpZGF0aW9uSXNzdWVbXSkge1xuICAgIHN1cGVyKGZvcm1hdFZhbGlkYXRpb25EZXNjcmlwdGlvbihkZXNjcmlwdGlvbiwgaXNzdWVzKSk7XG4gICAgdGhpcy5pc3N1ZXMgPSBpc3N1ZXM7XG4gIH1cbn1cblxuLyoqXG4gKiBBIG1vZGVsIGlzIG5vdCBkZWZpbmVkIGluIHRoZSBzY2hlbWEuXG4gKi9cbmV4cG9ydCBjbGFzcyBNb2RlbE5vdERlZmluZWQgZXh0ZW5kcyBTY2hlbWFFcnJvciB7XG4gIGNvbnN0cnVjdG9yKHR5cGU6IHN0cmluZykge1xuICAgIHN1cGVyKGBNb2RlbCAnJHt0eXBlfScgbm90IGRlZmluZWQuYCk7XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBhdHRyaWJ1dGUgZGVmaW5pdGlvbiBjb3VsZCBub3QgYmUgZm91bmQgaW4gdGhlIG1vZGVsIGRlZmluaXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBBdHRyaWJ1dGVOb3REZWZpbmVkIGV4dGVuZHMgU2NoZW1hRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcih0eXBlOiBzdHJpbmcsIGF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoYEF0dHJpYnV0ZSAnJHthdHRyaWJ1dGV9JyBub3QgZGVmaW5lZCBmb3IgbW9kZWwgJyR7dHlwZX0nLmApO1xuICB9XG59XG5cbi8qKlxuICogQSBrZXkgZGVmaW5pdGlvbiBjb3VsZCBub3QgYmUgZm91bmQgaW4gdGhlIG1vZGVsIGRlZmluaXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBLZXlOb3REZWZpbmVkIGV4dGVuZHMgU2NoZW1hRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcih0eXBlOiBzdHJpbmcsIGtleTogc3RyaW5nKSB7XG4gICAgc3VwZXIoYEtleSAnJHtrZXl9JyBub3QgZGVmaW5lZCBmb3IgbW9kZWwgJyR7dHlwZX0nLmApO1xuICB9XG59XG5cbi8qKlxuICogQSByZWxhdGlvbnNoaXAgZGVmaW5pdGlvbiBjb3VsZCBub3QgYmUgZm91bmQgaW4gdGhlIG1vZGVsIGRlZmluaXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBSZWxhdGlvbnNoaXBOb3REZWZpbmVkIGV4dGVuZHMgU2NoZW1hRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcih0eXBlOiBzdHJpbmcsIHJlbGF0aW9uc2hpcDogc3RyaW5nKSB7XG4gICAgc3VwZXIoYFJlbGF0aW9uc2hpcCAnJHtyZWxhdGlvbnNoaXB9JyBub3QgZGVmaW5lZCBmb3IgbW9kZWwgJyR7dHlwZX0nLmApO1xuICB9XG59XG5cbi8qKlxuICogQW4gZXJyb3Igb2NjdXJyZWQgcmVsYXRlZCB0byBhIHBhcnRpY3VsYXIgcmVjb3JkLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVjb3JkRXhjZXB0aW9uIGV4dGVuZHMgRXhjZXB0aW9uIHtcbiAgcHVibGljIHR5cGU6IHN0cmluZztcbiAgcHVibGljIGlkOiBzdHJpbmc7XG4gIHB1YmxpYyBmaWVsZD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihkZXNjcmlwdGlvbjogc3RyaW5nLCB0eXBlOiBzdHJpbmcsIGlkOiBzdHJpbmcsIGZpZWxkPzogc3RyaW5nKSB7XG4gICAgbGV0IHNwZWNpZmllciA9IGAke3R5cGV9OiR7aWR9YDtcblxuICAgIGlmIChmaWVsZCkge1xuICAgICAgc3BlY2lmaWVyID0gYCR7c3BlY2lmaWVyfS8ke2ZpZWxkfWA7XG4gICAgfVxuXG4gICAgc3VwZXIoYCR7ZGVzY3JpcHRpb259OiAke3NwZWNpZmllcn1gKTtcblxuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5pZCA9IGlkO1xuICAgIHRoaXMuZmllbGQgPSBmaWVsZDtcbiAgfVxufVxuXG4vKipcbiAqIEEgcmVjb3JkIGNvdWxkIG5vdCBiZSBmb3VuZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlY29yZE5vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgUmVjb3JkRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IodHlwZTogc3RyaW5nLCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoJ1JlY29yZCBub3QgZm91bmQnLCB0eXBlLCBpZCk7XG4gIH1cbn1cbiJdfQ==