11import { existsSync } from 'node:fs'
22import { addComponentsDir , addImportsDir , addPlugin , addServerHandler , addServerImports , createResolver , defineNuxtModule } from '@nuxt/kit'
3+ import type { ViteDevServer } from 'vite'
34import { createConsola } from 'consola'
45import { join } from 'pathe'
56import chalk from 'chalk'
@@ -224,14 +225,16 @@ export default defineNuxtModule<ModuleOptions>({
224225
225226 if ( canPrompt && options . devtools ) {
226227 let uiUrl : any | undefined
227- try {
228- uiUrl = await execa . execa ( `edgedb` , [ 'ui' , '--print-url' ] )
229- }
230- catch ( e ) {
231- //
228+ if ( ! process . env . NUXT_EDGEDB_UI_URL && options . injectDbCredentials ) {
229+ try {
230+ uiUrl = await execa . execa ( `edgedb` , [ 'ui' , '--print-url' ] )
231+ }
232+ catch ( e ) {
233+ //
234+ }
232235 }
233236
234- if ( uiUrl ?. stdout ) {
237+ if ( process . env ?. NUXT_EDGEDB_UI_URL || uiUrl ?. stdout ) {
235238 nuxt . hook ( 'devtools:customTabs' , ( tabs ) => {
236239 tabs . push ( {
237240 // unique identifier
@@ -244,7 +247,7 @@ export default defineNuxtModule<ModuleOptions>({
244247 // iframe view
245248 view : {
246249 type : 'iframe' ,
247- src : uiUrl . stdout ,
250+ src : process . env ?. NUXT_EDGEDB_UI_URL || uiUrl . stdout ,
248251 persistent : true ,
249252 } ,
250253 } )
@@ -390,12 +393,23 @@ export default defineNuxtModule<ModuleOptions>({
390393 } )
391394 }
392395
396+ const queriesPath = join ( dbschemaDir , '/queries.ts' )
397+ const interfacesPath = join ( dbschemaDir , '/interfaces.ts' )
398+ const builderPath = join ( dbschemaDir , '/query-builder/index.ts' )
399+
400+ const hasQueries = existsSync ( queriesPath )
401+ const hasInterfaces = existsSync ( interfacesPath )
402+ const hasQueryBuilder = existsSync ( queryBuilderDir )
403+
393404 // Inject aliases
394405 const nuxtOptions = nuxt . options
395406 nuxtOptions . alias = nuxtOptions . alias ?? { }
396- nuxtOptions . alias [ '#edgedb/queries' ] = join ( dbschemaDir , '/queries.ts' )
397- nuxtOptions . alias [ '#edgedb/interfaces' ] = join ( dbschemaDir , '/interfaces.ts' )
398- nuxtOptions . alias [ '#edgedb/builder' ] = join ( dbschemaDir , '/query-builder/index.ts' )
407+ if ( hasQueries )
408+ nuxtOptions . alias [ '#edgedb/queries' ] = queriesPath
409+ if ( hasInterfaces )
410+ nuxtOptions . alias [ '#edgedb/interfaces' ] = interfacesPath
411+ if ( hasQueryBuilder )
412+ nuxtOptions . alias [ '#edgedb/builder' ] = builderPath
399413
400414 if ( ! nuxt . options . _prepare ) {
401415 await generateInterfaces ( )
@@ -437,21 +451,34 @@ export default defineNuxtModule<ModuleOptions>({
437451 config . externals . inline ??= [ ]
438452 config . externals . inline . push ( resolveLocal ( './runtime/server' ) )
439453
454+ // Fixes for weird cjs query builder imports
455+ if ( hasQueryBuilder ) {
456+ config . replace ??= { }
457+ config . replace [ 'edgedb/dist/primitives/buffer' ] = 'edgedb/dist/primitives/buffer.js'
458+ config . replace [ 'edgedb/dist/reflection/index' ] = 'edgedb/dist/reflection/index.js'
459+ }
460+
440461 // Push server aliases
441462 config . alias ??= { }
442463 config . alias [ '#edgedb/server' ] = resolveLocal ( './runtime/server/index' )
443- config . alias [ '#edgedb/queries' ] = join ( dbschemaDir , '/queries.ts' )
444- config . alias [ '#edgedb/interfaces' ] = join ( dbschemaDir , '/interfaces.ts' )
445- config . alias [ '#edgedb/builder' ] = join ( dbschemaDir , '/query-builder/index.ts' )
464+ if ( hasQueries )
465+ config . alias [ '#edgedb/queries' ] = join ( dbschemaDir , '/queries.ts' )
466+ if ( hasInterfaces )
467+ config . alias [ '#edgedb/interfaces' ] = join ( dbschemaDir , '/interfaces.ts' )
468+ if ( hasQueryBuilder )
469+ config . alias [ '#edgedb/builder' ] = join ( dbschemaDir , '/query-builder/index.ts' )
446470
447471 // Enforce paths on typescript config
448472 config . typescript ??= { }
449473 config . typescript . tsConfig ??= { }
450474 config . typescript . tsConfig . compilerOptions ??= { }
451475 config . typescript . tsConfig . compilerOptions . paths ??= { }
452- config . typescript . tsConfig . compilerOptions . paths [ '#edgedb/queries' ] = [ `${ join ( dbschemaDir , '/queries.ts' ) } ` ]
453- config . typescript . tsConfig . compilerOptions . paths [ '#edgedb/interfaces' ] = [ `${ join ( dbschemaDir , '/interfaces.ts' ) } ` ]
454- config . typescript . tsConfig . compilerOptions . paths [ '#edgedb/builder' ] = [ `${ join ( dbschemaDir , '/query-builder/index.ts' ) } ` ]
476+ if ( hasQueries )
477+ config . typescript . tsConfig . compilerOptions . paths [ '#edgedb/queries' ] = [ `${ join ( dbschemaDir , '/queries.ts' ) } ` ]
478+ if ( hasInterfaces )
479+ config . typescript . tsConfig . compilerOptions . paths [ '#edgedb/interfaces' ] = [ `${ join ( dbschemaDir , '/interfaces.ts' ) } ` ]
480+ if ( hasQueryBuilder )
481+ config . typescript . tsConfig . compilerOptions . paths [ '#edgedb/builder' ] = [ `${ join ( dbschemaDir , '/query-builder/index.ts' ) } ` ]
455482 } ,
456483 )
457484 }
0 commit comments