* chore(): Move peer deps into a single package and re export from framework * WIP * update core packages * update cli and deps * update medusa * update exports path * remove analyze * update modules deps * finalise changes * fix yarn * fix import * Refactor peer dependencies into a single package Consolidate peer dependencies into one package and re-export from the framework. * update changeset * Update .changeset/brown-cows-sleep.md Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com> * rm deps * fix deps * increase timeout * upgrade version * update versions * update versions * fixes * update lock * fix missing import * fix missing import --------- Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
import { moduleProviderLoader } from "@medusajs/framework/modules-sdk"
|
|
import {
|
|
LoaderOptions,
|
|
ModuleProvider,
|
|
ModulesSdkTypes,
|
|
} from "@medusajs/framework/types"
|
|
import { asFunction, asValue, Lifetime } from "@medusajs/framework/awilix"
|
|
import ProviderService, {
|
|
AnalyticsProviderIdentifierRegistrationName,
|
|
AnalyticsProviderRegistrationPrefix,
|
|
} from "../services/provider-service"
|
|
|
|
const registrationFn = async (klass, container, pluginOptions) => {
|
|
const key = ProviderService.getRegistrationIdentifier(klass, pluginOptions.id)
|
|
|
|
container.register({
|
|
[AnalyticsProviderRegistrationPrefix + key]: asFunction(
|
|
(cradle) => new klass(cradle, pluginOptions.options ?? {}),
|
|
{
|
|
lifetime: klass.LIFE_TIME || Lifetime.SINGLETON,
|
|
}
|
|
),
|
|
})
|
|
|
|
container.registerAdd(
|
|
AnalyticsProviderIdentifierRegistrationName,
|
|
asValue(key)
|
|
)
|
|
}
|
|
|
|
export default async ({
|
|
container,
|
|
options,
|
|
}: LoaderOptions<
|
|
(
|
|
| ModulesSdkTypes.ModuleServiceInitializeOptions
|
|
| ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions
|
|
) & { providers: ModuleProvider[] }
|
|
>): Promise<void> => {
|
|
await moduleProviderLoader({
|
|
container,
|
|
providers: options?.providers || [],
|
|
registerServiceFn: registrationFn,
|
|
})
|
|
}
|