myfflags-sdk
Version:
SDK cliente para o SaaS de My F* Flags
73 lines • 1.84 kB
TypeScript
export interface TargetingRule {
attribute: string;
operator: 'equals' | 'not_equals' | 'contains' | 'not_contains' | 'greater_than' | 'less_than';
value: string;
}
export interface FeatureFlag {
id: string;
name: string;
description: string;
enabled: boolean;
environments: {
dev: boolean;
staging: boolean;
production: boolean;
};
rolloutPercentage: number;
targetingRules: TargetingRule[];
createdAt: string;
updatedAt: string;
userId: string;
}
export interface UserContext {
userId: string;
email?: string;
plan?: string;
country?: string;
[key: string]: any;
}
export interface SDKConfig {
apiUrl: string;
apiKey?: string;
environment?: 'dev' | 'staging' | 'production';
cacheTimeout?: number;
}
/**
* MFFS (My F* Flags) SDK Class
* Classe principal para interagir com o sistema de flags
*/
export declare class MFFS {
private config;
private cache;
constructor(config: SDKConfig);
/**
* Verifica se uma feature flag está habilitada para um usuário
*/
isFeatureEnabled(flagName: string, userContext: UserContext): Promise<boolean>;
/**
* Busca todas as flags habilitadas para um usuário
*/
getEnabledFeatures(userContext: UserContext): Promise<string[]>;
/**
* Busca flags do servidor (com cache)
*/
private getFlags;
/**
* Avalia regras de targeting
*/
private evaluateTargetingRules;
/**
* Avalia rollout percentual usando hash determinístico
*/
private evaluateRolloutPercentage;
/**
* Limpa o cache
*/
clearCache(): void;
/**
* Atualiza a configuração
*/
updateConfig(newConfig: Partial<SDKConfig>): void;
}
export default MFFS;
//# sourceMappingURL=index.d.ts.map