feat: define link util (#7931)

* feat: define link util

* handle pluralized fieldAlias for isList

* serviceName ar reference

* finalize

* todo

* WIP

* finalize

* fix tests

* update typings

* fix Module

* linkable

* update errors
This commit is contained in:
Adrien de Peretti
2024-07-04 10:37:30 +02:00
committed by GitHub
parent 9b1688944e
commit 41c4307fc7
26 changed files with 523 additions and 341 deletions

View File

@@ -1,9 +1,8 @@
import { ModuleExports } from "@medusajs/types"
import { RegionModuleService } from "./services"
import loadDefaults from "./loaders/defaults"
import { Module, Modules } from "@medusajs/utils"
const moduleDefinition: ModuleExports = {
export default Module(Modules.REGION, {
service: RegionModuleService,
loaders: [loadDefaults],
}
export default moduleDefinition
})

View File

@@ -1,13 +1,13 @@
import { LoaderOptions, Logger, ModulesSdkTypes } from "@medusajs/types"
import { ContainerRegistrationKeys, DefaultsUtils } from "@medusajs/utils"
import { RegionCountry } from "@models"
import { Country } from "@models"
export default async ({ container }: LoaderOptions): Promise<void> => {
// TODO: Add default logger to the container when running tests
const logger =
container.resolve<Logger>(ContainerRegistrationKeys.LOGGER) ?? console
const countryService_: ModulesSdkTypes.IMedusaInternalService<
typeof RegionCountry
typeof Country
> = container.resolve("countryService")
try {

View File

@@ -1,7 +1,7 @@
import { model } from "@medusajs/utils"
import Region from "./region"
const Country = model
export default model
.define(
{ name: "Country", tableName: "region_country" },
{
@@ -24,5 +24,3 @@ const Country = model
unique: true,
},
])
export default Country

View File

@@ -1,3 +1,2 @@
export { default as RegionCountry } from "./country"
export { default as Country } from "./country"
export { default as Region } from "./region"

View File

@@ -1,7 +1,7 @@
import { model } from "@medusajs/utils"
import RegionCountry from "./country"
const Region = model.define("region", {
export default model.define("region", {
id: model.id({ prefix: "reg" }).primaryKey(),
name: model.text().searchable(),
currency_code: model.text().searchable(),
@@ -9,5 +9,3 @@ const Region = model.define("region", {
countries: model.hasMany(() => RegionCountry),
metadata: model.json().nullable(),
})
export default Region

View File

@@ -26,7 +26,7 @@ import {
promiseAll,
removeUndefined,
} from "@medusajs/utils"
import { Region, RegionCountry as Country } from "@models"
import { Country, Region } from "@models"
import { UpdateRegionInput } from "@types"
import { joinerConfig } from "../joiner-config"
@@ -40,9 +40,11 @@ export default class RegionModuleService
extends MedusaService<{
Region: {
dto: RegionDTO
model: typeof Region
}
Country: {
dto: RegionCountryDTO
model: typeof Country
}
}>({ Region, Country })
implements IRegionModuleService