UNPKG

@bernierllc/temporal-workflow-ui

Version:

Thin domain-specific wrapper around @bernierllc/generic-workflow-ui for Temporal workflows

76 lines (74 loc) 2.54 kB
"use strict"; /* Copyright (c) 2025 Bernier LLC This file is licensed to the client under a limited-use license. The client may use and modify this code *only within the scope of the project it was delivered for*. Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.genericToTemporal = genericToTemporal; /** * Convert Generic workflow to Temporal workflow * * @param generic - Generic workflow definition * @returns Temporal workflow definition */ function genericToTemporal(generic) { const temporalMetadata = generic.metadata?.temporal || {}; return { id: generic.id, name: generic.name, description: generic.description, stages: generic.stages.map(genericStageToTemporal), transitions: generic.transitions.map(genericTransitionToTemporal), metadata: generic.metadata, defaultTaskQueue: temporalMetadata.defaultTaskQueue, workflowTimeout: temporalMetadata.workflowTimeout, searchAttributes: temporalMetadata.searchAttributes, workQueues: temporalMetadata.workQueues, signals: temporalMetadata.signals, queries: temporalMetadata.queries, }; } /** * Convert Generic stage to Temporal stage * * @param stage - Generic stage * @returns Temporal workflow stage */ function genericStageToTemporal(stage) { const metadata = stage.metadata || {}; const temporalMetadata = metadata.temporal; // Validate that we have the required Temporal metadata if (!temporalMetadata || !temporalMetadata.nodeType) { throw new Error(`Stage ${stage.id} missing required Temporal metadata`); } return { id: stage.id, name: stage.name, description: stage.description, order: stage.order, type: temporalMetadata.nodeType, metadata: temporalMetadata, icon: metadata.icon, color: metadata.color, }; } /** * Convert Generic transition to Temporal transition * * @param transition - Generic transition * @returns Temporal workflow transition */ function genericTransitionToTemporal(transition) { const metadata = transition.metadata || {}; return { id: transition.id, from: transition.from, to: transition.to, name: transition.name, description: transition.description, condition: metadata.condition, metadata: metadata.temporal, }; }