1
1
import { readFile } from 'fs/promises' ;
2
+ import orderedJSON from "json-order" ;
2
3
3
4
import { type ApiSpec , isApiSpec } from '../models/api-spec' ;
4
5
import { type CookieJar , isCookieJar } from '../models/cookie-jar' ;
@@ -21,6 +22,7 @@ import type { CurrentPlan } from '../ui/routes/organization';
21
22
import { convert , type InsomniaImporter } from '../utils/importers/convert' ;
22
23
import { id as postmanEnvImporterId } from '../utils/importers/importers/postman-env' ;
23
24
import { invariant } from '../utils/invariant' ;
25
+ import { JSON_ORDER_PREFIX , JSON_ORDER_SEPARATOR } from './constants' ;
24
26
import { database as db } from './database' ;
25
27
import { importInsomniaV5Data } from './insomnia-v5' ;
26
28
import { generateId } from './misc' ;
@@ -378,7 +380,16 @@ export const importResourcesToWorkspace = async ({ workspaceId }: { workspaceId:
378
380
379
381
const baseEnvironmentFromResources = resources . filter ( isEnvironment ) . find ( env => env . parentId && env . parentId . startsWith ( '__WORKSPACE_ID__' ) ) ;
380
382
if ( baseEnvironmentFromResources ) {
381
- await models . environment . update ( baseEnvironment , { data : baseEnvironmentFromResources . data } ) ;
383
+ const data = { ...baseEnvironment . data , ...baseEnvironmentFromResources . data }
384
+ const orderedJson = orderedJSON . parse < Record < string , any > > (
385
+ JSON . stringify ( data || [ ] ) ,
386
+ JSON_ORDER_PREFIX ,
387
+ JSON_ORDER_SEPARATOR ,
388
+ ) ;
389
+ await models . environment . update ( baseEnvironment , {
390
+ data : orderedJson . object ,
391
+ dataPropertyOrder : orderedJson . map
392
+ } ) ;
382
393
}
383
394
const subEnvironments = resources . filter ( isEnvironment ) . filter ( isSubEnvironmentResource ) || [ ] ;
384
395
0 commit comments