@dolittle/sdk.common
Version:
Dolittle is a decentralized, distributed, event-driven microservice platform built to harness the power of events.
32 lines • 2.54 kB
JavaScript
;
// 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.RequiredDecoratorNotApplied = void 0;
const DecoratorTarget_1 = require("./DecoratorTarget");
const InvalidDecoratorTarget_1 = require("./InvalidDecoratorTarget");
/**
* The exception that gets thrown when a required decorator is not applied.
*/
class RequiredDecoratorNotApplied extends Error {
/**
* Initialises a new instance of the {@link RequiredDecoratorNotApplied} class.
* @param {string} displayName - The decorator display name.
* @param {DecoratorTarget} validTargets - The valid targets of the decorator.
* @param {Constructor<any>} type - The class that was expected to have the decorator.
* @param {string} reason - The reason why the decorator is required.
*/
constructor(displayName, validTargets, type, reason) {
super(`The @${displayName} decorator is not applied to ${RequiredDecoratorNotApplied.getApplicableTargets(validTargets, type)}. ${reason}.`);
}
static getApplicableTargets(validTargets, type) {
switch (validTargets) {
case DecoratorTarget_1.DecoratorTarget.Class:
return `class ${type.name}`;
default:
return `any ${InvalidDecoratorTarget_1.InvalidDecoratorTarget.getTargetNames(validTargets)} in class ${type.name}`;
}
}
}
exports.RequiredDecoratorNotApplied = RequiredDecoratorNotApplied;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWlyZWREZWNvcmF0b3JOb3RBcHBsaWVkLmpzIiwic291cmNlUm9vdCI6Ii4uLyIsInNvdXJjZXMiOlsiRGVjb3JhdG9ycy9SZXF1aXJlZERlY29yYXRvck5vdEFwcGxpZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtDQUErQztBQUMvQyxxR0FBcUc7OztBQUlyRyx1REFBb0Q7QUFDcEQscUVBQWtFO0FBRWxFOztHQUVHO0FBQ0gsTUFBYSwyQkFBNEIsU0FBUSxLQUFLO0lBQ2xEOzs7Ozs7T0FNRztJQUNILFlBQVksV0FBbUIsRUFBRSxZQUE2QixFQUFFLElBQXNCLEVBQUUsTUFBYztRQUNsRyxLQUFLLENBQUMsUUFBUSxXQUFXLGdDQUFnQywyQkFBMkIsQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNqSixDQUFDO0lBRU8sTUFBTSxDQUFDLG9CQUFvQixDQUFDLFlBQTZCLEVBQUUsSUFBc0I7UUFDckYsUUFBUSxZQUFZLEVBQUU7WUFDbEIsS0FBSyxpQ0FBZSxDQUFDLEtBQUs7Z0JBQ3RCLE9BQU8sU0FBUyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDaEM7Z0JBQ0ksT0FBTyxPQUFPLCtDQUFzQixDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDakc7SUFDTCxDQUFDO0NBQ0o7QUFwQkQsa0VBb0JDIn0=