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
@@ -0,0 +1,43 @@
|
||||
import { FlagSettings, Logger } from "@medusajs/types"
|
||||
import { discoverFeatureFlagsFromDir } from "./discover-feature-flags"
|
||||
import { FlagRouter } from "./flag-router"
|
||||
import { registerFeatureFlag } from "./register-flag"
|
||||
|
||||
export interface DiscoverAndRegisterOptions {
|
||||
flagDir: string
|
||||
projectConfigFlags?: Record<string, any>
|
||||
router: FlagRouter
|
||||
logger?: Logger
|
||||
track?: (key: string) => void
|
||||
maxDepth?: number
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility function to discover and register feature flags from a directory
|
||||
*/
|
||||
export async function discoverAndRegisterFeatureFlags(
|
||||
options: DiscoverAndRegisterOptions
|
||||
): Promise<void> {
|
||||
const {
|
||||
flagDir,
|
||||
projectConfigFlags = {},
|
||||
router,
|
||||
logger,
|
||||
track,
|
||||
maxDepth,
|
||||
} = options
|
||||
|
||||
const discovered = await discoverFeatureFlagsFromDir(flagDir, maxDepth)
|
||||
|
||||
for (const def of discovered) {
|
||||
const registerOptions: Parameters<typeof registerFeatureFlag>[0] = {
|
||||
flag: def as FlagSettings,
|
||||
projectConfigFlags,
|
||||
router,
|
||||
logger,
|
||||
track,
|
||||
}
|
||||
|
||||
registerFeatureFlag(registerOptions)
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
export * from "./discover-feature-flags"
|
||||
export * from "./discover-and-register-feature-flags"
|
||||
export * from "./flag-router"
|
||||
export * from "./register-flag"
|
||||
|
||||
Reference in New Issue
Block a user