@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
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.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==