feat(medusa): Improve exported medusa API (#1335)

* feat(medusa): Improve exported medusa API
Avoid to always have to import from @medusajs/medusa/dist/*

* feat(medusa): The Model loaders should ignore the index file

* fix(medusa): swap model typo
This commit is contained in:
Adrien de Peretti
2022-04-14 16:01:10 +02:00
committed by GitHub
parent d3104bf6ac
commit 6830a12b46
4 changed files with 88 additions and 92 deletions

View File

@@ -1,76 +1,5 @@
// API payloads
export * from "./api"
// Interfaces
export * from "./interfaces"
// Types
export * from "./types/price-list"
// Models
export * from "./models/shipping-tax-rate"
export * from "./models/product-tax-rate"
export * from "./models/product-type-tax-rate"
export * from "./models/tax-rate"
export * from "./models/shipping-method-tax-line"
export * from "./models/line-item-tax-line"
export * from "./models/line-item-adjustment"
export * from "./models/address"
export * from "./models/cart"
export * from "./models/claim-image"
export * from "./models/claim-item"
export * from "./models/claim-order"
export * from "./models/claim-tag"
export * from "./models/country"
export * from "./models/currency"
export * from "./models/custom-shipping-option"
export * from "./models/customer"
export * from "./models/customer-group"
export * from "./models/discount"
export * from "./models/discount-condition-customer-group"
export * from "./models/discount-condition-product-collection"
export * from "./models/discount-condition-product-tag"
export * from "./models/discount-condition-product-type"
export * from "./models/discount-condition-product"
export * from "./models/discount-condition"
export * from "./models/discount-rule"
export * from "./models/draft-order"
export * from "./models/fulfillment"
export * from "./models/fulfillment-item"
export * from "./models/fulfillment-provider"
export * from "./models/gift-card"
export * from "./models/gift-card-transaction"
export * from "./models/idempotency-key"
export * from "./models/image"
export * from "./models/invite"
export * from "./models/line-item"
export * from "./models/money-amount"
export * from "./models/note"
export * from "./models/notification"
export * from "./models/oauth"
export * from "./models/order"
export * from "./models/payment"
export * from "./models/payment-provider"
export * from "./models/payment-session"
export * from "./models/price-list"
export * from "./models/product"
export * from "./models/product-collection"
export * from "./models/product-option"
export * from "./models/product-option-value"
export * from "./models/product-tag"
export * from "./models/product-type"
export * from "./models/product-variant"
export * from "./models/refund"
export * from "./models/region"
export * from "./models/return"
export * from "./models/return-item"
export * from "./models/return-reason"
export * from "./models/shipping-method"
export * from "./models/shipping-option"
export * from "./models/shipping-option-requirement"
export * from "./models/shipping-profile"
export * from "./models/staged-job"
export * from "./models/store"
export * from "./models/swap"
export * from "./models/user"
export * from "./models/tax-provider"
export * from './models'
export * from './services'

View File

@@ -14,24 +14,25 @@ export default ({ container }: { container: MedusaContainer }, config = { regist
const models: (ClassConstructor<unknown> | EntitySchema)[] = []
const core = glob.sync(coreFull, { cwd: __dirname })
const core = glob.sync(coreFull, { cwd: __dirname, ignore: ["index.js", "index.ts"] })
core.forEach((fn) => {
const loaded = require(fn) as ClassConstructor<unknown> | EntitySchema
if (loaded) {
Object.entries(loaded).map(([, val]: [string, ClassConstructor<unknown> | EntitySchema]) => {
if (typeof val === "function" || val instanceof EntitySchema) {
if (config.register) {
const name = formatRegistrationName(fn)
container.register({
[name]: asClass(val as ClassConstructor<unknown>),
})
Object.entries(loaded).map(([key, val]: [string, ClassConstructor<unknown> | EntitySchema]) => {
if (typeof val === "function" || val instanceof EntitySchema) {
if (config.register) {
const name = formatRegistrationName(fn)
container.register({
[name]: asClass(val as ClassConstructor<unknown>),
})
container.registerAdd("db_entities", asValue(val))
}
container.registerAdd("db_entities", asValue(val))
models.push(val)
}
models.push(val)
}
})
})
}
})
return models

View File

@@ -0,0 +1,66 @@
export * from "./shipping-tax-rate"
export * from "./product-tax-rate"
export * from "./product-type-tax-rate"
export * from "./tax-rate"
export * from "./shipping-method-tax-line"
export * from "./line-item-tax-line"
export * from "./line-item-adjustment"
export * from "./address"
export * from "./cart"
export * from "./claim-image"
export * from "./claim-item"
export * from "./claim-order"
export * from "./claim-tag"
export * from "./country"
export * from "./currency"
export * from "./custom-shipping-option"
export * from "./customer"
export * from "./customer-group"
export * from "./discount"
export * from "./discount-condition-customer-group"
export * from "./discount-condition-product-collection"
export * from "./discount-condition-product-tag"
export * from "./discount-condition-product-type"
export * from "./discount-condition-product"
export * from "./discount-condition"
export * from "./discount-rule"
export * from "./draft-order"
export * from "./fulfillment"
export * from "./fulfillment-item"
export * from "./fulfillment-provider"
export * from "./gift-card"
export * from "./gift-card-transaction"
export * from "./idempotency-key"
export * from "./image"
export * from "./invite"
export * from "./line-item"
export * from "./money-amount"
export * from "./note"
export * from "./notification"
export * from "./oauth"
export * from "./order"
export * from "./payment"
export * from "./payment-provider"
export * from "./payment-session"
export * from "./price-list"
export * from "./product"
export * from "./product-collection"
export * from "./product-option"
export * from "./product-option-value"
export * from "./product-tag"
export * from "./product-type"
export * from "./product-variant"
export * from "./refund"
export * from "./region"
export * from "./return"
export * from "./return-item"
export * from "./return-reason"
export * from "./shipping-method"
export * from "./shipping-option"
export * from "./shipping-option-requirement"
export * from "./shipping-profile"
export * from "./staged-job"
export * from "./store"
export * from "./swap"
export * from "./user"
export * from "./tax-provider"

View File

@@ -26,7 +26,7 @@ import { Cart } from "./cart"
import { Payment } from "./payment"
import { ShippingMethod } from "./shipping-method"
export enum FulfillmentStatus {
export enum SwapFulfillmentStatus {
NOT_FULFILLED = "not_fulfilled",
FULFILLED = "fulfilled",
SHIPPED = "shipped",
@@ -34,7 +34,7 @@ export enum FulfillmentStatus {
REQUIRES_ACTION = "requires_action",
}
export enum PaymentStatus {
export enum SwapPaymentStatus {
NOT_PAID = "not_paid",
AWAITING = "awaiting",
CAPTURED = "captured",
@@ -51,11 +51,11 @@ export class Swap {
@PrimaryColumn()
id: string
@DbAwareColumn({ type: "enum", enum: FulfillmentStatus })
fulfillment_status: FulfillmentStatus
@DbAwareColumn({ type: "enum", enum: SwapFulfillmentStatus })
fulfillment_status: SwapFulfillmentStatus
@DbAwareColumn({ type: "enum", enum: PaymentStatus })
payment_status: PaymentStatus
@DbAwareColumn({ type: "enum", enum: SwapPaymentStatus })
payment_status: SwapPaymentStatus
@Index()
@Column({ type: "string" })