UNPKG

@decaf-ts/db-decorators

Version:

Agnostic database decorators and repository

33 lines 1.5 kB
import { Model, validate, } from "@decaf-ts/decorator-validation"; import { validateCompare } from "./validation.js"; /** * @description Validates the model and checks for errors * @summary Validates the current model state and optionally compares with a previous version * @template M - Type extending Model * @param {M|any} [previousVersion] - Optional previous version of the model for comparison * @param {...any[]} exclusions - Properties to exclude from validation * @return {ModelErrorDefinition|undefined} Error definition if validation fails, undefined otherwise * @function hasErrors * @memberOf module:db-decorators */ Model.prototype.hasErrors = function (previousVersion, ...exclusions) { if (previousVersion && !(previousVersion instanceof Model)) { exclusions.unshift(previousVersion); previousVersion = undefined; } const async = this.isAsync(); const errs = validate(this, async, ...exclusions); if (async) { return Promise.resolve(errs).then((resolvedErrs) => { if (resolvedErrs || !previousVersion) { return resolvedErrs; } return validateCompare(previousVersion, this, async, ...exclusions); }); } if (errs || !previousVersion) return errs; // @ts-expect-error Overriding Model prototype method with dynamic conditional return type. return validateCompare(previousVersion, this, async, ...exclusions); }; //# sourceMappingURL=overrides.js.map