fix: improve error message on incorrect service export (#6240)

**What**
- Provide a more helpful error message if a user adds a file in `src/services` that doesn't export a service class.

**Why**
If you forget to `export default MyClass` in a custom service you can end up with this error:
![CleanShot 2024-01-27 at 6  24 19](https://github.com/medusajs/medusa/assets/7554214/d3700487-33e0-4629-b2c4-a2a37cb86b3e)

It's almost impossible to know how to recover from this which can be an issue for new users. The new error message informs the user that there is a missing class export and shows which file the error is related to.
This commit is contained in:
Sebastian Rindom
2024-01-28 00:28:11 +01:00
committed by GitHub
parent 8c6cc82c5d
commit 360c71e39a
2 changed files with 11 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
---
"@medusajs/medusa": patch
---
fix(medusa): improve error message on incorrect service export
+6
View File
@@ -469,6 +469,12 @@ export async function registerServices(
const loaded = require(fn).default
const name = formatRegistrationName(fn)
if (typeof loaded !== "function") {
throw new Error(
`Cannot register ${name}. Make sure to default export a service class in ${fn}`
)
}
const context = { container, pluginDetails, registrationName: name }
registerPaymentProcessorFromClass(loaded, context)