@@ -5,13 +5,19 @@ import { join } from 'pathe'
5
5
import dedent from 'dedent'
6
6
import { getModuleId , transformServerFiles } from './runtime/transformer'
7
7
8
- export default defineNuxtModule ( {
8
+ export interface ModuleOptions {
9
+ extension ?: string
10
+ }
11
+
12
+ export default defineNuxtModule < ModuleOptions > ( {
9
13
meta : {
10
14
name : 'nuxt-remote-fn' ,
11
15
configKey : 'remoteFn'
12
16
} ,
13
- async setup ( _ , nuxt ) {
14
- const extGlob = '**/*.server.{ts,js,mjs}'
17
+ defaults : {
18
+ extension : 'server'
19
+ } ,
20
+ async setup ( options , nuxt ) {
15
21
const files : string [ ] = [ ]
16
22
17
23
// Transpile runtime and handler
@@ -21,7 +27,7 @@ export default defineNuxtModule({
21
27
22
28
nuxt . hook ( 'builder:watch' , async ( e , path ) => {
23
29
if ( e === 'change' ) { return }
24
- if ( path . includes ( '.server.' ) ) {
30
+ if ( path . includes ( `. ${ options . extension } .` ) ) {
25
31
await scanRemoteFunctions ( )
26
32
await nuxt . callHook ( 'builder:generateApp' )
27
33
}
@@ -32,7 +38,7 @@ export default defineNuxtModule({
32
38
handler : handlerPath
33
39
} )
34
40
35
- addVitePlugin ( transformServerFiles ( ) )
41
+ addVitePlugin ( transformServerFiles ( { extension : options . extension ! } ) )
36
42
37
43
addImports ( {
38
44
name : 'callRemoteFunction' ,
@@ -62,7 +68,7 @@ export default defineNuxtModule({
62
68
63
69
async function scanRemoteFunctions ( ) {
64
70
files . length = 0
65
- const updatedFiles = await fg ( extGlob , {
71
+ const updatedFiles = await fg ( `**/*. ${ options . extension } .{ts,js,mjs}` , {
66
72
cwd : nuxt . options . srcDir ,
67
73
absolute : true ,
68
74
onlyFiles : true ,
0 commit comments