feat(pricing, types, utils, medusa-sdk): Pricing Module Setup + Currency (#4860)

What:

- Setups the skeleton for pricing module
- Creates service/model/repository for currency model
- Setups types
- Setups DB
- Moved some utils to a common place

RESOLVES CORE-1477
RESOLVES CORE-1476
This commit is contained in:
Riqwan Thamir
2023-08-29 21:58:34 +00:00
committed by GitHub
parent 470379e631
commit 460161a69f
70 changed files with 3022 additions and 75 deletions
+4 -3
View File
@@ -1,6 +1,7 @@
export * from "./mikro-orm/mikro-orm-create-connection"
export * from "./mikro-orm/mikro-orm-repository"
export * from "./mikro-orm/mikro-orm-soft-deletable-filter"
export * from "./mikro-orm/utils"
export * from "./repositories"
export * from "./repository"
export * from "./utils"
export * from "./mikro-orm/utils"
export * from "./mikro-orm/mikro-orm-create-connection"
export * from "./mikro-orm/mikro-orm-soft-deletable-filter"
@@ -0,0 +1 @@
export * from "./load-custom-repositories"
@@ -0,0 +1,35 @@
import { Constructor, DAL } from "@medusajs/types"
import { asClass } from "awilix"
import { lowerCaseFirst } from "../../common"
/**
* Load the repositories from the custom repositories object. If a repository is not
* present in the custom repositories object, the default repository will be used.
*
* @param customRepositories
* @param container
*/
export function loadCustomRepositories({
defaultRepositories,
customRepositories,
container,
}) {
const customRepositoriesMap = new Map(Object.entries(customRepositories))
Object.entries(defaultRepositories).forEach(([key, defaultRepository]) => {
let finalRepository = customRepositoriesMap.get(key)
if (
!finalRepository ||
!(finalRepository as Constructor<DAL.RepositoryService>).prototype.find
) {
finalRepository = defaultRepository
}
container.register({
[lowerCaseFirst(key)]: asClass(
finalRepository as Constructor<DAL.RepositoryService>
).singleton(),
})
})
}