UNPKG

@5minds/processcube_engine

Version:

The ProcessCube Engine. Stores and executes BPMNs.

74 lines 3.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createProcessInstanceFromModel = createProcessInstanceFromModel; const processcube_engine_sdk_1 = require("@5minds/processcube_engine_sdk"); const Compression_1 = require("./Compression"); const FlowNodeInstanceFactory_1 = require("./FlowNodeInstanceFactory"); async function createProcessInstanceFromModel(dataModel) { let startToken; let endToken; if (dataModel.startToken) { startToken = (0, processcube_engine_sdk_1.deserializeJson)(dataModel.startToken); } else if (dataModel.startTokenCompressed) { startToken = await (0, Compression_1.decompressToken)(dataModel.startTokenCompressed); } if (dataModel.endToken) { endToken = (0, processcube_engine_sdk_1.deserializeJson)(dataModel.endToken); } else if (dataModel.endTokenCompressed) { endToken = await (0, Compression_1.decompressToken)(dataModel.endTokenCompressed); } const processInstance = { correlationId: dataModel.correlationId, processInstanceId: dataModel.processInstanceId, processDefinitionId: dataModel.processDefinitionId, processModelId: dataModel.processModelId, processModelName: dataModel.processModelName, processModelVersion: dataModel.processModelVersion, embeddedProcessModelId: dataModel.embeddedProcessModelId, hash: dataModel.processModelHash, parentProcessInstanceId: dataModel.parentProcessInstanceId, xml: dataModel.processDefinition?.xml, ownerId: dataModel.ownerId, ownerToken: dataModel.ownerToken, startedByRootAccessToken: dataModel.startedByRootAccessToken, createdAt: dataModel.createdAt, state: dataModel.state, finishedAt: dataModel.finishedAt, restartedAt: dataModel.restartedAt, durationInMilliseconds: dataModel.durationInMilliseconds ? parseInt(dataModel.durationInMilliseconds) : 0, terminatedByUserId: dataModel.terminatedByUserId, error: dataModel.error ? (0, processcube_engine_sdk_1.deserializeJson)(dataModel.error) : undefined, startEventId: dataModel.startEventId, startEventType: dataModel.startEventType, startToken: startToken, endEventId: dataModel.endEventId, endEventType: dataModel.endEventType, endToken: endToken, correlation: { correlationId: dataModel.correlation?.correlationId ?? dataModel.correlationId, metadata: {}, }, metadata: {}, triggeredByFlowNodeInstance: await (0, FlowNodeInstanceFactory_1.createFlowNodeInstanceFromModel)(dataModel.triggeredByFlowNodeInstance), }; dataModel.processInstanceMetadata ?.sort((first, second) => { return first.createdAt > second.createdAt ? 1 : -1; }) .forEach((metaData) => { processInstance.metadata[metaData.key] = metaData.value; }); if (dataModel.correlation?.correlationMetadata) { dataModel.correlation.correlationMetadata ?.sort((first, second) => { return first.createdAt > second.createdAt ? 1 : -1; }) .forEach((metaData) => { processInstance.correlation.metadata[metaData.key] = metaData.value; }); } return processInstance; } //# sourceMappingURL=ProcessInstanceFactory.js.map