Skip to content

Commit fbea704

Browse files
committed
Fix Vite 6 issue with sometimes prefixed module class names
1 parent e438374 commit fbea704

File tree

1 file changed

+25
-4
lines changed

1 file changed

+25
-4
lines changed

packages/server/src/app/Application.js

+25-4
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,23 @@ export class Application extends Koa {
164164
this.router[method](path, route)
165165
}
166166

167+
fixModuleClassNames(modules) {
168+
// Naming fix for a weird vite 6 bug where the model classes are sometimes
169+
// prefixed with `_`, but only when imported in `vite.config.js`.
170+
if (isPlainObject(modules)) {
171+
for (const [key, module] of Object.entries(modules)) {
172+
if (module?.name?.match(/^_(.*)$/)?.[1] === key) {
173+
Object.defineProperty(module, 'name', {
174+
value: key,
175+
writable: false,
176+
enumerable: false,
177+
configurable: true
178+
})
179+
}
180+
}
181+
}
182+
}
183+
167184
getStorage(name) {
168185
return this.storages[name] || null
169186
}
@@ -190,8 +207,9 @@ export class Application extends Koa {
190207
}
191208

192209
addStorages(storages) {
193-
for (const [name, config] of Object.entries(storages)) {
194-
this.addStorage(config, name)
210+
this.fixModuleClassNames(storages)
211+
for (const [key, config] of Object.entries(storages)) {
212+
this.addStorage(config, key)
195213
}
196214
}
197215

@@ -230,8 +248,9 @@ export class Application extends Koa {
230248
}
231249

232250
addServices(services) {
233-
for (const [name, service] of Object.entries(services)) {
234-
this.addService(service, name)
251+
this.fixModuleClassNames(services)
252+
for (const [key, service] of Object.entries(services)) {
253+
this.addService(service, key)
235254
}
236255
}
237256

@@ -275,6 +294,7 @@ export class Application extends Koa {
275294
}
276295

277296
addModels(models) {
297+
this.fixModuleClassNames(models)
278298
models = Object.values(models)
279299
// First, add all models to the application, so that they can be referenced
280300
// by other models, e.g. in `jsonSchema` and `relationMappings`:
@@ -365,6 +385,7 @@ export class Application extends Koa {
365385
}
366386

367387
addControllers(controllers, namespace) {
388+
this.fixModuleClassNames(controllers)
368389
for (const [key, value] of Object.entries(controllers)) {
369390
if (isModule(value) || isPlainObject(value)) {
370391
this.addControllers(value, namespace ? `${namespace}/${key}` : key)

0 commit comments

Comments
 (0)