Files
medusa-store/packages/modules/region/src/loaders/defaults.ts
2024-09-26 11:14:35 +05:30

37 lines
1.1 KiB
TypeScript

import {
LoaderOptions,
Logger,
ModulesSdkTypes,
} from "@medusajs/framework/types"
import {
ContainerRegistrationKeys,
DefaultsUtils,
} from "@medusajs/framework/utils"
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 Country
> = container.resolve("countryService")
try {
const normalizedCountries = DefaultsUtils.defaultCountries.map((c) => ({
iso_2: c.alpha2.toLowerCase(),
iso_3: c.alpha3.toLowerCase(),
num_code: c.numeric,
name: c.name.toUpperCase(),
display_name: c.name,
}))
const resp = await countryService_.upsert(normalizedCountries)
logger.debug(`Loaded ${resp.length} countries`)
} catch (error) {
logger.warn(
`Failed to load countries, skipping loader. Original error: ${error.message}`
)
}
}