@core-sdk/feature-flags-core
v0.6.1
Published
Framework-agnostic, in-memory feature flag evaluation (boolean + payload + context)
Downloads
115
Readme
@core-sdk/feature-flags-core
Framework bağımsız özellik bayrağı değerlendirme motoru. HTTP, veritabanı veya UI bağımlılığı yoktur; saf TypeScript ile bayrak tanımı + bağlam (EvaluationContext) verildiğinde boolean karar üretir. Sunucu (flag-api), özel CLI’lar veya testlerde aynı mantığı paylaşmak için kullanılır.
Ne zaman bu paket?
| Senaryo | Öneri |
| -------------------------------------------------- | ------------------------------------------------------------------- |
| API’de sunucu tarafı “şu bağlamda bayrak açık mı?” | Bu paket veya API’nizin zaten sardığı servis. |
| Tarayıcıdan bayrak çekmek / önbellek | @core-sdk/feature-flags-sdk |
| React uygulamasında hook ile tüketim | @core-sdk/feature-flags-react |
Kavramlar
Bildirimsel bayrak (DeclarativeFlagDefinition)
enabled: Bayrak genel olarak kapalıysa kurallar değerlendirilmez.rules: Koşul (DeclarativeCondition) dizisi.
Koşul ve filtre
- Her koşul:
id, isteğe bağlıactive,filters[]. - Koşullar birbirine VEYA (OR): ilk tam eşleşen aktif koşul bayrağı açar.
- Aynı koşul içindeki filtreler VE (AND) ile birleşir; boş
filterseşleşmez. - Filtre (
DeclarativeFilter):field,operator,value, isteğe bağlıid.
Operatörler
RULE_OPERATORS ve tip RuleOperator dışa aktarılır (eq, neq, contains, notContains, in, notIn, gt, lt, …). Özel operatör ihtiyacı çekirdek güncellemesi gerektirir.
Geriye dönük JSON
normalizeDeclarativeRules: depoda kalan düz { id, field, operator, value, active } satırlarını tek filtrelı koşula çevirir; API ve istemci aynı normalleştirilmiş şekli kullanabilir.
Ana API (dışa aktarımlar)
| Export | Rol |
| --------------------------- | ----------------------------------------------------------------------------- |
| evaluateFlag | Bayrak tanımı + bağlam → sonuç (EvaluateFlagResult). |
| evaluateFilter | Tek filtre satırı (düşük seviye); evaluateRuleCondition ile uyumlu eski ad. |
| normalizeDeclarativeRules | Ham kural listesini koşul modeline dönüştürür. |
| normalizeInValues | in / notIn değer normalizasyonu. |
| RULE_OPERATORS | Desteklenen operatör sabitleri. |
| Tipler | DeclarativeFlagDefinition, DeclarativeCondition, EvaluationContext, … |
| FlagNotFoundError | İsteğe bağlı hata sınıfı. |
evaluateFlagsonucundaki eşleşen koşul alanı eski admatchedRuleyerinematchedConditionolarak adlandırılmıştır.
Kurulum
npm install @core-sdk/feature-flags-coreÖrnek
import {
evaluateFlag,
type DeclarativeFlagDefinition,
type EvaluationContext,
} from "@core-sdk/feature-flags-core";
const flag: DeclarativeFlagDefinition = {
enabled: true,
rules: [
{
id: "staff",
active: true,
filters: [{ field: "userId", operator: "eq", value: "admin-1" }],
},
],
};
const ctx: EvaluationContext = { userId: "admin-1" };
const result = evaluateFlag(flag, ctx);
// result → eşleşen koşul / etkinlik bilgisiGeliştirme (monorepo içi)
npm run build -w @core-sdk/feature-flags-core
npm run test -w @core-sdk/feature-flags-corePaket ESM ve CJS çıktıları üretir; package.json exports alanına bakın.
Lisans
Kuruluşunuzun lisans kuralları geçerlidir.
