nestjs-event-sourcing-lib
Version:
A comprehensive Event Sourcing and CQRS library for NestJS applications
33 lines • 1.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PROJECTION_METADATA = void 0;
exports.Projection = Projection;
exports.getProjectionMetadata = getProjectionMetadata;
const common_1 = require("@nestjs/common");
/**
* Key for projection metadata
*/
exports.PROJECTION_METADATA = Symbol('PROJECTION_METADATA');
/**
* Decorator to mark class as projection
*/
function Projection(metadata) {
return function (constructor) {
const projectionMetadata = {
name: (metadata === null || metadata === void 0 ? void 0 : metadata.name) || constructor.name,
eventTypes: (metadata === null || metadata === void 0 ? void 0 : metadata.eventTypes) || [],
autoUpdate: (metadata === null || metadata === void 0 ? void 0 : metadata.autoUpdate) !== false,
snapshotFrequency: (metadata === null || metadata === void 0 ? void 0 : metadata.snapshotFrequency) || 0,
};
(0, common_1.SetMetadata)(exports.PROJECTION_METADATA, projectionMetadata)(constructor);
(0, common_1.Injectable)()(constructor);
return constructor;
};
}
/**
* Function to get projection metadata
*/
function getProjectionMetadata(target) {
return Reflect.getMetadata(exports.PROJECTION_METADATA, target);
}
//# sourceMappingURL=projection.decorator.js.map