UNPKG

@dolittle/sdk.common

Version:

Dolittle is a decentralized, distributed, event-driven microservice platform built to harness the power of events.

62 lines 4.75 kB
"use strict"; // Copyright (c) Dolittle. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. Object.defineProperty(exports, "__esModule", { value: true }); exports.InvalidDecoratorTarget = void 0; const DecoratorTarget_1 = require("./DecoratorTarget"); /** * Exception that gets thrown when a decorator is used on an invalid target. */ class InvalidDecoratorTarget extends Error { /** * Initialises a new instance of the {@link InvalidDecorator} class. * @param {string} name - The name of the decorator that was used. * @param {DecoratorTarget} decoratedTarget - The target that was decorated. * @param {DecoratorTarget} validTargets - The valid targets for the decorator. */ constructor(name, decoratedTarget, validTargets) { super(`The @${name} decorator cannot be used on ${InvalidDecoratorTarget.getTargetNames(decoratedTarget)}. It is only valid for ${InvalidDecoratorTarget.getTargetNames(validTargets)}`); } /** * Gets target names formatted as a human readable string. * @param {DecoratorTarget} target - The decorator target(s). * @returns {string} A human readable string. */ static getTargetNames(target) { const names = []; if ((target & DecoratorTarget_1.DecoratorTarget.Class) !== 0) { names.push('class'); } if ((target & DecoratorTarget_1.DecoratorTarget.ConstructorParameter) !== 0) { names.push('constructor parameter'); } if ((target & DecoratorTarget_1.DecoratorTarget.Method) !== 0) { names.push('method'); } if ((target & DecoratorTarget_1.DecoratorTarget.MethodParameter) !== 0) { names.push('method parameter'); } if ((target & DecoratorTarget_1.DecoratorTarget.Property) !== 0) { names.push('property'); } if ((target & DecoratorTarget_1.DecoratorTarget.Getter) !== 0) { names.push('getter'); } if ((target & DecoratorTarget_1.DecoratorTarget.Setter) !== 0) { names.push('setter'); } switch (names.length) { case 0: return ''; case 1: return names[0]; case 2: return names.join(' or '); default: return names.slice(0, -1).join(', ') + ' or ' + names.slice(-1)[0]; } } ; } exports.InvalidDecoratorTarget = InvalidDecoratorTarget; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW52YWxpZERlY29yYXRvclRhcmdldC5qcyIsInNvdXJjZVJvb3QiOiIuLi8iLCJzb3VyY2VzIjpbIkRlY29yYXRvcnMvSW52YWxpZERlY29yYXRvclRhcmdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0NBQStDO0FBQy9DLHFHQUFxRzs7O0FBRXJHLHVEQUFvRDtBQUVwRDs7R0FFRztBQUNILE1BQWEsc0JBQXVCLFNBQVEsS0FBSztJQUM3Qzs7Ozs7T0FLRztJQUNILFlBQVksSUFBWSxFQUFFLGVBQWdDLEVBQUUsWUFBNkI7UUFDckYsS0FBSyxDQUFDLFFBQVEsSUFBSSxnQ0FBZ0Msc0JBQXNCLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQywwQkFBMEIsc0JBQXNCLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3TCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBdUI7UUFDekMsTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFDO1FBRTNCLElBQUksQ0FBQyxNQUFNLEdBQUcsaUNBQWUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN2QjtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsaUNBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN2RCxLQUFLLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7U0FDdkM7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLGlDQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3pDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDeEI7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLGlDQUFlLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2xELEtBQUssQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUNsQztRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsaUNBQWUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDM0MsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUMxQjtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsaUNBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDekMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN4QjtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsaUNBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDekMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN4QjtRQUVELFFBQVEsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNsQixLQUFLLENBQUM7Z0JBQ0YsT0FBTyxFQUFFLENBQUM7WUFDZCxLQUFLLENBQUM7Z0JBQ0YsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEIsS0FBSyxDQUFDO2dCQUNGLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5QjtnQkFDSSxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUU7SUFDTCxDQUFDO0lBQUEsQ0FBQztDQUNMO0FBcERELHdEQW9EQyJ9