diff --git a/packages/insomnia/src/common/database.ts b/packages/insomnia/src/common/database.ts index 6f5c32e1873..933cd7286da 100644 --- a/packages/insomnia/src/common/database.ts +++ b/packages/insomnia/src/common/database.ts @@ -12,8 +12,9 @@ import type { CaCertificate } from '~/models/ca-certificate'; import type { ClientCertificate } from '~/models/client-certificate'; import type { CloudProviderCredential } from '~/models/cloud-credential'; import type { WorkspaceMeta } from '~/models/workspace-meta'; +import { invariant } from '~/utils/invariant'; -import { mustGetModel } from '../models'; +import { getModel } from '../models'; import type { CookieJar } from '../models/cookie-jar'; import { type Environment } from '../models/environment'; import type { GitRepository } from '../models/git-repository'; @@ -116,7 +117,8 @@ export const database = { const flushId = await database.bufferChanges(); async function next(docToCopy: T, patch: Partial) { - const model = mustGetModel(docToCopy.type); + const model = getModel(docToCopy.type); + invariant(model, `Invalid model type ${docToCopy.type}`); const overrides = { _id: generateId(model.prefix), modified: Date.now(), @@ -131,7 +133,7 @@ export const database = { // 2. Get all the children for (const type of Object.keys(nedbBucket) as AllTypes[]) { // Note: We never want to duplicate a response - if (!models.canDuplicate(type)) { + if (!model.canDuplicate) { continue; } diff --git a/packages/insomnia/src/models/__tests__/index.test.ts b/packages/insomnia/src/models/__tests__/index.test.ts deleted file mode 100644 index 94b70a010bd..00000000000 --- a/packages/insomnia/src/models/__tests__/index.test.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { describe, expect, it } from 'vitest'; - -import { getModel, mustGetModel } from '../index'; -import * as models from '../index'; - -describe('index', () => { - describe('getModel()', () => { - it('should get model if found', () => { - expect(getModel(models.workspace.type)).not.toBeNull(); - }); - - it('should return null if model not found', () => { - expect(getModel('UNKNOWN')).toBeNull(); - }); - }); - - describe('mustGetModel()', () => { - it('should get model if found', () => { - expect(mustGetModel(models.workspace.type)).not.toBeNull(); - }); - - it('should return null if model not found', () => { - const func = () => mustGetModel('UNKNOWN'); - - expect(func).toThrowError('The model type UNKNOWN must exist but could not be found.'); - }); - }); -}); diff --git a/packages/insomnia/src/models/api-spec.ts b/packages/insomnia/src/models/api-spec.ts index 1fb2a67330c..9a5788e5ebf 100644 --- a/packages/insomnia/src/models/api-spec.ts +++ b/packages/insomnia/src/models/api-spec.ts @@ -30,10 +30,6 @@ export function init(): BaseApiSpec { }; } -export function migrate(doc: ApiSpec) { - return doc; -} - export function getByParentId(workspaceId: string) { return db.findOne(type, { parentId: workspaceId }); } diff --git a/packages/insomnia/src/models/ca-certificate.ts b/packages/insomnia/src/models/ca-certificate.ts index 04cefb109c3..639f73a635f 100644 --- a/packages/insomnia/src/models/ca-certificate.ts +++ b/packages/insomnia/src/models/ca-certificate.ts @@ -32,10 +32,6 @@ export function init(): BaseCaCertificate { export const isCaCertificate = (model: Pick): model is CaCertificate => model.type === type; -export function migrate(doc: CaCertificate) { - return doc; -} - export function create(patch: Partial = {}) { if (!patch.parentId) { throw new Error('New CaCertificate missing `parentId`: ' + JSON.stringify(patch)); diff --git a/packages/insomnia/src/models/client-certificate.ts b/packages/insomnia/src/models/client-certificate.ts index ef06cd91641..42b04cfeb5f 100644 --- a/packages/insomnia/src/models/client-certificate.ts +++ b/packages/insomnia/src/models/client-certificate.ts @@ -40,10 +40,6 @@ export function init(): BaseClientCertificate { export const isClientCertificate = (model: Pick): model is ClientCertificate => model.type === type; -export function migrate(doc: ClientCertificate) { - return doc; -} - export function create(patch: Partial = {}) { if (!patch.parentId) { throw new Error('New ClientCertificate missing `parentId`: ' + JSON.stringify(patch)); diff --git a/packages/insomnia/src/models/cloud-credential.ts b/packages/insomnia/src/models/cloud-credential.ts index 1995e4a7d05..43861563810 100644 --- a/packages/insomnia/src/models/cloud-credential.ts +++ b/packages/insomnia/src/models/cloud-credential.ts @@ -120,10 +120,6 @@ export function init(): Partial { }; } -export function migrate(doc: CloudProviderCredential) { - return doc; -} - export function create(patch: Partial = {}) { return db.docCreate(type, patch); } diff --git a/packages/insomnia/src/models/cookie-jar.ts b/packages/insomnia/src/models/cookie-jar.ts index 0044fc65326..88e33786c73 100644 --- a/packages/insomnia/src/models/cookie-jar.ts +++ b/packages/insomnia/src/models/cookie-jar.ts @@ -47,16 +47,6 @@ export function init() { }; } -export function migrate(doc: CookieJar) { - try { - doc = migrateCookieId(doc); - return doc; - } catch (e) { - console.log('[db] Error during cookie jar migration', e); - throw e; - } -} - export async function create(patch: Partial) { if (!patch.parentId) { throw new Error(`New CookieJar missing \`parentId\`: ${JSON.stringify(patch)}`); @@ -90,14 +80,3 @@ export async function getById(id: string): Promise { export async function update(cookieJar: CookieJar, patch: Partial = {}) { return db.docUpdate(cookieJar, patch); } - -/** Ensure every cookie has an ID property */ -function migrateCookieId(cookieJar: CookieJar) { - for (const cookie of cookieJar.cookies) { - if (!cookie.id) { - cookie.id = uuidv4(); - } - } - - return cookieJar; -} diff --git a/packages/insomnia/src/models/environment.ts b/packages/insomnia/src/models/environment.ts index 2f0b4fc8d53..cd175437f01 100644 --- a/packages/insomnia/src/models/environment.ts +++ b/packages/insomnia/src/models/environment.ts @@ -197,10 +197,6 @@ export function init() { }; } -export function migrate(doc: Environment) { - return doc; -} - export function create(patch: Partial = {}) { if (!patch.parentId) { throw new Error(`New Environment missing \`parentId\`: ${JSON.stringify(patch)}`); diff --git a/packages/insomnia/src/models/git-credentials.ts b/packages/insomnia/src/models/git-credentials.ts index 0ea1e36dca0..e2a7f102c23 100644 --- a/packages/insomnia/src/models/git-credentials.ts +++ b/packages/insomnia/src/models/git-credentials.ts @@ -39,10 +39,6 @@ interface BaseGitCredentials { }; } -export function migrate(doc: GitCredentials) { - return doc; -} - export function create(patch: Partial = {}) { return db.docCreate(type, patch); } diff --git a/packages/insomnia/src/models/git-repository.ts b/packages/insomnia/src/models/git-repository.ts index 580152eef4b..82946d2a6b2 100644 --- a/packages/insomnia/src/models/git-repository.ts +++ b/packages/insomnia/src/models/git-repository.ts @@ -51,10 +51,6 @@ export interface BaseGitRepository { export const isGitRepository = (model: Pick): model is GitRepository => model.type === type; -export function migrate(doc: GitRepository) { - return doc; -} - export function create(patch: Partial = {}) { return db.docCreate(type, { uriNeedsMigration: false, diff --git a/packages/insomnia/src/models/grpc-request-meta.ts b/packages/insomnia/src/models/grpc-request-meta.ts index 791820cbde4..0533f79f09c 100644 --- a/packages/insomnia/src/models/grpc-request-meta.ts +++ b/packages/insomnia/src/models/grpc-request-meta.ts @@ -28,10 +28,6 @@ export function init() { }; } -export function migrate(doc: GrpcRequestMeta) { - return doc; -} - export function create(patch: Partial = {}) { if (!patch.parentId) { throw new Error('New GrpcRequestMeta missing `parentId`'); diff --git a/packages/insomnia/src/models/grpc-request.ts b/packages/insomnia/src/models/grpc-request.ts index 396b376f209..4cfa8673682 100644 --- a/packages/insomnia/src/models/grpc-request.ts +++ b/packages/insomnia/src/models/grpc-request.ts @@ -64,10 +64,6 @@ export function init(): BaseGrpcRequest { }; } -export function migrate(doc: GrpcRequest) { - return doc; -} - export function create(patch: Partial = {}) { if (!patch.parentId) { throw new Error('New GrpcRequest missing `parentId`'); diff --git a/packages/insomnia/src/models/index.ts b/packages/insomnia/src/models/index.ts index fdbbbe4e3f7..6c485842f6d 100644 --- a/packages/insomnia/src/models/index.ts +++ b/packages/insomnia/src/models/index.ts @@ -1,9 +1,14 @@ +import { v4 } from 'uuid'; + +import { invariant } from '~/utils/invariant'; + import { generateId } from '../common/misc'; import { typedKeys } from '../utils'; import * as _apiSpec from './api-spec'; import * as _caCertificate from './ca-certificate'; import * as _clientCertificate from './client-certificate'; import * as _cloudCredential from './cloud-credential'; +import type { CookieJar } from './cookie-jar'; import * as _cookieJar from './cookie-jar'; import * as _environment from './environment'; import * as _gitCredentials from './git-credentials'; @@ -18,6 +23,7 @@ import * as _project from './project'; import * as _protoDirectory from './proto-directory'; import * as _protoFile from './proto-file'; import * as _request from './request'; +import { migrateBody } from './request'; import * as _requestGroup from './request-group'; import * as _requestGroupMeta from './request-group-meta'; import * as _requestMeta from './request-meta'; @@ -25,6 +31,7 @@ import * as _requestVersion from './request-version'; import * as _response from './response'; import * as _runnerTestResult from './runner-test-result'; import * as _settings from './settings'; +import { migrateEnsureHotKeys } from './settings'; import * as _socketIOPayload from './socket-io-payload'; import * as _socketIORequest from './socket-io-request'; import * as _socketIoResponse from './socket-io-response'; @@ -37,6 +44,7 @@ import * as _webSocketPayload from './websocket-payload'; import * as _webSocketRequest from './websocket-request'; import * as _webSocketResponse from './websocket-response'; import * as _workspace from './workspace'; +import { _migrateExtractClientCertificates, _migrateScope } from './workspace'; import * as _workspaceMeta from './workspace-meta'; export interface BaseModel { @@ -202,30 +210,10 @@ export function getModel(type: string) { return all().find(m => m.type === type) || null; } -export function mustGetModel(type: string) { - const model = getModel(type); - - if (!model) { - throw new Error(`The model type ${type} must exist but could not be found.`); - } - - return model; -} - -export function canDuplicate(type: string) { - const model = getModel(type); - return model ? model.canDuplicate : false; -} - export async function initModel(type: string, ...sources: Record[]): Promise { const model = getModel(type); - - if (!model) { - const choices = all() - .map(m => m.type) - .join(', '); - throw new Error(`Tried to init invalid model "${type}". Choices are ${choices}`); - } + invariant(isValidType(type), `Invalid model type ${type}`); + invariant(model, `Model type ${type} not found`); // Define global default fields const objectDefaults = Object.assign( @@ -248,7 +236,7 @@ export async function initModel(type: string, ...sources: R // Migrate the model // NOTE: Do migration before pruning because we might need to look at those fields - const migratedDoc = model.migrate(fullObject); + const migratedDoc = migrationFunction(fullObject); // optional keys do not generated in init method but should allow update. // If we put those keys in init method, all related models will show as modified in git sync. const modelOptionalKeys: string[] = 'optionalKeys' in model ? model.optionalKeys || [] : []; @@ -261,7 +249,49 @@ export async function initModel(type: string, ...sources: R return migratedDoc as T; } +/** Ensure every cookie has an ID property */ +function migrateCookieId(cookieJar: CookieJar) { + for (const cookie of cookieJar.cookies) { + if (!cookie.id) { + cookie.id = v4(); + } + } + + return cookieJar; +} +const migrationFunction = (doc: BaseModel) => { + // Perform any necessary migrations on the document + if (doc.type === cookieJar.type) { + doc = migrateCookieId(doc); + } + if (doc.type === response.type) { + if (doc.bodyCompression === '__NEEDS_MIGRATION__') { + doc.bodyCompression = 'zip'; + } + } + if (doc.type === settings.type) { + doc = migrateEnsureHotKeys(doc); + } + if (doc.type === workspace.type) { + doc = _migrateExtractClientCertificates(doc); + if (typeof doc.name !== 'string') { + doc.name = 'My Workspace'; + } + doc = _migrateScope(doc); + } + if (doc.type === request.type) { + doc = migrateBody(doc); + if (typeof doc.url !== 'string') { + doc.url = ''; + } + const isAuthSet = doc?.authentication && 'username' in doc.authentication && doc.authentication.username; + if (isAuthSet && !doc.authentication.type) { + doc.authentication.type = 'basic'; + } + } + return doc; +}; // Use function instead of object to avoid issues with circular dependencies export const getAllDescendantMap = (): Partial> => { return { diff --git a/packages/insomnia/src/models/mock-route.ts b/packages/insomnia/src/models/mock-route.ts index 3d49a8466fe..4107b61eca5 100644 --- a/packages/insomnia/src/models/mock-route.ts +++ b/packages/insomnia/src/models/mock-route.ts @@ -40,10 +40,6 @@ export function init(): BaseMockRoute { export const isMockRoute = (model: Pick): model is MockRoute => model.type === type; -export function migrate(doc: MockRoute) { - return doc; -} - export function create(patch: Partial = {}) { if (!patch.parentId) { throw new Error('New MockRoute missing `parentId`: ' + JSON.stringify(patch)); diff --git a/packages/insomnia/src/models/mock-server.ts b/packages/insomnia/src/models/mock-server.ts index 5d2c9a5a03c..242d531631e 100644 --- a/packages/insomnia/src/models/mock-server.ts +++ b/packages/insomnia/src/models/mock-server.ts @@ -31,10 +31,6 @@ export function init(): BaseMockServer { export const isMockServer = (model: Pick): model is MockServer => model.type === type; -export function migrate(doc: MockServer) { - return doc; -} - export function create(patch: Partial = {}) { if (!patch.parentId) { throw new Error('New MockServer missing `parentId`: ' + JSON.stringify(patch)); diff --git a/packages/insomnia/src/models/o-auth-2-token.ts b/packages/insomnia/src/models/o-auth-2-token.ts index eed47387d80..e6bb84d2647 100644 --- a/packages/insomnia/src/models/o-auth-2-token.ts +++ b/packages/insomnia/src/models/o-auth-2-token.ts @@ -47,10 +47,6 @@ export function init(): BaseOAuth2Token { }; } -export function migrate(doc: OAuth2Token) { - return doc; -} - export function create(patch: Partial = {}) { if (!patch.parentId) { throw new Error(`New OAuth2Token missing \`parentId\` ${JSON.stringify(patch)}`); diff --git a/packages/insomnia/src/models/plugin-data.ts b/packages/insomnia/src/models/plugin-data.ts index 8b0e18df3f4..cf56f956e85 100644 --- a/packages/insomnia/src/models/plugin-data.ts +++ b/packages/insomnia/src/models/plugin-data.ts @@ -29,10 +29,6 @@ export function init(): BasePluginData { }; } -export function migrate(doc: PluginData) { - return doc; -} - export function create(patch: Partial = {}) { return db.docCreate(type, patch); } diff --git a/packages/insomnia/src/models/project.ts b/packages/insomnia/src/models/project.ts index 336bbd91737..3802ca9f8ce 100644 --- a/packages/insomnia/src/models/project.ts +++ b/packages/insomnia/src/models/project.ts @@ -61,10 +61,6 @@ export function init(): Partial { }; } -export function migrate(project: Project) { - return project; -} - export function createId() { return generateId(prefix); } diff --git a/packages/insomnia/src/models/proto-directory.ts b/packages/insomnia/src/models/proto-directory.ts index 55fe57dec15..cc593ee5803 100644 --- a/packages/insomnia/src/models/proto-directory.ts +++ b/packages/insomnia/src/models/proto-directory.ts @@ -26,10 +26,6 @@ export function init(): BaseProtoDirectory { }; } -export function migrate(doc: ProtoDirectory) { - return doc; -} - export function createId() { return generateId(prefix); } diff --git a/packages/insomnia/src/models/proto-file.ts b/packages/insomnia/src/models/proto-file.ts index 02c4d3ce1ce..39441022726 100644 --- a/packages/insomnia/src/models/proto-file.ts +++ b/packages/insomnia/src/models/proto-file.ts @@ -27,10 +27,6 @@ export function init(): BaseProtoFile { }; } -export function migrate(doc: ProtoFile) { - return doc; -} - export function create(patch: Partial = {}) { if (!patch.parentId) { throw new Error('New ProtoFile missing `parentId`'); diff --git a/packages/insomnia/src/models/request-group-meta.ts b/packages/insomnia/src/models/request-group-meta.ts index 3a28021c226..5f8527fbc88 100644 --- a/packages/insomnia/src/models/request-group-meta.ts +++ b/packages/insomnia/src/models/request-group-meta.ts @@ -26,10 +26,6 @@ export function init() { }; } -export function migrate(doc: RequestGroupMeta) { - return doc; -} - export function create(patch: Partial = {}) { if (!patch.parentId) { throw new Error('New RequestGroupMeta missing `parentId`: ' + JSON.stringify(patch)); diff --git a/packages/insomnia/src/models/request-group.ts b/packages/insomnia/src/models/request-group.ts index 84badde5a98..f655456d483 100644 --- a/packages/insomnia/src/models/request-group.ts +++ b/packages/insomnia/src/models/request-group.ts @@ -46,10 +46,6 @@ export function init(): BaseRequestGroup { }; } -export function migrate(doc: RequestGroup) { - return doc; -} - export function create(patch: Partial = {}) { if (!patch.parentId) { throw new Error('New RequestGroup missing `parentId`: ' + JSON.stringify(patch)); diff --git a/packages/insomnia/src/models/request-meta.ts b/packages/insomnia/src/models/request-meta.ts index 412b0fe6d8f..3ca8c4d2840 100644 --- a/packages/insomnia/src/models/request-meta.ts +++ b/packages/insomnia/src/models/request-meta.ts @@ -42,10 +42,6 @@ export function init() { }; } -export function migrate(doc: RequestMeta) { - return doc; -} - export function create(patch: Partial = {}) { if (!patch.parentId) { throw new Error('New RequestMeta missing `parentId` ' + JSON.stringify(patch)); diff --git a/packages/insomnia/src/models/request-version.ts b/packages/insomnia/src/models/request-version.ts index 4ee276b2419..5dd3e22989e 100644 --- a/packages/insomnia/src/models/request-version.ts +++ b/packages/insomnia/src/models/request-version.ts @@ -44,10 +44,6 @@ export function init() { }; } -export function migrate(doc: RequestVersion) { - return doc; -} - export function getById(id: string) { return db.findOne(type, { _id: id }); } diff --git a/packages/insomnia/src/models/request.ts b/packages/insomnia/src/models/request.ts index e777f1d2d8d..87c940dd85e 100644 --- a/packages/insomnia/src/models/request.ts +++ b/packages/insomnia/src/models/request.ts @@ -288,18 +288,6 @@ export function init(): BaseRequest { }; } -export function migrate(doc: Request): Request { - try { - doc = migrateBody(doc); - doc = migrateWeirdUrls(doc); - doc = migrateAuthType(doc); - return doc; - } catch (e) { - console.log('[db] Error during request migration', e); - throw e; - } -} - export function create(patch: Partial = {}) { if (!patch.parentId) { throw new Error(`New Requests missing \`parentId\`: ${JSON.stringify(patch)}`); @@ -363,15 +351,11 @@ export async function all() { return db.find(type); } -// ~~~~~~~~~~ // -// Migrations // -// ~~~~~~~~~~ // - /** * Migrate old body (string) to new body (object) * @param request */ -function migrateBody(request: Request) { +export function migrateBody(request: Request) { if (request.body && typeof request.body === 'object') { return request; } @@ -403,32 +387,3 @@ function migrateBody(request: Request) { return request; } - -/** - * Fix some weird URLs that were caused by an old bug - * @param request - */ -function migrateWeirdUrls(request: Request) { - // Some people seem to have requests with URLs that don't have the indexOf - // function. This should clear that up. This can be removed at a later date. - if (typeof request.url !== 'string') { - request.url = ''; - } - - return request; -} - -/** - * Ensure the request.authentication.type property is added - * @param request - */ -function migrateAuthType(request: Request) { - const isAuthSet = request?.authentication && 'username' in request.authentication && request.authentication.username; - // @ts-expect-error -- old model - if (isAuthSet && !request.authentication.type) { - // @ts-expect-error -- old model - request.authentication.type = 'basic'; - } - - return request; -} diff --git a/packages/insomnia/src/models/response.ts b/packages/insomnia/src/models/response.ts index 4809f9c94ee..8f63f8ca4d5 100644 --- a/packages/insomnia/src/models/response.ts +++ b/packages/insomnia/src/models/response.ts @@ -89,14 +89,6 @@ export function init(): BaseResponse { }; } -export function migrate(doc: Response) { - try { - return migrateBodyCompression(doc); - } catch (e) { - console.log('[db] Error during response migration', e); - throw e; - } -} export function getById(id: string) { return db.findOne(type, { _id: id }); } @@ -279,11 +271,3 @@ export function getTimeline(response: Response, showBody?: boolean) { return []; } } - -function migrateBodyCompression(doc: Response) { - if (doc.bodyCompression === '__NEEDS_MIGRATION__') { - doc.bodyCompression = 'zip'; - } - - return doc; -} diff --git a/packages/insomnia/src/models/runner-test-result.ts b/packages/insomnia/src/models/runner-test-result.ts index 53030da7057..b11fe23df6e 100644 --- a/packages/insomnia/src/models/runner-test-result.ts +++ b/packages/insomnia/src/models/runner-test-result.ts @@ -53,10 +53,6 @@ export function init() { }; } -export function migrate(doc: RunnerTestResult) { - return doc; -} - export function create(patch: Partial = {}) { if (!patch.parentId) { throw new Error('New RunnerTestResult missing `parentId` ' + JSON.stringify(patch)); diff --git a/packages/insomnia/src/models/settings.ts b/packages/insomnia/src/models/settings.ts index ee2382c8dc6..e9276488d47 100644 --- a/packages/insomnia/src/models/settings.ts +++ b/packages/insomnia/src/models/settings.ts @@ -79,16 +79,6 @@ export function init(): BaseSettings { }; } -export function migrate(doc: Settings) { - try { - doc = migrateEnsureHotKeys(doc); - return doc; - } catch (e) { - console.log('[db] Error during settings migration', e); - throw e; - } -} - export async function all() { let settingsList = await db.find(type); @@ -131,7 +121,7 @@ export async function get() { /** * Ensure map is updated when new hotkeys are added */ -function migrateEnsureHotKeys(settings: Settings): Settings { +export function migrateEnsureHotKeys(settings: Settings): Settings { const defaultHotKeyRegistry = hotkeys.newDefaultRegistry(); // Remove any hotkeys that are no longer in the default registry diff --git a/packages/insomnia/src/models/socket-io-payload.ts b/packages/insomnia/src/models/socket-io-payload.ts index dce617973c5..b3d0cc8b70a 100644 --- a/packages/insomnia/src/models/socket-io-payload.ts +++ b/packages/insomnia/src/models/socket-io-payload.ts @@ -40,8 +40,6 @@ export const init = (): BaseSocketIOPayload => { }; }; -export const migrate = (doc: SocketIOPayload) => doc; - export const create = (patch: Partial = {}) => { if (!patch.parentId) { throw new Error(`New SocketIOPayload missing \`parentId\`: ${JSON.stringify(patch)}`); diff --git a/packages/insomnia/src/models/socket-io-request.ts b/packages/insomnia/src/models/socket-io-request.ts index 503ba3674e3..264e5c03f20 100644 --- a/packages/insomnia/src/models/socket-io-request.ts +++ b/packages/insomnia/src/models/socket-io-request.ts @@ -65,8 +65,6 @@ export const create = (patch: Partial = {}) => { export const getById = (_id: string) => database.findOne(type, { _id }); -export const migrate = (doc: SocketIORequest) => doc; - export const remove = (obj: SocketIORequest) => database.remove(obj); export const update = (obj: SocketIORequest, patch: Partial = {}) => database.docUpdate(obj, patch); diff --git a/packages/insomnia/src/models/socket-io-response.ts b/packages/insomnia/src/models/socket-io-response.ts index e617ffa6c5c..2f719034782 100644 --- a/packages/insomnia/src/models/socket-io-response.ts +++ b/packages/insomnia/src/models/socket-io-response.ts @@ -43,10 +43,6 @@ export function init(): BaseSocketIOResponse { }; } -export function migrate(doc: SocketIOResponse) { - return doc; -} - export function update(doc: SocketIOResponse, patch: Partial) { return db.docUpdate(doc, patch); } diff --git a/packages/insomnia/src/models/stats.ts b/packages/insomnia/src/models/stats.ts index e956ae3ecaf..a11e2d4493d 100644 --- a/packages/insomnia/src/models/stats.ts +++ b/packages/insomnia/src/models/stats.ts @@ -47,10 +47,6 @@ export function init(): BaseStats { }; } -export function migrate(doc: Stats) { - return doc; -} - export function create(patch: Partial = {}) { return db.docCreate(type, patch); } diff --git a/packages/insomnia/src/models/unit-test-result.ts b/packages/insomnia/src/models/unit-test-result.ts index 54ab0423d27..7939d22e143 100644 --- a/packages/insomnia/src/models/unit-test-result.ts +++ b/packages/insomnia/src/models/unit-test-result.ts @@ -27,10 +27,6 @@ export function init() { }; } -export function migrate(doc: UnitTestResult) { - return doc; -} - export function create(patch: Partial = {}) { if (!patch.parentId) { throw new Error('New UnitTestResult missing `parentId` ' + JSON.stringify(patch)); diff --git a/packages/insomnia/src/models/unit-test-suite.ts b/packages/insomnia/src/models/unit-test-suite.ts index e531fbe595a..93a73c2489b 100644 --- a/packages/insomnia/src/models/unit-test-suite.ts +++ b/packages/insomnia/src/models/unit-test-suite.ts @@ -26,10 +26,6 @@ export function init() { }; } -export function migrate(doc: UnitTestSuite) { - return doc; -} - export function create(patch: Partial = {}) { if (!patch.parentId) { throw new Error('New UnitTestSuite missing `parentId` ' + JSON.stringify(patch)); diff --git a/packages/insomnia/src/models/unit-test.ts b/packages/insomnia/src/models/unit-test.ts index 35035ce9e00..f5ce2ef3552 100644 --- a/packages/insomnia/src/models/unit-test.ts +++ b/packages/insomnia/src/models/unit-test.ts @@ -30,10 +30,6 @@ export function init() { }; } -export function migrate(doc: UnitTest) { - return doc; -} - export function create(patch: Partial = {}) { if (!patch.parentId) { throw new Error('New UnitTest missing `parentId` ' + JSON.stringify(patch)); diff --git a/packages/insomnia/src/models/user-session.ts b/packages/insomnia/src/models/user-session.ts index 4575977f2cc..93da5551f65 100644 --- a/packages/insomnia/src/models/user-session.ts +++ b/packages/insomnia/src/models/user-session.ts @@ -41,10 +41,6 @@ export function init(): BaseUserSession { }; } -export function migrate(doc: UserSession) { - return doc; -} - export async function all() { let userList = await db.find(type); diff --git a/packages/insomnia/src/models/websocket-payload.ts b/packages/insomnia/src/models/websocket-payload.ts index 68e46da7fe3..ec9f679b8f1 100644 --- a/packages/insomnia/src/models/websocket-payload.ts +++ b/packages/insomnia/src/models/websocket-payload.ts @@ -29,8 +29,6 @@ export const init = (): BaseWebSocketPayload => ({ mode: 'application/json', }); -export const migrate = (doc: WebSocketPayload) => doc; - export const create = (patch: Partial = {}) => { if (!patch.parentId) { throw new Error(`New WebSocketPayload missing \`parentId\`: ${JSON.stringify(patch)}`); diff --git a/packages/insomnia/src/models/websocket-request.ts b/packages/insomnia/src/models/websocket-request.ts index 36c7a35e7c4..a8d3f69a51a 100644 --- a/packages/insomnia/src/models/websocket-request.ts +++ b/packages/insomnia/src/models/websocket-request.ts @@ -52,8 +52,6 @@ export const init = (): BaseWebSocketRequest => ({ description: '', }); -export const migrate = (doc: WebSocketRequest) => doc; - export const create = (patch: Partial = {}) => { if (!patch.parentId) { throw new Error(`New WebSocketRequest missing \`parentId\`: ${JSON.stringify(patch)}`); diff --git a/packages/insomnia/src/models/websocket-response.ts b/packages/insomnia/src/models/websocket-response.ts index a7584c0470e..7b0e14dd943 100644 --- a/packages/insomnia/src/models/websocket-response.ts +++ b/packages/insomnia/src/models/websocket-response.ts @@ -58,10 +58,6 @@ export function init(): BaseWebSocketResponse { }; } -export function migrate(doc: WebSocketResponse) { - return doc; -} - export function getById(id: string) { return db.findOne(type, { _id: id }); } diff --git a/packages/insomnia/src/models/workspace-meta.ts b/packages/insomnia/src/models/workspace-meta.ts index 38e41f8f458..4e447431529 100644 --- a/packages/insomnia/src/models/workspace-meta.ts +++ b/packages/insomnia/src/models/workspace-meta.ts @@ -41,10 +41,6 @@ export function init(): BaseWorkspaceMeta { }; } -export function migrate(doc: WorkspaceMeta) { - return doc; -} - export function create(patch: Partial = {}) { if (!patch.parentId) { throw new Error(`New WorkspaceMeta missing parentId ${JSON.stringify(patch)}`); diff --git a/packages/insomnia/src/models/workspace.ts b/packages/insomnia/src/models/workspace.ts index eb748fe4c37..3d26276a53a 100644 --- a/packages/insomnia/src/models/workspace.ts +++ b/packages/insomnia/src/models/workspace.ts @@ -47,18 +47,6 @@ export const init = (): BaseWorkspace => ({ scope: WorkspaceScopeKeys.collection, }); -export function migrate(doc: Workspace) { - try { - doc = _migrateExtractClientCertificates(doc); - doc = _migrateEnsureName(doc); - doc = _migrateScope(doc); - return doc; - } catch (e) { - console.log('[db] Error during workspace migration', e); - throw e; - } -} - export function getById(id?: string) { return db.findOne(type, { _id: id }); } @@ -89,7 +77,7 @@ export function remove(workspace: Workspace) { return db.remove(workspace); } -function _migrateExtractClientCertificates(workspace: Workspace) { +export function _migrateExtractClientCertificates(workspace: Workspace) { const certificates = workspace.certificates || null; if (!Array.isArray(certificates)) { @@ -115,19 +103,6 @@ function _migrateExtractClientCertificates(workspace: Workspace) { return workspace; } -/** - * Ensure workspace has a valid String name. Due to real-world bug reports, we know - * this happens (and it causes problems) so this migration will ensure that it is - * corrected. - */ -function _migrateEnsureName(workspace: Workspace) { - if (typeof workspace.name !== 'string') { - workspace.name = 'My Workspace'; - } - - return workspace; -} - // Translate the old value type OldScopeTypes = 'spec' | 'debug' | 'designer' | null; type MigrationWorkspace = Merge; @@ -135,7 +110,7 @@ type MigrationWorkspace = Merge