diff --git a/packages/insomnia/src/ui/routes/workspace.tsx b/packages/insomnia/src/ui/routes/workspace.tsx index 76cfb718d3c..65fc1f4f277 100644 --- a/packages/insomnia/src/ui/routes/workspace.tsx +++ b/packages/insomnia/src/ui/routes/workspace.tsx @@ -122,7 +122,13 @@ export const workspaceLoader: LoaderFunction = async ({ const searchParams = new URL(request.url).searchParams; const filter = searchParams.get('filter'); const sortOrder = searchParams.get('sortOrder') as SortOrder; - const sortFunction = sortMethodMap[sortOrder] || sortMethodMap['type-manual']; + const defaultSort = (a: Request | GrpcRequest | WebSocketRequest | RequestGroup, b: Request | GrpcRequest | WebSocketRequest | RequestGroup) => { + if (a.metaSortKey === b.metaSortKey) { + return a._id > b._id ? 1 : -1; + } + return a.metaSortKey < b.metaSortKey ? 1 : -1; + }; + const sortFunction = sortMethodMap[sortOrder] || defaultSort; // first recursion to get all the folders ids in order to use nedb search by an array const flattenFoldersIntoList = async (id: string): Promise => { @@ -145,7 +151,6 @@ export const workspaceLoader: LoaderFunction = async ({ const grpcRequestMetas = await database.find(models.grpcRequestMeta.type, { parentId: { $in: grpcReqs.map(r => r._id) } }); const grpcAndRequestMetas = [...requestMetas, ...grpcRequestMetas] as (RequestMeta | GrpcRequestMeta)[]; const requestGroupMetas = await database.find(models.requestGroupMeta.type, { parentId: { $in: listOfParentIds } }) as RequestGroupMeta[]; - // second recursion to build the tree const getCollectionTree = async ({ parentId, diff --git a/packages/insomnia/src/utils/importers/entities.ts b/packages/insomnia/src/utils/importers/entities.ts index cb09ccadcf2..e788d0b90f2 100644 --- a/packages/insomnia/src/utils/importers/entities.ts +++ b/packages/insomnia/src/utils/importers/entities.ts @@ -77,6 +77,7 @@ export interface ImportRequest extends Comment { variable?: UNKNOWN; queryString?: QueryString[]; url?: string; + preRequestScript?: string; } export type Converter = ( diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/api-key-default-v2_1-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/api-key-default-v2_1-output.json index 99b9fb4ff0c..966cb77f321 100644 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/api-key-default-v2_1-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/api-key-default-v2_1-output.json @@ -15,6 +15,7 @@ { "_id": "__REQ_1__", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "mockbin.org/request/any", "name": "New Request", "description": "", diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/api-key-header-v2_1-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/api-key-header-v2_1-output.json index 99b9fb4ff0c..966cb77f321 100644 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/api-key-header-v2_1-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/api-key-header-v2_1-output.json @@ -15,6 +15,7 @@ { "_id": "__REQ_1__", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "mockbin.org/request/any", "name": "New Request", "description": "", diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/api-key-queryParams-v2_1-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/api-key-queryParams-v2_1-output.json index 304912a1299..f18310e1020 100644 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/api-key-queryParams-v2_1-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/api-key-queryParams-v2_1-output.json @@ -15,6 +15,7 @@ { "_id": "__REQ_1__", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "mockbin.org/request/any", "name": "New Request", "description": "", diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/aws-signature-auth-v2_0-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/aws-signature-auth-v2_0-output.json index 77826bf5d9c..f156661f8fd 100644 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/aws-signature-auth-v2_0-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/aws-signature-auth-v2_0-output.json @@ -16,6 +16,7 @@ "_id": "__REQ_1__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "https://insomnia.rest", "name": "AWS Signature", "description": "", diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/aws-signature-auth-v2_1-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/aws-signature-auth-v2_1-output.json index 77826bf5d9c..f156661f8fd 100644 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/aws-signature-auth-v2_1-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/aws-signature-auth-v2_1-output.json @@ -16,6 +16,7 @@ "_id": "__REQ_1__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "https://insomnia.rest", "name": "AWS Signature", "description": "", diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/basic-auth-v2_0-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/basic-auth-v2_0-output.json index d11a9d414b4..e913b6545ff 100644 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/basic-auth-v2_0-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/basic-auth-v2_0-output.json @@ -16,6 +16,7 @@ "_id": "__REQ_1__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "https://insomnia.rest", "name": "Basic Auth", "description": "", diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/basic-auth-v2_1-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/basic-auth-v2_1-output.json index d11a9d414b4..e913b6545ff 100644 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/basic-auth-v2_1-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/basic-auth-v2_1-output.json @@ -16,6 +16,7 @@ "_id": "__REQ_1__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "https://insomnia.rest", "name": "Basic Auth", "description": "", diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/bearer-token-v2_0-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/bearer-token-v2_0-output.json index 323cf44fd68..efe89b22521 100644 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/bearer-token-v2_0-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/bearer-token-v2_0-output.json @@ -16,6 +16,7 @@ "_id": "__REQ_1__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "https://insomnia.rest", "name": "Bearer Token", "description": "", diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/bearer-token-v2_1-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/bearer-token-v2_1-output.json index 323cf44fd68..efe89b22521 100644 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/bearer-token-v2_1-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/bearer-token-v2_1-output.json @@ -16,6 +16,7 @@ "_id": "__REQ_1__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "https://insomnia.rest", "name": "Bearer Token", "description": "", diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/complex-url-v2_0-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/complex-url-v2_0-output.json index 4c76f541d66..a7d96d18cbc 100755 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/complex-url-v2_0-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/complex-url-v2_0-output.json @@ -16,6 +16,7 @@ "_id": "__REQ_1__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "https://insomnia.rest", "name": "Test Request", "description": "", diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/complex-url-v2_1-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/complex-url-v2_1-output.json index ea887ca6a90..5f23dc837f6 100755 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/complex-url-v2_1-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/complex-url-v2_1-output.json @@ -16,6 +16,7 @@ "_id": "__REQ_1__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "https://insomnia.rest", "name": "Test Request", "parameters": [ diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/complex-v2_0-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/complex-v2_0-output.json index 88266e358ef..b2bf118d180 100755 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/complex-v2_0-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/complex-v2_0-output.json @@ -24,6 +24,7 @@ "_id": "__REQ_1__", "_type": "request", "parentId": "__GRP_2__", + "preRequestScript": "", "url": "{{base_url}}/api/users", "name": "{{base_url}}/api/users", "description": "First Request", @@ -58,6 +59,7 @@ "_id": "__REQ_2__", "_type": "request", "parentId": "__GRP_2__", + "preRequestScript": "", "url": "{{base_url}}/api/users", "name": "Urlencoded Form Test", "description": "First Request", @@ -85,6 +87,7 @@ "_id": "__REQ_3__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "{{base_url}}/api/users", "name": "Test Request Raw Body", "description": "Request with raw body", @@ -101,6 +104,7 @@ "_id": "__REQ_4__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "{{base_url}}/api/users", "name": "Test Request Empty Raw Body", "description": "Request with empty raw body", @@ -114,6 +118,7 @@ "_id": "__REQ_5__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "{{base_url}}/api/users", "name": "Test Request Unknown Body", "description": "Request with unknown body", @@ -127,6 +132,7 @@ "_id": "__REQ_6__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "{{base_url}}/graphql/", "name": "Test Request GraphQL Body", "description": "Request with graphql body", diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/complex-v2_0_fromHeaders-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/complex-v2_0_fromHeaders-output.json index 3afb951fc5e..7ddd460093f 100644 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/complex-v2_0_fromHeaders-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/complex-v2_0_fromHeaders-output.json @@ -54,6 +54,7 @@ } ], "parentId": "__GRP_2__", + "preRequestScript": "", "url": "" }, { @@ -102,6 +103,7 @@ } ], "parentId": "__GRP_2__", + "preRequestScript": "", "url": "" }, { @@ -132,6 +134,7 @@ "name": "Create a new project.", "parameters": [], "parentId": "__GRP_2__", + "preRequestScript": "", "url": "" }, { @@ -162,6 +165,7 @@ "name": "Display the specified project.", "parameters": [], "parentId": "__GRP_2__", + "preRequestScript": "", "url": "" }, { @@ -202,6 +206,7 @@ "name": "Update the specified project.", "parameters": [], "parentId": "__GRP_2__", + "preRequestScript": "", "url": "" } ] diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/complex-v2_1-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/complex-v2_1-output.json index 1cc0bcba84e..fdc9ff97738 100755 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/complex-v2_1-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/complex-v2_1-output.json @@ -24,6 +24,7 @@ "_id": "__REQ_1__", "_type": "request", "parentId": "__GRP_2__", + "preRequestScript": "", "url": "{{base_url}}/api/users", "name": "{{base_url}}/api/users", "description": "First Request", @@ -64,6 +65,7 @@ "_id": "__REQ_2__", "_type": "request", "parentId": "__GRP_2__", + "preRequestScript": "", "url": "{{base_url}}/api/users", "name": "Urlencoded Form Test", "description": "First Request", @@ -91,6 +93,7 @@ "_id": "__REQ_3__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "{{base_url}}/api/users", "name": "Test Request", "description": "Request with raw body", @@ -107,6 +110,7 @@ "_id": "__REQ_4__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "{{base_url}}/api/users", "name": "Test Request Unknown Body", "description": "Request with unknown body", @@ -120,6 +124,7 @@ "_id": "__REQ_5__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "{{base_url}}/api/users", "name": "Test Request Empty Body", "description": "Request with empty raw body", @@ -133,6 +138,7 @@ "_id": "__REQ_6__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "{{base_url}}/graphql/", "name": "Test Request GraphQL Body", "description": "Request with graphql body", diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/digest-auth-v2_0-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/digest-auth-v2_0-output.json index d3d11484832..5722d3bcedc 100644 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/digest-auth-v2_0-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/digest-auth-v2_0-output.json @@ -16,6 +16,7 @@ "_id": "__REQ_1__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "https://jigsaw.w3.org/HTTP/Digest/", "name": "Digest Auth", "description": "", diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/digest-auth-v2_1-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/digest-auth-v2_1-output.json index d3d11484832..5722d3bcedc 100644 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/digest-auth-v2_1-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/digest-auth-v2_1-output.json @@ -16,6 +16,7 @@ "_id": "__REQ_1__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "https://jigsaw.w3.org/HTTP/Digest/", "name": "Digest Auth", "description": "", diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/minimal-v2_0-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/minimal-v2_0-output.json index 4d10cf3e771..ef32d3e3093 100755 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/minimal-v2_0-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/minimal-v2_0-output.json @@ -16,6 +16,7 @@ "_id": "__REQ_1__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "", "name": "", "description": "", diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/minimal-v2_1-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/minimal-v2_1-output.json index 4d10cf3e771..ef32d3e3093 100755 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/minimal-v2_1-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/minimal-v2_1-output.json @@ -16,6 +16,7 @@ "_id": "__REQ_1__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "", "name": "", "description": "", diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/oauth1_0-auth-v2_0-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/oauth1_0-auth-v2_0-output.json index 8388c077d6c..f888a2141a2 100644 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/oauth1_0-auth-v2_0-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/oauth1_0-auth-v2_0-output.json @@ -16,6 +16,7 @@ "_id": "__REQ_1__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "https://insomnia.rest", "name": "Added to Request Body/URL", "description": "", @@ -44,6 +45,7 @@ "_id": "__REQ_2__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "https://insomnia.rest", "name": "Added to Request Headers", "description": "", @@ -72,6 +74,7 @@ "_id": "__REQ_3__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "https://insomnia.rest", "name": "Signature Method PLAINTEXT", "description": "", @@ -100,6 +103,7 @@ "_id": "__REQ_4__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "https://insomnia.rest", "name": "Signature Method HMAC-SHA256", "description": "", @@ -128,6 +132,7 @@ "_id": "__REQ_5__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "https://insomnia.rest", "name": "Signature Method HMAC-SHA1", "description": "", diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/oauth1_0-auth-v2_1-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/oauth1_0-auth-v2_1-output.json index 8388c077d6c..f888a2141a2 100644 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/oauth1_0-auth-v2_1-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/oauth1_0-auth-v2_1-output.json @@ -16,6 +16,7 @@ "_id": "__REQ_1__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "https://insomnia.rest", "name": "Added to Request Body/URL", "description": "", @@ -44,6 +45,7 @@ "_id": "__REQ_2__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "https://insomnia.rest", "name": "Added to Request Headers", "description": "", @@ -72,6 +74,7 @@ "_id": "__REQ_3__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "https://insomnia.rest", "name": "Signature Method PLAINTEXT", "description": "", @@ -100,6 +103,7 @@ "_id": "__REQ_4__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "https://insomnia.rest", "name": "Signature Method HMAC-SHA256", "description": "", @@ -128,6 +132,7 @@ "_id": "__REQ_5__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "https://insomnia.rest", "name": "Signature Method HMAC-SHA1", "description": "", diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/oauth2_0-auth-v2_0-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/oauth2_0-auth-v2_0-output.json index a0f54a90f07..ba72e7f8004 100644 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/oauth2_0-auth-v2_0-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/oauth2_0-auth-v2_0-output.json @@ -16,6 +16,7 @@ "_id": "__REQ_1__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "https://insomnia.rest", "name": "Added to Request URL", "description": "", @@ -37,6 +38,7 @@ "_id": "__REQ_2__", "_type": "request", "parentId": "__GRP_1__", + "preRequestScript": "", "url": "https://insomnia.rest", "name": "Added to Request Headers", "description": "", diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/oauth2_0-auth-v2_1-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/oauth2_0-auth-v2_1-output.json index 4be122f5a8e..eeabc825607 100644 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/oauth2_0-auth-v2_1-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/oauth2_0-auth-v2_1-output.json @@ -38,6 +38,7 @@ "name": "auth code", "parameters": [], "parentId": "__GRP_1__", + "preRequestScript": "", "url": "mockbin.org/request/any" }, { @@ -68,6 +69,7 @@ "name": "pkce", "parameters": [], "parentId": "__GRP_1__", + "preRequestScript": "", "url": "mockbin.org/request/any" }, { @@ -97,6 +99,7 @@ "name": "implicit", "parameters": [], "parentId": "__GRP_1__", + "preRequestScript": "", "url": "mockbin.org/request/any" }, { @@ -126,6 +129,7 @@ "name": "password", "parameters": [], "parentId": "__GRP_1__", + "preRequestScript": "", "url": "mockbin.org/request/any" }, { @@ -155,6 +159,7 @@ "name": "client", "parameters": [], "parentId": "__GRP_1__", + "preRequestScript": "", "url": "mockbin.org/request/any" } ] diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/postman/postman-export-oauth2-v2_1-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/postman/postman-export-oauth2-v2_1-output.json index 5b8d5ae619f..5670b6cffde 100644 --- a/packages/insomnia/src/utils/importers/importers/fixtures/postman/postman-export-oauth2-v2_1-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/postman/postman-export-oauth2-v2_1-output.json @@ -39,6 +39,7 @@ "name": "Example request with OAuth2", "parameters": [], "parentId": "__GRP_1__", + "preRequestScript": "", "url": "" } ] diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/wsdl/addition-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/wsdl/addition-output.json index 0f3de71bcd1..dcfd51a9636 100644 --- a/packages/insomnia/src/utils/importers/importers/fixtures/wsdl/addition-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/wsdl/addition-output.json @@ -22,6 +22,7 @@ }, { "parentId": "__GRP_2__", + "preRequestScript": "", "_id": "__REQ_1__", "_type": "request", "name": "Add", diff --git a/packages/insomnia/src/utils/importers/importers/fixtures/wsdl/calculator-output.json b/packages/insomnia/src/utils/importers/importers/fixtures/wsdl/calculator-output.json index 768d91c60ca..76141f125b5 100644 --- a/packages/insomnia/src/utils/importers/importers/fixtures/wsdl/calculator-output.json +++ b/packages/insomnia/src/utils/importers/importers/fixtures/wsdl/calculator-output.json @@ -22,6 +22,7 @@ }, { "parentId": "__GRP_2__", + "preRequestScript": "", "_id": "__REQ_1__", "_type": "request", "name": "Add", @@ -51,6 +52,7 @@ }, { "parentId": "__GRP_2__", + "preRequestScript": "", "_id": "__REQ_2__", "_type": "request", "name": "Subtract", @@ -80,6 +82,7 @@ }, { "parentId": "__GRP_2__", + "preRequestScript": "", "_id": "__REQ_3__", "_type": "request", "name": "Multiply", @@ -109,6 +112,7 @@ }, { "parentId": "__GRP_2__", + "preRequestScript": "", "_id": "__REQ_4__", "_type": "request", "name": "Divide", diff --git a/packages/insomnia/src/utils/importers/importers/postman.ts b/packages/insomnia/src/utils/importers/importers/postman.ts index 5d43c34b4b7..eb689b5d8b0 100644 --- a/packages/insomnia/src/utils/importers/importers/postman.ts +++ b/packages/insomnia/src/utils/importers/importers/postman.ts @@ -1,6 +1,7 @@ import { Converter, ImportRequest, Parameter } from '../entities'; import { Auth as V200Auth, + EventList as V200EventList, Folder as V200Folder, FormParameter as V200FormParameter, Header as V200Header, @@ -14,6 +15,7 @@ import { import { Auth as V210Auth, Auth1 as V210Auth1, + EventList as V210EventList, Folder as V210Folder, FormParameter as V210FormParameter, Header as V210Header, @@ -30,7 +32,7 @@ export const name = 'Postman'; export const description = 'Importer for Postman collections'; type PostmanCollection = V200Schema | V210Schema; - +type EventList = V200EventList | V210EventList; type Variable = V200Variable2 | V210Variable2; type Authetication = V200Auth | V210Auth; @@ -112,8 +114,29 @@ export class ImportPostman { }, []); }; + importPreRequestScript = (events: EventList | undefined): string => { + if (events == null) { + return ''; + } + + const preRequestEvent = events.find( + event => event.listen === 'prerequest' + ); + + const scriptOrRows = preRequestEvent != null ? preRequestEvent.script : ''; + if (scriptOrRows == null || scriptOrRows === '') { + return ''; + } + + const scriptContent = scriptOrRows.exec != null ? + (Array.isArray(scriptOrRows.exec) ? scriptOrRows.exec.join('\n') : scriptOrRows.exec) : + ''; + + return scriptContent; + }; + importRequestItem = ( - { request, name = '' }: Item, + { request, name = '', event }: Item, parentId: string, ): ImportRequest => { if (typeof request === 'string') { @@ -127,6 +150,8 @@ export class ImportPostman { if (typeof request.url === 'object' && request.url.query) { parameters = this.importParameters(request.url?.query); } + + const preRequestScript = this.importPreRequestScript(event); return { parentId, _id: `__REQ_${requestCount++}__`, @@ -144,6 +169,7 @@ export class ImportPostman { })), body: this.importBody(request.body, headers.find(({ key }) => key === 'Content-Type')?.value), authentication, + preRequestScript, }; };