UNPKG

@dolittle/sdk.common

Version:

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

43 lines 3.23 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.ensureDecoratorMetadataMap = exports.hasDecoratorMetadataMap = void 0; const DECORATOR_METADATA_KEY = '@dolittle/sdk.common/Decorators'; /** * Checks whether or not the decorator metadata map exists on the provided type. * @param {Constructor<any>} type - The type to check if the map exists on. * @returns {boolean} True if the type has the decorator metadata map, false if not. */ function hasDecoratorMetadataMap(type) { const descriptor = Object.getOwnPropertyDescriptor(type, DECORATOR_METADATA_KEY); return descriptor !== undefined && descriptor.value instanceof Map; } exports.hasDecoratorMetadataMap = hasDecoratorMetadataMap; /** * Ensures that the decorator metadata map exists on the provided type. * @param {Constructor<any>} type - The type to ensure the map exists on. * @returns {Map<string, any>} The metadata map on the type. */ function ensureDecoratorMetadataMap(type) { const descriptor = Object.getOwnPropertyDescriptor(type, DECORATOR_METADATA_KEY); if (descriptor !== undefined && descriptor.configurable === false && descriptor.enumerable === false && descriptor.writable === false && descriptor.get === undefined && descriptor.set === undefined && descriptor.value instanceof Map) { return descriptor.value; } const metadataMap = new Map(); Object.defineProperty(type, DECORATOR_METADATA_KEY, { configurable: false, enumerable: false, writable: false, value: metadataMap, }); return metadataMap; } exports.ensureDecoratorMetadataMap = ensureDecoratorMetadataMap; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9yTWV0YWRhdGFNYXAuanMiLCJzb3VyY2VSb290IjoiLi4vIiwic291cmNlcyI6WyJEZWNvcmF0b3JzL2RlY29yYXRvck1ldGFkYXRhTWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQ0FBK0M7QUFDL0MscUdBQXFHOzs7QUFJckcsTUFBTSxzQkFBc0IsR0FBRyxpQ0FBaUMsQ0FBQztBQUVqRTs7OztHQUlHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQUMsSUFBc0I7SUFDMUQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLElBQUksRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0lBQ2pGLE9BQU8sVUFBVSxLQUFLLFNBQVMsSUFBSSxVQUFVLENBQUMsS0FBSyxZQUFZLEdBQUcsQ0FBQztBQUN2RSxDQUFDO0FBSEQsMERBR0M7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsMEJBQTBCLENBQUMsSUFBc0I7SUFDN0QsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLElBQUksRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0lBRWpGLElBQ0ksVUFBVSxLQUFLLFNBQVM7UUFDeEIsVUFBVSxDQUFDLFlBQVksS0FBSyxLQUFLO1FBQ2pDLFVBQVUsQ0FBQyxVQUFVLEtBQUssS0FBSztRQUMvQixVQUFVLENBQUMsUUFBUSxLQUFLLEtBQUs7UUFDN0IsVUFBVSxDQUFDLEdBQUcsS0FBSyxTQUFTO1FBQzVCLFVBQVUsQ0FBQyxHQUFHLEtBQUssU0FBUztRQUM1QixVQUFVLENBQUMsS0FBSyxZQUFZLEdBQUcsRUFDakM7UUFDRSxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUM7S0FDM0I7SUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRTlCLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFO1FBQ2hELFlBQVksRUFBRSxLQUFLO1FBQ25CLFVBQVUsRUFBRSxLQUFLO1FBQ2pCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsS0FBSyxFQUFFLFdBQVc7S0FDckIsQ0FBQyxDQUFDO0lBRUgsT0FBTyxXQUFXLENBQUM7QUFDdkIsQ0FBQztBQXpCRCxnRUF5QkMifQ==