diff --git a/packages/mongodb-ts-autocomplete/scripts/extract-types.ts b/packages/mongodb-ts-autocomplete/scripts/extract-types.ts index 2358e0fb..de992594 100644 --- a/packages/mongodb-ts-autocomplete/scripts/extract-types.ts +++ b/packages/mongodb-ts-autocomplete/scripts/extract-types.ts @@ -1,13 +1,7 @@ /* eslint-disable no-console */ import { promises as fs } from 'fs'; import path from 'path'; -import { api as ShellApiText } from '@mongosh/shell-api/api'; - -function replaceImports(code: string) { - // This just makes it possible to work on mql.ts because then the - // IDE finds the import. - return code.replace(/'bson'/g, "'/bson.ts'"); -} +import { replaceImports } from '../src/utils'; async function loadSources(sources: Record) { const result: Record = {}; @@ -25,7 +19,6 @@ async function run() { '/mql.ts': path.join(__dirname, '..', 'src', 'fixtures', 'mql.ts'), }; const files = await loadSources(input); - files['/shell-api.ts'] = replaceImports(ShellApiText); const code = ` const files = ${JSON.stringify(files)}; export default files; @@ -38,6 +31,7 @@ export default files; 'fixtures', 'autocomplete-types.ts', ); + console.log(filepath); await fs.writeFile(filepath, code, 'utf-8'); } diff --git a/packages/mongodb-ts-autocomplete/src/autocompleter.ts b/packages/mongodb-ts-autocomplete/src/autocompleter.ts index 9f968b74..3eeec046 100644 --- a/packages/mongodb-ts-autocomplete/src/autocompleter.ts +++ b/packages/mongodb-ts-autocomplete/src/autocompleter.ts @@ -1,6 +1,8 @@ import Autocompleter from '@mongodb-js/ts-autocomplete'; import type { AutoCompletion } from '@mongodb-js/ts-autocomplete'; import autocompleteTypes from './fixtures/autocomplete-types'; +import { api as ShellApiText } from '@mongosh/shell-api/api'; +import { replaceImports } from './utils'; import type { JSONSchema } from 'mongodb-schema'; import { toTypescriptTypeDefinition } from 'mongodb-schema'; @@ -159,7 +161,10 @@ export class MongoDBAutocompleter { this.connectionSchemas = Object.create(null); - this.autocompleter.updateCode(autocompleteTypes); + this.autocompleter.updateCode({ + ...autocompleteTypes, + '/shell-api.ts': replaceImports(ShellApiText), + }); } addConnection(connectionId: string): ConnectionSchema { diff --git a/packages/mongodb-ts-autocomplete/src/utils.ts b/packages/mongodb-ts-autocomplete/src/utils.ts new file mode 100644 index 00000000..27eca374 --- /dev/null +++ b/packages/mongodb-ts-autocomplete/src/utils.ts @@ -0,0 +1,5 @@ +export function replaceImports(code: string) { + // This just makes it possible to work on mql.ts because then the + // IDE finds the import. + return code.replace(/'bson'/g, "'/bson.ts'"); +}