@bernierllc/temporal-workflow-ui
Version:
Thin domain-specific wrapper around @bernierllc/generic-workflow-ui for Temporal workflows
76 lines (74 loc) • 2.54 kB
JavaScript
;
/*
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,
};
}