UNPKG

@node-ts/bus-workflow

Version:

A workflow engine for orchestrating logic flows in distributed applications.

27 lines 1.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.StartedBy = exports.WorkflowStartedByMetadata = exports.WORKFLOW_STARTED_BY_METADATA_KEY = void 0; const reflect_extensions_1 = require("../../utility/reflect-extensions"); exports.WORKFLOW_STARTED_BY_METADATA_KEY = Symbol.for('node-ts/bus/workflow-started-by-metadata'); class WorkflowStartedByMetadata { static addStep(metadata, target) { reflect_extensions_1.ReflectExtensions.defineMetadata(exports.WORKFLOW_STARTED_BY_METADATA_KEY, metadata, target.constructor); } static getSteps(target) { return Reflect.getMetadata(exports.WORKFLOW_STARTED_BY_METADATA_KEY, target) || []; } } exports.WorkflowStartedByMetadata = WorkflowStartedByMetadata; /** * A handler that starts a new workflow whenever a message of the handled type is received. A workflow can be started * by one or more message types. * @param messageConstructor The type of message that starts a new workflow */ function StartedBy(messageConstructor) { return (target, propertyKey) => WorkflowStartedByMetadata.addStep({ propertyKey, messageConstructor }, target); } exports.StartedBy = StartedBy; //# sourceMappingURL=started-by.js.map