This is my Service Extension
import { Lifetime } from "awilix"
import { InviteService as MedusaInviteService } from "@medusajs/medusa"
import { Invite } from "../models/invite"
import InviteRepository from "../repositories/invite"
import CustomerRepository from "../repositories/customer"
import { UserRoles } from "@medusajs/medusa"
import { MedusaError } from "medusa-core-utils"
const DEFAULT_VALID_DURATION = 1000 * 60 * 60 * 24 * 7
class InviteService extends MedusaInviteService {
static LIFE_TIME = Lifetime.SCOPED
static CustomerInviteEvents = {
CREATED: "customer_invite.created",
}
protected readonly loggedInUser_: Invite | null
protected readonly inviteRepository_: typeof InviteRepository;
constructor(container, options) {
// @ts-expect-error prefer-rest-params
super(...arguments)
this.inviteRepository_ = container.inviteRepository
try {
this.loggedInUser_ = container.loggedInUser
} catch (e) {
// avoid errors when backend first runs
}
}
async createCustomInvite(
email: string,
validDuration = DEFAULT_VALID_DURATION
): Promise<void> {
}
}
export default InviteService
InviteService is not exported in my local medusa version by default so I added
export { default as InviteService } from "./invite"; to @medusajs/medusa/dist/services/index.ts