Skip to content

Commit fb3f2ab

Browse files
committed
feat(lib): add serverless workflow builder library with nodes, hooks and utils
Introduce a reusable library for building serverless workflow editors with React Flow. Includes: - Pre-built node components (Start, Operation, Switch, Event, Sleep, End) - State management hooks (useHistory, useWorkflowState) - Workflow conversion utilities - Styled components with CSS - Comprehensive documentation in README
1 parent a133beb commit fb3f2ab

File tree

19 files changed

+1679
-27
lines changed

19 files changed

+1679
-27
lines changed

src/components/core/WorkflowEditor/index.js

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -13,39 +13,30 @@ import ReactFlow, {
1313
import 'reactflow/dist/style.css';
1414

1515
import Sidebar from '../../ui/Sidebar';
16-
import OperationNode from '../nodes/OperationNode';
17-
import SwitchNode from '../nodes/SwitchNode';
18-
import StartNode from '../nodes/StartNode';
19-
import EndNode from '../nodes/EndNode';
20-
import EventNode from '../nodes/EventNode';
21-
import SleepNode from '../nodes/SleepNode';
2216
import JsonExporter from '../../import-export/JsonExporter';
2317
import JsonImporter from '../../import-export/JsonImporter';
2418
import ProjectManager, { ProjectStorage } from '../../project/ProjectManager';
2519
import ProjectSidebar from '../../project/ProjectSidebar';
26-
import { useHistory } from '../../../hooks/useHistory';
2720
import { useProjectMigration } from '../../../hooks/useProjectMigration';
21+
// Import from library
22+
import {
23+
OperationNode,
24+
SwitchNode,
25+
StartNode,
26+
EndNode,
27+
EventNode,
28+
SleepNode,
29+
useHistory,
30+
nodeTypes as libraryNodeTypes,
31+
defaultInitialNodes as libraryDefaultNodes,
32+
defaultInitialEdges as libraryDefaultEdges,
33+
} from '../../../lib/src';
2834
import './WorkflowEditor.css';
2935

30-
const nodeTypes = {
31-
operation: OperationNode,
32-
switch: SwitchNode,
33-
start: StartNode,
34-
end: EndNode,
35-
event: EventNode,
36-
sleep: SleepNode,
37-
};
38-
39-
const defaultInitialNodes = [
40-
{
41-
id: 'start-1',
42-
type: 'start',
43-
position: { x: 100, y: 100 },
44-
data: { label: 'Start' },
45-
},
46-
];
47-
48-
const defaultInitialEdges = [];
36+
// Use library exports
37+
const nodeTypes = libraryNodeTypes;
38+
const defaultInitialNodes = libraryDefaultNodes;
39+
const defaultInitialEdges = libraryDefaultEdges;
4940

5041
// Load project state from localStorage
5142
function loadProjectState(projectId) {

src/components/import-export/JsonExporter/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import WorkflowInfoEditor from './components/WorkflowInfoEditor';
88
import JsonOutput from './components/JsonOutput';
99

1010
// Import extracted utilities
11-
import { createServerlessWorkflow, createReactFlowData } from './utils/workflowConverter';
11+
import { createServerlessWorkflow, createReactFlowData } from '../../../lib/src';
1212
import { validateWorkflow } from './utils/exportValidation';
1313

1414
const JsonExporter = ({ nodes, edges, workflowMetadata, onClose }) => {

0 commit comments

Comments
 (0)