1+ import fs from 'node:fs'
2+ import { resolve } from 'node:path'
13import { defineNuxtModule , addPlugin , createResolver , addComponent , addServerHandler } from '@nuxt/kit'
2- import { resolve } from 'path' ;
3- import { promises as fs } from 'fs' ;
44
55// Module options TypeScript interface definition
6+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
67export interface ModuleOptions {
78 // Component preview is controlled via runtime config, not module options
89}
@@ -21,20 +22,20 @@ export default defineNuxtModule<ModuleOptions>({
2122 // Add the component preview area component
2223 addComponent ( {
2324 name : 'ComponentPreviewArea' ,
24- filePath : resolver . resolve ( './runtime/components/ComponentPreviewArea.vue' )
25+ filePath : resolver . resolve ( './runtime/components/ComponentPreviewArea.vue' ) ,
2526 } )
2627
2728 // Add the client-side plugin for component preview functionality
2829 addPlugin ( {
2930 src : resolver . resolve ( './runtime/plugin.client.ts' ) ,
30- mode : 'client'
31+ mode : 'client' ,
3132 } )
3233
3334 // Add router options for iframe compatibility
3435 nuxt . hook ( 'pages:routerOptions' , ( options ) => {
3536 options . files . push ( {
3637 path : resolver . resolve ( './runtime/router.options.ts' ) ,
37- optional : true
38+ optional : true ,
3839 } )
3940 } )
4041
@@ -57,7 +58,7 @@ export default defineNuxtModule<ModuleOptions>({
5758 if ( ! nuxt . options . dev ) {
5859 try {
5960 const manifestPath = resolve ( nuxt . options . buildDir , 'dist/server/client.manifest.json' )
60- const manifestContent = await fs . readFile ( manifestPath , 'utf-8' )
61+ const manifestContent = await fs . promises . readFile ( manifestPath , 'utf-8' )
6162 const manifest = JSON . parse ( manifestContent )
6263 const entryKey = Object . keys ( manifest ) . find ( key => key . includes ( 'entry' ) )
6364 if ( ! entryKey || ! manifest [ entryKey ] ) {
@@ -66,7 +67,8 @@ export default defineNuxtModule<ModuleOptions>({
6667 }
6768 resolvedEntryPath = `/_nuxt/${ manifest [ entryKey ] . file } `
6869 nitro . options . virtual [ '#nuxt-entry-path' ] = ( ) => `export default '${ resolvedEntryPath } '`
69- } catch ( error ) {
70+ }
71+ catch ( error ) {
7072 console . error ( 'CRITICAL: Failed to resolve Nuxt entry path:' , error )
7173 throw error
7274 }
@@ -76,7 +78,7 @@ export default defineNuxtModule<ModuleOptions>({
7678
7779 addServerHandler ( {
7880 route : '/nuxt-component-preview/entry.js' ,
79- handler : resolver . resolve ( './runtime/server/routes/nuxt-component-preview/entry.js.get.ts' )
81+ handler : resolver . resolve ( './runtime/server/routes/nuxt-component-preview/entry.js.get.ts' ) ,
8082 } )
8183 } ,
8284} )
0 commit comments