@dolittle/sdk.aggregates
Version:
Dolittle is a decentralized, distributed, event-driven microservice platform built to harness the power of events.
29 lines • 2.72 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.getOnDecoratedMethods = exports.on = void 0;
const sdk_artifacts_1 = require("@dolittle/sdk.artifacts");
const sdk_common_1 = require("@dolittle/sdk.common");
const OnDecoratedMethod_1 = require("./OnDecoratedMethod");
const [decorator, getMetadata] = sdk_common_1.Decorators.createMetadataDecorator('aggregate-root-on-methods', 'on', sdk_common_1.Decorators.DecoratorTarget.Method);
function on(typeOrId, generation) {
return decorator((target, type, propertyKey, descriptorOrIndex, onDecoratedMethods) => {
const methods = onDecoratedMethods || [];
const methodName = propertyKey;
const method = descriptorOrIndex.value;
methods.push(new OnDecoratedMethod_1.OnDecoratedMethod(type, typeOrId, generation ? sdk_artifacts_1.Generation.from(generation) : undefined, method, methodName));
return methods;
});
}
exports.on = on;
/**
* Gets the decorated aggregate root on methods of the specified class.
* @param {Constructor<any>} type - The class to get the decorated aggregate root on methods for.
* @returns {OnDecoratedMethod[]} The decorated aggregate root on methods.
*/
function getOnDecoratedMethods(type) {
return getMetadata(type) || [];
}
exports.getOnDecoratedMethods = getOnDecoratedMethods;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25EZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiLi4vIiwic291cmNlcyI6WyJvbkRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0NBQStDO0FBQy9DLHFHQUFxRzs7O0FBSXJHLDJEQUFxRTtBQUNyRSxxREFBa0Q7QUFHbEQsMkRBQXdEO0FBR3hELE1BQU0sQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLEdBQUcsdUJBQVUsQ0FBQyx1QkFBdUIsQ0FBc0IsMkJBQTJCLEVBQUUsSUFBSSxFQUFFLHVCQUFVLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBZS9KLFNBQWdCLEVBQUUsQ0FBQyxRQUE0QyxFQUFFLFVBQTJCO0lBQ3hGLE9BQU8sU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsRUFBRTtRQUNsRixNQUFNLE9BQU8sR0FBRyxrQkFBa0IsSUFBSSxFQUFFLENBQUM7UUFFekMsTUFBTSxVQUFVLEdBQUcsV0FBcUIsQ0FBQztRQUN6QyxNQUFNLE1BQU0sR0FBSSxpQkFBd0MsQ0FBQyxLQUEwQixDQUFDO1FBRXBGLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxxQ0FBaUIsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsMEJBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUU5SCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFYRCxnQkFXQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxJQUFzQjtJQUN4RCxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDbkMsQ0FBQztBQUZELHNEQUVDIn0=