refactor: move the common code that insomnia-data depends on#9931
Open
ZxBing0066 wants to merge 10 commits into
Open
refactor: move the common code that insomnia-data depends on#9931ZxBing0066 wants to merge 10 commits into
ZxBing0066 wants to merge 10 commits into
Conversation
✨ Circular References ReportGenerated at: 2026-05-25T07:30:01.736Z Summary
|
Contributor
There was a problem hiding this comment.
Pull request overview
This PR refactors shared “common” utilities/types/constants so they live under ~/insomnia-data/common, enabling insomnia-data to become a more standalone package in a follow-up step.
Changes:
- Introduces
packages/insomnia/src/insomnia-data/common(-src)as the new home for cross-cutting utilities (platform, settings/hotkeys, strings, preview-modes, constants, NDJSON, etc.). - Updates a wide set of renderer/main/node/service modules to import shared code from
~/insomnia-data/commoninstead of~/common/*or~/utils/*. - Consolidates model-facing types (e.g.,
RequestTestResult,ResponseTimelineEntry) intoinsomnia-datamodels/types and updates dependents accordingly.
Reviewed changes
Copilot reviewed 118 out of 124 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/insomnia/src/utils/invariant.ts | Re-export invariant from ~/insomnia-data/common. |
| packages/insomnia/src/utils/index.ts | Removes typedKeys export (moved to ~/insomnia-data/common). |
| packages/insomnia/src/ui/utils.ts | Switches platform import to ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/websockets/websocket-preview-dropdown.tsx | Uses preview-mode constants from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/websockets/realtime-response-pane.tsx | Uses deserializeNDJSON from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/websockets/event-view.tsx | Uses preview-mode constants from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/viewers/response-viewer.tsx | Uses preview-mode constants from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/viewers/response-multipart-viewer.tsx | Uses preview/content-type helpers from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/settings/text-setting.tsx | Uses SettingsOfType from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/settings/text-array-setting.tsx | Uses SettingsOfType from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/settings/shortcuts.tsx | Moves hotkey types + helpers to ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/settings/number-setting.tsx | Uses SettingsOfType from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/settings/masked-setting.tsx | Uses SettingsOfType from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/settings/import-export.tsx | Uses strings from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/settings/general.tsx | Uses platform/settings/strings from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/settings/enum-setting.tsx | Uses SettingsOfType from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/settings/boolean-setting.tsx | Uses SettingsOfType from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/project/project-settings-form.tsx | Uses platform from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/panes/response-pane.tsx | Uses preview-mode constant from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/panes/request-test-result-pane.tsx | Uses RequestTestResult from ~/insomnia-data. |
| packages/insomnia/src/ui/components/panes/request-pane.tsx | Uses content-type helper from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/panes/placeholder-response-pane.tsx | Uses hotkey descriptions/types from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/modals/workspace-duplicate-modal.tsx | Uses database and strings from ~/insomnia-data / ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/modals/sync-delete-modal.tsx | Uses strings from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/modals/request-settings-modal.tsx | Uses invariant from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/modals/request-group-settings-modal.tsx | Uses invariant from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/modals/oauth-authorization-status-modal.tsx | Uses invariant from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/modals/invite-modal/encryption.ts | Uses invariant from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/modals/index.ts | Uses invariant from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/modals/import-modal/import-modal.tsx | Uses invariant from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/modals/git-project-staging-modal.tsx | Uses platform from ~/insomnia-data/common; minor formatting tweak. |
| packages/insomnia/src/ui/components/modals/add-request-to-collection-modal.tsx | Uses database + strings from ~/insomnia-data / ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/modals/add-key-combination-modal.tsx | Uses hotkey helpers/types from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/mocks/mock-response-pane.tsx | Uses preview-mode constants from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/mcp/event-view.tsx | Uses preview-mode constants from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/keydown-binder.ts | Uses hotkey helpers/types from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/hotkey.tsx | Uses hotkey helpers + platform from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/editors/request-headers-editor.tsx | Uses invariant from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/editors/environment-editor.tsx | Uses isWindows from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/editors/body/graph-ql-editor.tsx | Uses invariant from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/editors/body/body-editor.tsx | Uses content-type constants/helpers from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/dropdowns/workspace-dropdown.tsx | Uses PlatformKeyCombinations + invariant from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/dropdowns/response-history-dropdown.tsx | Replaces local decompression with services.requestVersion.getRequest preload. |
| packages/insomnia/src/ui/components/dropdowns/request-group-actions-dropdown.tsx | Uses PlatformKeyCombinations from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/dropdowns/request-actions-dropdown.tsx | Uses PlatformKeyCombinations from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/dropdowns/preview-mode-dropdown.tsx | Uses preview-mode constants/helpers from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/dropdowns/mcp-actions-dropdown.tsx | Uses PlatformKeyCombinations from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/command-palette.tsx | Uses hotkey display helpers from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/base/dropdown/item-content.tsx | Uses PlatformKeyCombinations from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/base/dropdown/dropdown-hint.tsx | Uses PlatformKeyCombinations from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/.client/codemirror/one-line-editor.tsx | Uses key-combo type + isMac from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/.client/codemirror/extensions/autocomplete.ts | Uses getPlatformKeyCombinations from ~/insomnia-data/common. |
| packages/insomnia/src/ui/components/.client/codemirror/code-editor.tsx | Uses key-combo type + isMac from ~/insomnia-data/common. |
| packages/insomnia/src/ui/auth-session-provider.client.ts | Uses invariant from ~/insomnia-data/common. |
| packages/insomnia/src/templating/tests/local-template-tags.test.ts | Tweaks invariant import path and re-formats test calls. |
| packages/insomnia/src/sync/access-error.ts | Uses strings from ~/insomnia-data/common. |
| packages/insomnia/src/scripting/script-security-policy.ts | Uses invariant from ~/insomnia-data/common; formatting. |
| packages/insomnia/src/script-executor.ts | Uses invariant from ~/insomnia-data/common. |
| packages/insomnia/src/routes/organization.$organizationId.project.$projectId.workspace.new.tsx | Uses getMockServiceURL from ~/insomnia-data/common. |
| packages/insomnia/src/routes/organization.$organizationId.project.$projectId.workspace.$workspaceId.mock-server.mock-route.$mockRouteId.tsx | Uses getMockServiceURL from ~/insomnia-data/common. |
| packages/insomnia/src/routes/organization.$organizationId.project.$projectId.workspace.$workspaceId.debug.tsx | Uses PlatformKeyCombinations from ~/insomnia-data/common. |
| packages/insomnia/src/routes/organization.$organizationId.project.$projectId.workspace.$workspaceId.debug.request.$requestId.send.tsx | Uses RequestTestResult from ~/insomnia-data and re-formats call. |
| packages/insomnia/src/routes/git.branch.delete.tsx | Uses invariant from ~/insomnia-data/common. |
| packages/insomnia/src/plugins/misc.ts | Uses getAppDefaultTheme from ~/insomnia-data/common. |
| packages/insomnia/src/plugins/index.ts | Uses PluginConfigMap and database from ~/insomnia-data / ~/insomnia-data/common. |
| packages/insomnia/src/plugins/context/app.ts | Uses platform from ~/insomnia-data/common. |
| packages/insomnia/src/network/network.ts | Uses invariant and NDJSON serializer from ~/insomnia-data/common; moves RequestTestResult type to ~/insomnia-data. |
| packages/insomnia/src/network/concurrency.ts | Uses RequestTestResult from ~/insomnia-data. |
| packages/insomnia/src/network/tests/network.test.ts | Uses HttpVersions from ~/insomnia-data/common. |
| packages/insomnia/src/main/window-utils.ts | Uses isLinux/isMac from ~/insomnia-data/common. |
| packages/insomnia/src/main/cloud-sync/core/store/drivers/graceful-rename.ts | Uses isWindows from ~/insomnia-data/common. |
| packages/insomnia/src/insomnia-data/src/models/workspace.ts | Uses strings from ~/insomnia-data/common. |
| packages/insomnia/src/insomnia-data/src/models/user-session.ts | Inlines AESMessage type (decouples from account/crypt import). |
| packages/insomnia/src/insomnia-data/src/models/types.ts | Exports ResponseTimelineEntry and RequestTestResult from insomnia-data models. |
| packages/insomnia/src/insomnia-data/src/models/socket-io-payload.ts | Uses CONTENT_TYPE_JSON from ~/insomnia-data/common. |
| packages/insomnia/src/insomnia-data/src/models/settings.ts | Uses defaults/hotkeys/settings types from ~/insomnia-data/common. |
| packages/insomnia/src/insomnia-data/src/models/runner-test-result.ts | Moves RequestTestResult shape into insomnia-data models. |
| packages/insomnia/src/insomnia-data/src/models/response.ts | Adds ResponseTimelineEntry type and rehomes RequestTestResult import. |
| packages/insomnia/src/insomnia-data/src/models/request-meta.ts | Uses preview-mode constants/types from ~/insomnia-data/common. |
| packages/insomnia/src/insomnia-data/src/models/proto-directory.ts | Uses generateId from ~/insomnia-data/common. |
| packages/insomnia/src/insomnia-data/src/models/project.ts | Uses generateId from ~/insomnia-data/common. |
| packages/insomnia/src/insomnia-data/src/models/index.test.ts | Uses generateId from ~/insomnia-data/common. |
| packages/insomnia/src/insomnia-data/src/models/api-spec.ts | Uses strings from ~/insomnia-data/common. |
| packages/insomnia/src/insomnia-data/node-src/services/response.ts | Uses database from ~/insomnia-data instead of ~/common/database. |
| packages/insomnia/src/insomnia-data/node-src/services/request-version.ts | Adds async gzip/ungzip helpers + getRequest API; refactors checks. |
| packages/insomnia/src/insomnia-data/node-src/services/mcp-request.ts | Uses invariant from ~/insomnia-data/common. |
| packages/insomnia/src/insomnia-data/node-src/services/helpers/response-operations.ts | Uses deserializeNDJSON and timeline entry type from insomnia-data/common/models. |
| packages/insomnia/src/insomnia-data/node-src/services/helpers/query-all-workspace-urls.ts | Uses invariant from ~/insomnia-data/common. |
| packages/insomnia/src/insomnia-data/node-src/database/init-model/settings.ts | Uses hotkey defaults/types from ~/insomnia-data/common. |
| packages/insomnia/src/insomnia-data/node-src/database/init-model/request.ts | Uses querystring/content-type helpers from ~/insomnia-data/common. |
| packages/insomnia/src/insomnia-data/node-src/database/init-model/index.ts | Uses generateId + typedKeys from ~/insomnia-data/common. |
| packages/insomnia/src/insomnia-data/node-src/database/database-nedb.ts | Uses generateId from ~/insomnia-data/common. |
| packages/insomnia/src/insomnia-data/common.ts | New entry-point exporting common-src. |
| packages/insomnia/src/insomnia-data/common-src/type.ts | New typedKeys helper. |
| packages/insomnia/src/insomnia-data/common-src/strings.ts | New shared strings registry. |
| packages/insomnia/src/insomnia-data/common-src/settings.ts | New shared settings + hotkey type definitions. |
| packages/insomnia/src/insomnia-data/common-src/querystring.ts | New querystring deconstruction helper. |
| packages/insomnia/src/insomnia-data/common-src/preview-mode.ts | New preview-mode constants/types. |
| packages/insomnia/src/insomnia-data/common-src/platform.ts | New platform detection using preload-exposed window.app.process. |
| packages/insomnia/src/insomnia-data/common-src/ndjson.ts | New NDJSON (de)serializer utilities. |
| packages/insomnia/src/insomnia-data/common-src/ndjson.test.ts | Adds Vitest coverage for NDJSON helpers. |
| packages/insomnia/src/insomnia-data/common-src/misc.ts | New generateId helper. |
| packages/insomnia/src/insomnia-data/common-src/keyboard-keys.ts | New shared keyboard key map. |
| packages/insomnia/src/insomnia-data/common-src/invariant.ts | New shared invariant implementation. |
| packages/insomnia/src/insomnia-data/common-src/index.ts | Barrel export for common-src modules. |
| packages/insomnia/src/insomnia-data/common-src/hotkeys.ts | New shared hotkey registry + display helpers. |
| packages/insomnia/src/insomnia-data/common-src/constants.ts | New shared constants + header helpers + defaults. |
| packages/insomnia/src/entry.preload.ts | Uses invariant from ~/insomnia-data/common. |
| packages/insomnia/src/entry.main.ts | Uses isMac from ~/insomnia-data/common. |
| packages/insomnia/src/common/misc.ts | Re-exports generateId from ~/insomnia-data/common; string quote normalization. |
| packages/insomnia/src/common/get-workspace-label.ts | Uses strings from ~/insomnia-data/common. |
| packages/insomnia/src/common/constants.ts | Imports/re-exports moved constants/platform helpers from ~/insomnia-data/common. |
| packages/insomnia/src/common/compression.ts | Deletes old fflate-based compression helper module. |
| packages/insomnia/src/common/tests/get-workspace-label.test.ts | Updates test to use strings from ~/insomnia-data/common. |
| packages/insomnia/src/common/tests/constants.test.ts | Updates MockServer type import to ~/insomnia-data. |
| packages/insomnia/config/config.json | Removes theme/lightTheme/darkTheme fields. |
| packages/insomnia-scripting-environment/src/objects/test.ts | Uses RequestTestResult from ~/insomnia-data. |
| packages/insomnia-scripting-environment/src/objects/interfaces.ts | Uses RequestTestResult from ~/insomnia-data. |
| packages/insomnia-scripting-environment/src/objects/insomnia.ts | Uses RequestTestResult from ~/insomnia-data. |
| packages/insomnia-inso/src/reporter/index.ts | Uses RequestTestResult from ~/insomnia-data. |
| packages/insomnia-inso/src/reporter/index.test.ts | Uses RequestTestResult from ~/insomnia-data. |
| packages/insomnia-inso/src/commands/run-collection/result-report.ts | Uses typedKeys from ~/insomnia-data/common and RequestTestResult from ~/insomnia-data. |
| packages/insomnia-inso/src/cli.ts | Uses deserializeNDJSON and RequestTestResult from ~/insomnia-data/common / ~/insomnia-data. |
| eslint.config.mjs | Relaxes restricted-import rule to allow ~/insomnia-data/common. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+59
to
+78
| const [requestsByVersionId, setRequestsByVersionId] = useState<Record<string, Request | WebSocketRequest | null>>({}); | ||
|
|
||
| useEffect(() => { | ||
| let cancelled = false; | ||
| const load = async () => { | ||
| const entries = await Promise.all( | ||
| requestVersions.map(async rv => { | ||
| const req = await services.requestVersion.getRequest<Request | WebSocketRequest>(rv); | ||
| return [rv._id, req] as const; | ||
| }), | ||
| ); | ||
| if (!cancelled) { | ||
| setRequestsByVersionId(Object.fromEntries(entries)); | ||
| } | ||
| }; | ||
| load(); | ||
| return () => { | ||
| cancelled = true; | ||
| }; | ||
| }, [requestVersions]); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
RequestTestResultandResponseTimelineEntryto insomnia-data