diff --git a/.changeset/smooth-pans-drive.md b/.changeset/smooth-pans-drive.md new file mode 100644 index 0000000000..671a77f8d8 --- /dev/null +++ b/.changeset/smooth-pans-drive.md @@ -0,0 +1,5 @@ +--- +"@medusajs/utils": patch +--- + +feat(utils): add error message when manager is not found diff --git a/packages/core/utils/src/modules-sdk/decorators/inject-manager.ts b/packages/core/utils/src/modules-sdk/decorators/inject-manager.ts index ce7b5e410a..ff0de77db7 100644 --- a/packages/core/utils/src/modules-sdk/decorators/inject-manager.ts +++ b/packages/core/utils/src/modules-sdk/decorators/inject-manager.ts @@ -1,4 +1,5 @@ import { Context } from "@medusajs/types" +import { isPresent } from "../../common" import { MedusaContextType } from "./context-parameter" export function InjectManager(managerProperty?: string): MethodDecorator { @@ -40,6 +41,15 @@ export function InjectManager(managerProperty?: string): MethodDecorator { ? this : this[managerProperty] + if ( + !isPresent(resourceWithManager) && + !isPresent(originalContext.manager) + ) { + throw new Error( + `Could not find a manager in the context. Ensure that ${this.managerProperty} is set on your service that points to a repository.` + ) + } + copiedContext.manager = originalContext.manager ?? resourceWithManager.getFreshManager()