@@ -60,10 +60,19 @@ export async function getWorkflow(id: workflow['id']): Promise<WorkflowData> {
60
60
}
61
61
}
62
62
63
- export async function createWorkflow ( workflow : workflow ) {
63
+ export async function createWorkflow ( workflow : workflow , skipEnvironmentCreation = false ) {
64
64
const environmentId = nanoid ( )
65
- workflow . currentEnvironmentId = environmentId
65
+
66
+ if ( ! skipEnvironmentCreation ) {
67
+ workflow . currentEnvironmentId = environmentId
68
+ }
69
+
66
70
await db . insert ( workflows ) . values ( workflow )
71
+
72
+ if ( skipEnvironmentCreation ) {
73
+ return
74
+ }
75
+
67
76
await db . insert ( environments ) . values ( {
68
77
id : environmentId ,
69
78
name : 'Default' ,
@@ -164,19 +173,33 @@ export async function importWorkflow(workflowDataString: string) : Promise<workf
164
173
const workflowData : WorkflowData = JSON . parse ( workflowDataString )
165
174
166
175
const newWorkflowId = nanoid ( )
167
- const newWorkflow = {
168
- ...workflowData . workflow ,
169
- id : newWorkflowId ,
170
- currentEnvironmentId : null
171
- }
172
- await createWorkflow ( newWorkflow )
176
+
177
+ const newEnvironments = [ ]
178
+
179
+ const enviromentIdMap = new Map < string , string > ( )
173
180
174
181
for ( const environment of workflowData . environments ) {
182
+ const newEnvironmentId = nanoid ( )
183
+
184
+ enviromentIdMap . set ( environment . id , newEnvironmentId )
185
+
175
186
const newEnvironment = {
176
187
...environment ,
177
- id : nanoid ( ) ,
188
+ id : newEnvironmentId ,
178
189
workflowId : newWorkflowId
179
190
}
191
+
192
+ newEnvironments . push ( newEnvironment )
193
+ }
194
+
195
+ const newWorkflow = {
196
+ ...workflowData . workflow ,
197
+ id : newWorkflowId ,
198
+ currentEnvironmentId : workflowData . workflow . currentEnvironmentId ? enviromentIdMap . get ( workflowData . workflow . currentEnvironmentId ) : null
199
+ }
200
+ await createWorkflow ( newWorkflow , true )
201
+
202
+ for ( const newEnvironment of newEnvironments ) {
180
203
await createEnvironment ( newEnvironment )
181
204
}
182
205
0 commit comments