chore(framework,medusa): load custom flags before medusa config (#13312)
* chore(framework,medusa): load custom flags before medusa config * test * test runner * changeset * check manager featureFlags * discover and register flags * rm comments * update changeset * changeset * use local cli * execute from local medusa command --------- Co-authored-by: Adrien de Peretti <adrien.deperetti@gmail.com>
This commit is contained in:
committed by
GitHub
parent
2a94dbd243
commit
b4c0f131b7
@@ -1,16 +1,15 @@
|
||||
import { trackFeatureFlag } from "@medusajs/telemetry"
|
||||
import {
|
||||
ContainerRegistrationKeys,
|
||||
discoverFeatureFlagsFromDir,
|
||||
discoverAndRegisterFeatureFlags,
|
||||
FeatureFlag,
|
||||
FlagRouter,
|
||||
registerFeatureFlag,
|
||||
} from "@medusajs/utils"
|
||||
import { asFunction } from "awilix"
|
||||
import { normalize } from "path"
|
||||
import { configManager } from "../config"
|
||||
import { container } from "../container"
|
||||
import { FlagSettings } from "./types"
|
||||
import { logger as defaultLogger } from "../logger"
|
||||
|
||||
container.register(
|
||||
ContainerRegistrationKeys.FEATURE_FLAG_ROUTER,
|
||||
@@ -24,7 +23,11 @@ container.register(
|
||||
export async function featureFlagsLoader(
|
||||
sourcePath?: string
|
||||
): Promise<FlagRouter> {
|
||||
const { featureFlags: projectConfigFlags = {}, logger } = configManager.config
|
||||
const confManager = !!configManager.baseDir
|
||||
? configManager.config
|
||||
: { featureFlags: {}, logger: defaultLogger }
|
||||
|
||||
const { featureFlags: projectConfigFlags = {}, logger } = confManager
|
||||
|
||||
if (!sourcePath) {
|
||||
return FeatureFlag
|
||||
@@ -32,16 +35,13 @@ export async function featureFlagsLoader(
|
||||
|
||||
const flagDir = normalize(sourcePath)
|
||||
|
||||
const discovered = await discoverFeatureFlagsFromDir(flagDir)
|
||||
for (const def of discovered) {
|
||||
registerFeatureFlag({
|
||||
flag: def as FlagSettings,
|
||||
projectConfigFlags,
|
||||
router: FeatureFlag,
|
||||
logger,
|
||||
track: (key) => trackFeatureFlag(key),
|
||||
})
|
||||
}
|
||||
await discoverAndRegisterFeatureFlags({
|
||||
flagDir,
|
||||
projectConfigFlags,
|
||||
router: FeatureFlag,
|
||||
logger,
|
||||
track: (key) => trackFeatureFlag(key),
|
||||
})
|
||||
|
||||
return FeatureFlag
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user