feature-toggle-package
Version:
A lightweight and flexible feature toggle (feature flag) implementation for JavaScript/TypeScript applications
46 lines (36 loc) • 985 B
TypeScript
export interface FeatureConfig {
[featureName: string]: boolean;
}
export interface SubmoduleConfig {
enabled: boolean;
features?: FeatureConfig;
}
export interface ModuleConfig {
enabled: boolean;
submodules?: {
[submoduleName: string]: SubmoduleConfig;
};
}
export interface AppConfig {
modules: {
[moduleName: string]: ModuleConfig;
};
}
export class ConfigurationError extends Error {
constructor(message: string, cause?: unknown);
}
export class FeatureToggleError extends Error {
constructor(message: string);
}
export class ModuleError extends Error {
constructor(message: string);
}
export class SubmoduleError extends Error {
constructor(message: string);
}
export function getConfig(configPath?: string): Promise<AppConfig>;
export function isFeatureEnabled(
moduleName: string,
submoduleName?: string,
featureName?: string
): Promise<boolean>;