UNPKG

@pebula/metap

Version:
140 lines 9.38 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { stringify, isFunction } from '@pebula/utils'; /** @type {?} */ var ERROR_EXEC_TYPE = Symbol('Throw'); var Errors = /** @class */ (function () { function Errors() { // support for post instantiation mixins on the prototype (plugins) - don't use new. Errors.create(this); } Object.defineProperty(Errors.prototype, "throw", { /** * Returns a marked Errors repository where the next call to an error object will throw. * * e.g. `errors.THROW().decorator(...)` will throw */ get: /** * Returns a marked Errors repository where the next call to an error object will throw. * * e.g. `errors.THROW().decorator(...)` will throw * @template THIS * @this {THIS} * @return {THIS} */ function () { var _a; return Object.assign(Object.create((/** @type {?} */ (this))), (_a = {}, _a[ERROR_EXEC_TYPE] = 'throw', _a)); }, enumerable: true, configurable: true }); /** * @param {?} target * @param {?} message * @param {?=} propertyName * @return {?} */ Errors.prototype.decorator = /** * @param {?} target * @param {?} message * @param {?=} propertyName * @return {?} */ function (target, message, propertyName) { /** @type {?} */ var CLS = isFunction(target) ? target : target.constructor; if (!propertyName) { return this.ERROR("Invalid decorator @ " + stringify(CLS) + "}: " + message); } else { /** @type {?} */ var dot = CLS === target ? '#' : '.'; return this.ERROR("Invalid decorator @ " + stringify(target) + dot + stringify(propertyName) + ": " + message); } }; /** * @param {?} model * @param {?} message * @return {?} */ Errors.prototype.model = /** * @param {?} model * @param {?} message * @return {?} */ function (model, message) { return this.ERROR("Model Error [" + stringify(model) + "]: " + message); }; /** * @param {?} model * @param {?} expectedCol * @return {?} */ Errors.prototype.modelSingleCol = /** * @param {?} model * @param {?} expectedCol * @return {?} */ function (model, expectedCol) { return this.ERROR("Model Error:" + expectedCol ? "Expected a COLLECTION but got an OBJECT [Target: " + stringify(model) + "]" : "Expected an OBJECT but got a COLLECTION [Target: " + stringify(model) + "]"); }; /** * @internal */ /** * \@internal * @template T * @param {?} message * @param {?=} assign * @return {?} */ Errors.prototype.ERROR = /** * \@internal * @template T * @param {?} message * @param {?=} assign * @return {?} */ function (message, assign) { /** @type {?} */ var err = new Error(message); if (assign) { Object.assign(err, assign); } if (this[ERROR_EXEC_TYPE] === 'throw') { throw err; } else { return (/** @type {?} */ (err)); } }; /** * Creates a new TargetStore instance. * @param instance optional, used internally */ /** * Creates a new TargetStore instance. * @param {?=} instance optional, used internally * @return {?} */ Errors.create = /** * Creates a new TargetStore instance. * @param {?=} instance optional, used internally * @return {?} */ function (instance) { /** @type {?} */ var errors = instance || Object.create(Errors.prototype); return errors; }; return Errors; }()); export { Errors }; /** @type {?} */ export var errors = Errors.create(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHBlYnVsYS9tZXRhcC9pbnRlcm5hbC8iLCJzb3VyY2VzIjpbImxpYi9mdy9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztJQUVoRCxlQUFlLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztBQUV2QztJQVVFO1FBQ0Usb0ZBQW9GO1FBQ3BGLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQVBELHNCQUFJLHlCQUFLO1FBTFQ7Ozs7V0FJRzs7Ozs7Ozs7O1FBQ0g7O1lBQ0UsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsWUFBSSxHQUFDLGVBQWUsSUFBRyxPQUFPLE1BQUcsQ0FBQztRQUM1RSxDQUFDOzs7T0FBQTs7Ozs7OztJQU9ELDBCQUFTOzs7Ozs7SUFBVCxVQUFVLE1BQVcsRUFBRSxPQUFlLEVBQUUsWUFBNkI7O1lBQzdELEdBQUcsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVc7UUFFNUQsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNqQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMseUJBQXVCLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBTSxPQUFTLENBQUMsQ0FBQztTQUN6RTthQUFNOztnQkFDQyxHQUFHLEdBQUcsR0FBRyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHO1lBQ3RDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FDZix5QkFBdUIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxTQUFTLENBQ3hELFlBQVksQ0FDYixVQUFLLE9BQVMsQ0FDaEIsQ0FBQztTQUNIO0lBQ0gsQ0FBQzs7Ozs7O0lBRUQsc0JBQUs7Ozs7O0lBQUwsVUFBTSxLQUFVLEVBQUUsT0FBZTtRQUMvQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWdCLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBTSxPQUFTLENBQUMsQ0FBQztJQUNyRSxDQUFDOzs7Ozs7SUFFRCwrQkFBYzs7Ozs7SUFBZCxVQUFlLEtBQVUsRUFBRSxXQUFvQjtRQUM3QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQ2YsY0FBYyxHQUFHLFdBQVc7WUFDMUIsQ0FBQyxDQUFDLHNEQUFvRCxTQUFTLENBQzNELEtBQUssQ0FDTixNQUFHO1lBQ04sQ0FBQyxDQUFDLHNEQUFvRCxTQUFTLENBQzNELEtBQUssQ0FDTixNQUFHLENBQ1QsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRzs7Ozs7Ozs7SUFDSCxzQkFBSzs7Ozs7OztJQUFMLFVBQWUsT0FBZSxFQUFFLE1BQVU7O1lBQ2xDLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDOUIsSUFBSSxNQUFNLEVBQUU7WUFDVixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUM1QjtRQUVELElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLE9BQU8sRUFBRTtZQUNyQyxNQUFNLEdBQUcsQ0FBQztTQUNYO2FBQU07WUFDTCxPQUFPLG1CQUFLLEdBQUcsRUFBQSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRzs7Ozs7O0lBQ0ksYUFBTTs7Ozs7SUFBYixVQUFjLFFBQWlCOztZQUN2QixNQUFNLEdBQVcsUUFBUSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNsRSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0gsYUFBQztBQUFELENBQUMsQUF0RUQsSUFzRUM7OztBQUVELE1BQU0sS0FBTyxNQUFNLEdBQVcsTUFBTSxDQUFDLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0cmluZ2lmeSwgaXNGdW5jdGlvbiB9IGZyb20gJ0BwZWJ1bGEvdXRpbHMnO1xuXG5jb25zdCBFUlJPUl9FWEVDX1RZUEUgPSBTeW1ib2woJ1Rocm93Jyk7XG5cbmV4cG9ydCBjbGFzcyBFcnJvcnMge1xuICAvKipcbiAgICogUmV0dXJucyBhIG1hcmtlZCBFcnJvcnMgcmVwb3NpdG9yeSB3aGVyZSB0aGUgbmV4dCBjYWxsIHRvIGFuIGVycm9yIG9iamVjdCB3aWxsIHRocm93LlxuICAgKlxuICAgKiBlLmcuIGBlcnJvcnMuVEhST1coKS5kZWNvcmF0b3IoLi4uKWAgd2lsbCB0aHJvd1xuICAgKi9cbiAgZ2V0IHRocm93KCk6IHRoaXMge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5jcmVhdGUodGhpcyksIHsgW0VSUk9SX0VYRUNfVFlQRV06ICd0aHJvdycgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gc3VwcG9ydCBmb3IgcG9zdCBpbnN0YW50aWF0aW9uIG1peGlucyBvbiB0aGUgcHJvdG90eXBlIChwbHVnaW5zKSAtIGRvbid0IHVzZSBuZXcuXG4gICAgRXJyb3JzLmNyZWF0ZSh0aGlzKTtcbiAgfVxuXG4gIGRlY29yYXRvcih0YXJnZXQ6IGFueSwgbWVzc2FnZTogc3RyaW5nLCBwcm9wZXJ0eU5hbWU/OiBUZG1Qcm9wZXJ0eUtleSk6IEVycm9yIHtcbiAgICBjb25zdCBDTFMgPSBpc0Z1bmN0aW9uKHRhcmdldCkgPyB0YXJnZXQgOiB0YXJnZXQuY29uc3RydWN0b3I7XG5cbiAgICBpZiAoIXByb3BlcnR5TmFtZSkge1xuICAgICAgcmV0dXJuIHRoaXMuRVJST1IoYEludmFsaWQgZGVjb3JhdG9yIEAgJHtzdHJpbmdpZnkoQ0xTKX19OiAke21lc3NhZ2V9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGRvdCA9IENMUyA9PT0gdGFyZ2V0ID8gJyMnIDogJy4nO1xuICAgICAgcmV0dXJuIHRoaXMuRVJST1IoXG4gICAgICAgIGBJbnZhbGlkIGRlY29yYXRvciBAICR7c3RyaW5naWZ5KHRhcmdldCl9JHtkb3R9JHtzdHJpbmdpZnkoXG4gICAgICAgICAgcHJvcGVydHlOYW1lXG4gICAgICAgICl9OiAke21lc3NhZ2V9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBtb2RlbChtb2RlbDogYW55LCBtZXNzYWdlOiBzdHJpbmcpOiBFcnJvciB7XG4gICAgcmV0dXJuIHRoaXMuRVJST1IoYE1vZGVsIEVycm9yIFske3N0cmluZ2lmeShtb2RlbCl9XTogJHttZXNzYWdlfWApO1xuICB9XG5cbiAgbW9kZWxTaW5nbGVDb2wobW9kZWw6IGFueSwgZXhwZWN0ZWRDb2w6IGJvb2xlYW4pOiBFcnJvciB7XG4gICAgcmV0dXJuIHRoaXMuRVJST1IoXG4gICAgICBgTW9kZWwgRXJyb3I6YCArIGV4cGVjdGVkQ29sXG4gICAgICAgID8gYEV4cGVjdGVkIGEgQ09MTEVDVElPTiBidXQgZ290IGFuIE9CSkVDVCBbVGFyZ2V0OiAke3N0cmluZ2lmeShcbiAgICAgICAgICAgIG1vZGVsXG4gICAgICAgICAgKX1dYFxuICAgICAgICA6IGBFeHBlY3RlZCBhbiBPQkpFQ1QgYnV0IGdvdCBhIENPTExFQ1RJT04gW1RhcmdldDogJHtzdHJpbmdpZnkoXG4gICAgICAgICAgICBtb2RlbFxuICAgICAgICAgICl9XWBcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgRVJST1I8VCA9IGFueT4obWVzc2FnZTogc3RyaW5nLCBhc3NpZ24/OiBUKTogRXJyb3IgJiBUIHtcbiAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgaWYgKGFzc2lnbikge1xuICAgICAgT2JqZWN0LmFzc2lnbihlcnIsIGFzc2lnbik7XG4gICAgfVxuXG4gICAgaWYgKHRoaXNbRVJST1JfRVhFQ19UWVBFXSA9PT0gJ3Rocm93Jykge1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gPGFueT5lcnI7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgVGFyZ2V0U3RvcmUgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSBpbnN0YW5jZSBvcHRpb25hbCwgdXNlZCBpbnRlcm5hbGx5XG4gICAqL1xuICBzdGF0aWMgY3JlYXRlKGluc3RhbmNlPzogRXJyb3JzKTogRXJyb3JzIHtcbiAgICBjb25zdCBlcnJvcnM6IEVycm9ycyA9IGluc3RhbmNlIHx8IE9iamVjdC5jcmVhdGUoRXJyb3JzLnByb3RvdHlwZSk7XG4gICAgcmV0dXJuIGVycm9ycztcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZXJyb3JzOiBFcnJvcnMgPSBFcnJvcnMuY3JlYXRlKCk7XG4iXX0=