@nestarc/feature-flag
Classes
FeatureFlagAdminModule
Defined in: src/admin/feature-flag-admin.module.ts:6
Constructors
Constructor
new FeatureFlagAdminModule(): FeatureFlagAdminModule;Returns
Methods
register()
static register(options): DynamicModule;Defined in: src/admin/feature-flag-admin.module.ts:7
Parameters
| Parameter | Type |
|---|---|
options | FeatureFlagAdminOptions |
Returns
DynamicModule
FeatureFlagGuard
Defined in: src/guards/feature-flag.guard.ts:12
Implements
CanActivate
Constructors
Constructor
new FeatureFlagGuard(reflector, featureFlagService): FeatureFlagGuard;Defined in: src/guards/feature-flag.guard.ts:13
Parameters
| Parameter | Type |
|---|---|
reflector | Reflector |
featureFlagService | FeatureFlagService |
Returns
Methods
canActivate()
canActivate(context): Promise<boolean>;Defined in: src/guards/feature-flag.guard.ts:18
Parameters
| Parameter | Type | Description |
|---|---|---|
context | ExecutionContext | Current execution context. Provides access to details about the current request pipeline. |
Returns
Promise<boolean>
Value indicating whether or not the current request is allowed to proceed.
Implementation of
CanActivate.canActivateFeatureFlagModule
Defined in: src/feature-flag.module.ts:54
Implements
NestModule
Constructors
Constructor
new FeatureFlagModule(): FeatureFlagModule;Returns
Methods
configure()
configure(consumer): void;Defined in: src/feature-flag.module.ts:55
Parameters
| Parameter | Type |
|---|---|
consumer | MiddlewareConsumer |
Returns
void
Implementation of
NestModule.configureforRoot()
static forRoot(options): DynamicModule;Defined in: src/feature-flag.module.ts:61
Parameters
| Parameter | Type |
|---|---|
options | FeatureFlagModuleRootOptions |
Returns
DynamicModule
forRootAsync()
static forRootAsync(options): DynamicModule;Defined in: src/feature-flag.module.ts:105
Parameters
| Parameter | Type |
|---|---|
options | FeatureFlagModuleRootAsyncOptions |
Returns
DynamicModule
FeatureFlagService
Defined in: src/services/feature-flag.service.ts:33
Constructors
Constructor
new FeatureFlagService(
options,
repository,
cacheAdapter,
evaluator,
contextResolver,
eventPublisher): FeatureFlagService;Defined in: src/services/feature-flag.service.ts:34
Parameters
| Parameter | Type |
|---|---|
options | FeatureFlagModuleOptions |
repository | FeatureFlagRepository |
cacheAdapter | CacheAdapter |
evaluator | FlagEvaluatorService |
contextResolver | FlagContextResolver |
eventPublisher | FlagEventPublisher |
Returns
Methods
archive()
archive(key, metadata?): Promise<FeatureFlagWithOverrides>;Defined in: src/services/feature-flag.service.ts:139
Parameters
| Parameter | Type |
|---|---|
key | string |
metadata | FlagMutationMetadata |
Returns
Promise<FeatureFlagWithOverrides>
create()
create(input, metadata?): Promise<FeatureFlagWithOverrides>;Defined in: src/services/feature-flag.service.ts:110
Parameters
| Parameter | Type |
|---|---|
input | CreateFeatureFlagInput |
metadata | FlagMutationMetadata |
Returns
Promise<FeatureFlagWithOverrides>
evaluateAll()
evaluateAll(explicitContext?): Promise<Record<string, boolean>>;Defined in: src/services/feature-flag.service.ts:98
Parameters
| Parameter | Type |
|---|---|
explicitContext? | EvaluationContext |
Returns
Promise<Record<string, boolean>>
evaluateBoolean()
evaluateBoolean(
flagKey,
explicitContext?,
evaluationOptions?): Promise<BooleanEvaluationDetails>;Defined in: src/services/feature-flag.service.ts:55
Parameters
| Parameter | Type |
|---|---|
flagKey | string |
explicitContext? | EvaluationContext |
evaluationOptions? | EvaluateBooleanOptions |
Returns
Promise<BooleanEvaluationDetails>
findAll()
findAll(): Promise<FeatureFlagWithOverrides[]>;Defined in: src/services/feature-flag.service.ts:188
Returns
Promise<FeatureFlagWithOverrides[]>
findByKey()
findByKey(key): Promise<FeatureFlagWithOverrides>;Defined in: src/services/feature-flag.service.ts:197
Parameters
| Parameter | Type |
|---|---|
key | string |
Returns
Promise<FeatureFlagWithOverrides>
invalidateCache()
invalidateCache(): Promise<void>;Defined in: src/services/feature-flag.service.ts:192
Returns
Promise<void>
isEnabled()
isEnabled(
flagKey,
explicitContext?,
evaluationOptions?): Promise<boolean>;Defined in: src/services/feature-flag.service.ts:47
Parameters
| Parameter | Type |
|---|---|
flagKey | string |
explicitContext? | EvaluationContext |
evaluationOptions? | EvaluateBooleanOptions |
Returns
Promise<boolean>
removeOverride()
removeOverride(
key,
input,
metadata?): Promise<void>;Defined in: src/services/feature-flag.service.ts:205
Parameters
| Parameter | Type |
|---|---|
key | string |
input | RemoveOverrideInput |
metadata | FlagMutationMetadata |
Returns
Promise<void>
setOverride()
setOverride(
key,
input,
metadata?): Promise<void>;Defined in: src/services/feature-flag.service.ts:153
Parameters
| Parameter | Type |
|---|---|
key | string |
input | SetOverrideInput |
metadata | FlagMutationMetadata |
Returns
Promise<void>
update()
update(
key,
input,
metadata?): Promise<FeatureFlagWithOverrides>;Defined in: src/services/feature-flag.service.ts:124
Parameters
| Parameter | Type |
|---|---|
key | string |
input | UpdateFeatureFlagInput |
metadata | FlagMutationMetadata |
Returns
Promise<FeatureFlagWithOverrides>
FlagContext
Defined in: src/services/flag-context.ts:9
Constructors
Constructor
new FlagContext(): FlagContext;Returns
Methods
getUserId()
getUserId(): string | null;Defined in: src/services/flag-context.ts:16
Returns
string | null
run()
run<T>(store, callback): T;Defined in: src/services/flag-context.ts:12
Type Parameters
| Type Parameter |
|---|
T |
Parameters
| Parameter | Type |
|---|---|
store | FlagStore |
callback | () => T |
Returns
T
MemoryCacheAdapter
Defined in: src/cache/memory-cache.adapter.ts:11
Implements
Constructors
Constructor
new MemoryCacheAdapter(): MemoryCacheAdapter;Returns
Methods
get()
get(key): Promise<FeatureFlagWithOverrides | null>;Defined in: src/cache/memory-cache.adapter.ts:15
Parameters
| Parameter | Type |
|---|---|
key | string |
Returns
Promise<FeatureFlagWithOverrides | null>
Implementation of
getAll()
getAll(): Promise<FeatureFlagWithOverrides[] | null>;Defined in: src/cache/memory-cache.adapter.ts:30
Returns
Promise<FeatureFlagWithOverrides[] | null>
Implementation of
invalidate()
invalidate(key?): Promise<void>;Defined in: src/cache/memory-cache.adapter.ts:44
Parameters
| Parameter | Type |
|---|---|
key? | string |
Returns
Promise<void>
Implementation of
set()
set(
key,
data,
ttlMs): Promise<void>;Defined in: src/cache/memory-cache.adapter.ts:25
Parameters
| Parameter | Type |
|---|---|
key | string |
data | FeatureFlagWithOverrides |
ttlMs | number |
Returns
Promise<void>
Implementation of
setAll()
setAll(data, ttlMs): Promise<void>;Defined in: src/cache/memory-cache.adapter.ts:39
Parameters
| Parameter | Type |
|---|---|
data | FeatureFlagWithOverrides[] |
ttlMs | number |
Returns
Promise<void>
Implementation of
PrismaFeatureFlagRepository
Defined in: src/repositories/prisma-feature-flag.repository.ts:28
Implements
Constructors
Constructor
new PrismaFeatureFlagRepository(prisma): PrismaFeatureFlagRepository;Defined in: src/repositories/prisma-feature-flag.repository.ts:29
Parameters
| Parameter | Type |
|---|---|
prisma | any |
Returns
Methods
archiveFlag()
archiveFlag(key): Promise<FeatureFlagWithOverrides>;Defined in: src/repositories/prisma-feature-flag.repository.ts:80
Parameters
| Parameter | Type |
|---|---|
key | string |
Returns
Promise<FeatureFlagWithOverrides>
Implementation of
FeatureFlagRepository.archiveFlag
createFlag()
createFlag(input): Promise<FeatureFlagWithOverrides>;Defined in: src/repositories/prisma-feature-flag.repository.ts:31
Parameters
| Parameter | Type |
|---|---|
input | CreateFeatureFlagInput |
Returns
Promise<FeatureFlagWithOverrides>
Implementation of
FeatureFlagRepository.createFlag
createOverride()
createOverride(
flagId,
criteria,
enabled,
priority): Promise<void>;Defined in: src/repositories/prisma-feature-flag.repository.ts:125
Parameters
| Parameter | Type |
|---|---|
flagId | string |
criteria | OverrideCriteria |
enabled | boolean |
priority | number |
Returns
Promise<void>
Implementation of
FeatureFlagRepository.createOverride
deleteOverride()
deleteOverride(id): Promise<void>;Defined in: src/repositories/prisma-feature-flag.repository.ts:162
Parameters
| Parameter | Type |
|---|---|
id | string |
Returns
Promise<void>
Implementation of
FeatureFlagRepository.deleteOverride
findAllActiveFlags()
findAllActiveFlags(): Promise<FeatureFlagWithOverrides[]>;Defined in: src/repositories/prisma-feature-flag.repository.ts:107
Returns
Promise<FeatureFlagWithOverrides[]>
Implementation of
FeatureFlagRepository.findAllActiveFlags
findFlagByKey()
findFlagByKey(key): Promise<FeatureFlagWithOverrides | null>;Defined in: src/repositories/prisma-feature-flag.repository.ts:95
Parameters
| Parameter | Type |
|---|---|
key | string |
Returns
Promise<FeatureFlagWithOverrides | null>
Implementation of
FeatureFlagRepository.findFlagByKey
findFlagIdByKey()
findFlagIdByKey(key): Promise<string | null>;Defined in: src/repositories/prisma-feature-flag.repository.ts:102
Parameters
| Parameter | Type |
|---|---|
key | string |
Returns
Promise<string | null>
Implementation of
FeatureFlagRepository.findFlagIdByKey
findOverride()
findOverride(flagId, criteria): Promise<
| {
id: string;
}
| null>;Defined in: src/repositories/prisma-feature-flag.repository.ts:115
Parameters
| Parameter | Type |
|---|---|
flagId | string |
criteria | OverrideCriteria |
Returns
Promise< | { id: string; } | null>
Implementation of
FeatureFlagRepository.findOverride
updateFlag()
updateFlag(key, input): Promise<FeatureFlagWithOverrides>;Defined in: src/repositories/prisma-feature-flag.repository.ts:56
Parameters
| Parameter | Type |
|---|---|
key | string |
input | UpdateFeatureFlagInput |
Returns
Promise<FeatureFlagWithOverrides>
Implementation of
FeatureFlagRepository.updateFlag
updateOverride()
updateOverride(id, input): Promise<void>;Defined in: src/repositories/prisma-feature-flag.repository.ts:152
Parameters
| Parameter | Type |
|---|---|
id | string |
input | UpdateOverrideInput |
Returns
Promise<void>
Implementation of
FeatureFlagRepository.updateOverride
RedisCacheAdapter
Defined in: src/cache/redis-cache.adapter.ts:14
Implements
Constructors
Constructor
new RedisCacheAdapter(options): RedisCacheAdapter;Defined in: src/cache/redis-cache.adapter.ts:21
Parameters
| Parameter | Type |
|---|---|
options | RedisCacheAdapterOptions |
Returns
Methods
get()
get(key): Promise<FeatureFlagWithOverrides | null>;Defined in: src/cache/redis-cache.adapter.ts:50
Parameters
| Parameter | Type |
|---|---|
key | string |
Returns
Promise<FeatureFlagWithOverrides | null>
Implementation of
getAll()
getAll(): Promise<FeatureFlagWithOverrides[] | null>;Defined in: src/cache/redis-cache.adapter.ts:61
Returns
Promise<FeatureFlagWithOverrides[] | null>
Implementation of
invalidate()
invalidate(key?): Promise<void>;Defined in: src/cache/redis-cache.adapter.ts:72
Parameters
| Parameter | Type |
|---|---|
key? | string |
Returns
Promise<void>
Implementation of
onModuleDestroy()
onModuleDestroy(): Promise<void>;Defined in: src/cache/redis-cache.adapter.ts:83
Returns
Promise<void>
Implementation of
set()
set(
key,
data,
ttlMs): Promise<void>;Defined in: src/cache/redis-cache.adapter.ts:56
Parameters
| Parameter | Type |
|---|---|
key | string |
data | FeatureFlagWithOverrides |
ttlMs | number |
Returns
Promise<void>
Implementation of
setAll()
setAll(data, ttlMs): Promise<void>;Defined in: src/cache/redis-cache.adapter.ts:67
Parameters
| Parameter | Type |
|---|---|
data | FeatureFlagWithOverrides[] |
ttlMs | number |
Returns
Promise<void>
Implementation of
Interfaces
BooleanEvaluationDetails
Defined in: src/interfaces/evaluation-details.interface.ts:31
Properties
bucket?
optional bucket?: number;Defined in: src/interfaces/evaluation-details.interface.ts:42
defaultUsed
defaultUsed: boolean;Defined in: src/interfaces/evaluation-details.interface.ts:38
errorCode?
optional errorCode?: string;Defined in: src/interfaces/evaluation-details.interface.ts:39
errorMessage?
optional errorMessage?: string;Defined in: src/interfaces/evaluation-details.interface.ts:40
evaluationTimeMs?
optional evaluationTimeMs?: number;Defined in: src/interfaces/evaluation-details.interface.ts:44
flagKey
flagKey: string;Defined in: src/interfaces/evaluation-details.interface.ts:32
matchedOverrideId?
optional matchedOverrideId?: string;Defined in: src/interfaces/evaluation-details.interface.ts:41
reason
reason: EvaluationReason;Defined in: src/interfaces/evaluation-details.interface.ts:37
result
result: boolean;Defined in: src/interfaces/evaluation-details.interface.ts:35
Backward-compatible alias for value.
source
source: EvaluationSource;Defined in: src/interfaces/evaluation-details.interface.ts:36
targetingKey?
optional targetingKey?: string;Defined in: src/interfaces/evaluation-details.interface.ts:43
value
value: boolean;Defined in: src/interfaces/evaluation-details.interface.ts:33
CacheAdapter
Defined in: src/interfaces/cache-adapter.interface.ts:3
Methods
get()
get(key): Promise<FeatureFlagWithOverrides | null>;Defined in: src/interfaces/cache-adapter.interface.ts:4
Parameters
| Parameter | Type |
|---|---|
key | string |
Returns
Promise<FeatureFlagWithOverrides | null>
getAll()
getAll(): Promise<FeatureFlagWithOverrides[] | null>;Defined in: src/interfaces/cache-adapter.interface.ts:6
Returns
Promise<FeatureFlagWithOverrides[] | null>
invalidate()
invalidate(key?): Promise<void>;Defined in: src/interfaces/cache-adapter.interface.ts:8
Parameters
| Parameter | Type |
|---|---|
key? | string |
Returns
Promise<void>
onModuleDestroy()?
optional onModuleDestroy(): Promise<void>;Defined in: src/interfaces/cache-adapter.interface.ts:9
Returns
Promise<void>
set()
set(
key,
data,
ttlMs): Promise<void>;Defined in: src/interfaces/cache-adapter.interface.ts:5
Parameters
| Parameter | Type |
|---|---|
key | string |
data | FeatureFlagWithOverrides |
ttlMs | number |
Returns
Promise<void>
setAll()
setAll(data, ttlMs): Promise<void>;Defined in: src/interfaces/cache-adapter.interface.ts:7
Parameters
| Parameter | Type |
|---|---|
data | FeatureFlagWithOverrides[] |
ttlMs | number |
Returns
Promise<void>
CreateFeatureFlagInput
Defined in: src/interfaces/feature-flag.interface.ts:4
Properties
description?
optional description?: string;Defined in: src/interfaces/feature-flag.interface.ts:6
enabled?
optional enabled?: boolean;Defined in: src/interfaces/feature-flag.interface.ts:7
key
key: string;Defined in: src/interfaces/feature-flag.interface.ts:5
metadata?
optional metadata?: Record<string, unknown>;Defined in: src/interfaces/feature-flag.interface.ts:9
percentage?
optional percentage?: number;Defined in: src/interfaces/feature-flag.interface.ts:8
EvaluateBooleanOptions
Defined in: src/interfaces/evaluation-details.interface.ts:20
Properties
defaultValue?
optional defaultValue?: boolean;Defined in: src/interfaces/evaluation-details.interface.ts:22
Invocation-level default used when the flag is missing or evaluation fails.
includeContextInEvent?
optional includeContextInEvent?: boolean;Defined in: src/interfaces/evaluation-details.interface.ts:28
Include the full resolved context in evaluation/exposure events.
trackExposure?
optional trackExposure?: boolean;Defined in: src/interfaces/evaluation-details.interface.ts:25
Emit an exposure event for this evaluation.
EvaluationContext
Defined in: src/interfaces/evaluation-context.interface.ts:3
Properties
attributes?
optional attributes?: TargetingAttributes;Defined in: src/interfaces/evaluation-context.interface.ts:17
Additional exact-match targeting attributes
environment?
optional environment?: string;Defined in: src/interfaces/evaluation-context.interface.ts:11
Environment - auto-injected from module options. Can be explicitly overridden
targetingKey?
optional targetingKey?: string | null;Defined in: src/interfaces/evaluation-context.interface.ts:14
Explicit stable key for percentage rollout bucketing
tenantId?
optional tenantId?: string | null;Defined in: src/interfaces/evaluation-context.interface.ts:8
Tenant ID - used for tenant-scoped targeting. Ignored if tenancy is not installed
userId?
optional userId?: string | null;Defined in: src/interfaces/evaluation-context.interface.ts:5
User ID - used for user-scoped targeting and percentage hash
FeatureFlagAdminOptions
Defined in: src/admin/admin-options.interface.ts:3
Properties
guard
guard: Type<CanActivate>;Defined in: src/admin/admin-options.interface.ts:4
path?
optional path?: string;Defined in: src/admin/admin-options.interface.ts:5
FeatureFlagGuardOptions
Defined in: src/interfaces/feature-flag.interface.ts:25
Properties
defaultValue?
optional defaultValue?: boolean;Defined in: src/interfaces/feature-flag.interface.ts:33
Invocation-level default when the guard cannot find or evaluate the flag. Default: false
fallback?
optional fallback?: Record<string, unknown>;Defined in: src/interfaces/feature-flag.interface.ts:30
Response body when flag is OFF
statusCode?
optional statusCode?: number;Defined in: src/interfaces/feature-flag.interface.ts:27
HTTP status code when flag is OFF. Default: 403
FeatureFlagLifecycleMetadata
Defined in: src/interfaces/flag-registry.interface.ts:5
Extended by
Properties
expiresAt?
optional expiresAt?: string | Date;Defined in: src/interfaces/flag-registry.interface.ts:9
owner?
optional owner?: string;Defined in: src/interfaces/flag-registry.interface.ts:7
staleAt?
optional staleAt?: string | Date;Defined in: src/interfaces/flag-registry.interface.ts:10
tags?
optional tags?: readonly string[];Defined in: src/interfaces/flag-registry.interface.ts:8
type?
optional type?: FeatureFlagType;Defined in: src/interfaces/flag-registry.interface.ts:6
FeatureFlagModuleAsyncOptions
Defined in: src/interfaces/feature-flag-options.interface.ts:35
Extends
Pick<ModuleMetadata,"imports">
Extended by
Properties
imports?
optional imports?: (
| DynamicModule
| Type<any>
| Promise<DynamicModule>
| ForwardReference<any>)[];Defined in: node_modules/@nestjs/common/interfaces/modules/module-metadata.interface.d.ts:18
Optional list of imported modules that export the providers which are required in this module.
Inherited from
Pick.importsinject?
optional inject?: any[];Defined in: src/interfaces/feature-flag-options.interface.ts:36
useClass?
optional useClass?: Type<FeatureFlagModuleOptionsFactory>;Defined in: src/interfaces/feature-flag-options.interface.ts:38
useExisting?
optional useExisting?: Type<FeatureFlagModuleOptionsFactory>;Defined in: src/interfaces/feature-flag-options.interface.ts:39
useFactory?
optional useFactory?: (...args) =>
| FeatureFlagModuleOptions
| Promise<FeatureFlagModuleOptions>;Defined in: src/interfaces/feature-flag-options.interface.ts:37
Parameters
| Parameter | Type |
|---|---|
...args | any[] |
Returns
| FeatureFlagModuleOptions | Promise<FeatureFlagModuleOptions>
FeatureFlagModuleOptions
Defined in: src/interfaces/feature-flag-options.interface.ts:6
Extended by
Properties
cacheAdapter?
optional cacheAdapter?: CacheAdapter;Defined in: src/interfaces/feature-flag-options.interface.ts:23
Custom cache adapter implementation. If not provided, an in-memory cache is used.
cacheTtlMs?
optional cacheTtlMs?: number;Defined in: src/interfaces/feature-flag-options.interface.ts:11
Cache TTL in milliseconds. 0 disables caching. Default: 30000
defaultOnMissing?
optional defaultOnMissing?: boolean;Defined in: src/interfaces/feature-flag-options.interface.ts:17
Default value when evaluating a non-existent flag. Default: false
emitEvents?
optional emitEvents?: boolean;Defined in: src/interfaces/feature-flag-options.interface.ts:20
Emit evaluation events via @nestjs/event-emitter. Default: false
environment
environment: string;Defined in: src/interfaces/feature-flag-options.interface.ts:8
Current environment (e.g., 'development', 'staging', 'production')
flags?
optional flags?: FlagRegistry;Defined in: src/interfaces/feature-flag-options.interface.ts:26
Optional type-safe flag registry used for defaults and evaluation metadata.
userIdExtractor?
optional userIdExtractor?: (req) => string | null;Defined in: src/interfaces/feature-flag-options.interface.ts:14
Extract user ID from request. Returns null if user is not authenticated.
Parameters
| Parameter | Type |
|---|---|
req | Request |
Returns
string | null
FeatureFlagModuleOptionsFactory
Defined in: src/interfaces/feature-flag-options.interface.ts:29
Methods
createFeatureFlagOptions()
createFeatureFlagOptions():
| Promise<FeatureFlagModuleOptions & {
prisma: any;
}>
| FeatureFlagModuleOptions & {
prisma: any;
};Defined in: src/interfaces/feature-flag-options.interface.ts:30
Returns
| Promise<FeatureFlagModuleOptions & { prisma: any; }> | FeatureFlagModuleOptions & { prisma: any; }
FeatureFlagModuleRootAsyncOptions
Defined in: src/feature-flag.module.ts:36
Extends
Properties
imports?
optional imports?: (
| DynamicModule
| Type<any>
| Promise<DynamicModule>
| ForwardReference<any>)[];Defined in: node_modules/@nestjs/common/interfaces/modules/module-metadata.interface.d.ts:18
Optional list of imported modules that export the providers which are required in this module.
Inherited from
FeatureFlagModuleAsyncOptions.imports
inject?
optional inject?: any[];Defined in: src/interfaces/feature-flag-options.interface.ts:36
Inherited from
FeatureFlagModuleAsyncOptions.inject
useClass?
optional useClass?: Type<FeatureFlagModuleOptionsFactory>;Defined in: src/interfaces/feature-flag-options.interface.ts:38
Inherited from
FeatureFlagModuleAsyncOptions.useClass
useExisting?
optional useExisting?: Type<FeatureFlagModuleOptionsFactory>;Defined in: src/interfaces/feature-flag-options.interface.ts:39
Inherited from
FeatureFlagModuleAsyncOptions.useExisting
useFactory?
optional useFactory?: (...args) =>
| FeatureFlagModuleRootOptions
| Promise<FeatureFlagModuleRootOptions>;Defined in: src/feature-flag.module.ts:37
Parameters
| Parameter | Type |
|---|---|
...args | any[] |
Returns
| FeatureFlagModuleRootOptions | Promise<FeatureFlagModuleRootOptions>
Overrides
FeatureFlagModuleAsyncOptions.useFactory
FeatureFlagModuleRootOptions
Defined in: src/feature-flag.module.ts:32
Extends
Properties
cacheAdapter?
optional cacheAdapter?: CacheAdapter;Defined in: src/interfaces/feature-flag-options.interface.ts:23
Custom cache adapter implementation. If not provided, an in-memory cache is used.
Inherited from
FeatureFlagModuleOptions.cacheAdapter
cacheTtlMs?
optional cacheTtlMs?: number;Defined in: src/interfaces/feature-flag-options.interface.ts:11
Cache TTL in milliseconds. 0 disables caching. Default: 30000
Inherited from
FeatureFlagModuleOptions.cacheTtlMs
defaultOnMissing?
optional defaultOnMissing?: boolean;Defined in: src/interfaces/feature-flag-options.interface.ts:17
Default value when evaluating a non-existent flag. Default: false
Inherited from
FeatureFlagModuleOptions.defaultOnMissing
emitEvents?
optional emitEvents?: boolean;Defined in: src/interfaces/feature-flag-options.interface.ts:20
Emit evaluation events via @nestjs/event-emitter. Default: false
Inherited from
FeatureFlagModuleOptions.emitEvents
environment
environment: string;Defined in: src/interfaces/feature-flag-options.interface.ts:8
Current environment (e.g., 'development', 'staging', 'production')
Inherited from
FeatureFlagModuleOptions.environment
flags?
optional flags?: FlagRegistry;Defined in: src/interfaces/feature-flag-options.interface.ts:26
Optional type-safe flag registry used for defaults and evaluation metadata.
Inherited from
FeatureFlagModuleOptions.flags
prisma
prisma: any;Defined in: src/feature-flag.module.ts:33
userIdExtractor?
optional userIdExtractor?: (req) => string | null;Defined in: src/interfaces/feature-flag-options.interface.ts:14
Extract user ID from request. Returns null if user is not authenticated.
Parameters
| Parameter | Type |
|---|---|
req | Request |
Returns
string | null
Inherited from
FeatureFlagModuleOptions.userIdExtractor
FeatureFlagRepository
Defined in: src/interfaces/feature-flag-repository.interface.ts:17
Methods
archiveFlag()
archiveFlag(key): Promise<FeatureFlagWithOverrides>;Defined in: src/interfaces/feature-flag-repository.interface.ts:20
Parameters
| Parameter | Type |
|---|---|
key | string |
Returns
Promise<FeatureFlagWithOverrides>
createFlag()
createFlag(input): Promise<FeatureFlagWithOverrides>;Defined in: src/interfaces/feature-flag-repository.interface.ts:18
Parameters
| Parameter | Type |
|---|---|
input | CreateFeatureFlagInput |
Returns
Promise<FeatureFlagWithOverrides>
createOverride()
createOverride(
flagId,
criteria,
enabled,
priority): Promise<void>;Defined in: src/interfaces/feature-flag-repository.interface.ts:25
Parameters
| Parameter | Type |
|---|---|
flagId | string |
criteria | OverrideCriteria |
enabled | boolean |
priority | number |
Returns
Promise<void>
deleteOverride()
deleteOverride(id): Promise<void>;Defined in: src/interfaces/feature-flag-repository.interface.ts:32
Parameters
| Parameter | Type |
|---|---|
id | string |
Returns
Promise<void>
findAllActiveFlags()
findAllActiveFlags(): Promise<FeatureFlagWithOverrides[]>;Defined in: src/interfaces/feature-flag-repository.interface.ts:23
Returns
Promise<FeatureFlagWithOverrides[]>
findFlagByKey()
findFlagByKey(key): Promise<FeatureFlagWithOverrides | null>;Defined in: src/interfaces/feature-flag-repository.interface.ts:21
Parameters
| Parameter | Type |
|---|---|
key | string |
Returns
Promise<FeatureFlagWithOverrides | null>
findFlagIdByKey()
findFlagIdByKey(key): Promise<string | null>;Defined in: src/interfaces/feature-flag-repository.interface.ts:22
Parameters
| Parameter | Type |
|---|---|
key | string |
Returns
Promise<string | null>
findOverride()
findOverride(flagId, criteria): Promise<
| {
id: string;
}
| null>;Defined in: src/interfaces/feature-flag-repository.interface.ts:24
Parameters
| Parameter | Type |
|---|---|
flagId | string |
criteria | OverrideCriteria |
Returns
Promise< | { id: string; } | null>
updateFlag()
updateFlag(key, input): Promise<FeatureFlagWithOverrides>;Defined in: src/interfaces/feature-flag-repository.interface.ts:19
Parameters
| Parameter | Type |
|---|---|
key | string |
input | UpdateFeatureFlagInput |
Returns
Promise<FeatureFlagWithOverrides>
updateOverride()
updateOverride(id, input): Promise<void>;Defined in: src/interfaces/feature-flag-repository.interface.ts:31
Parameters
| Parameter | Type |
|---|---|
id | string |
input | UpdateOverrideInput |
Returns
Promise<void>
FeatureFlagWithOverrides
Defined in: src/interfaces/feature-flag.interface.ts:36
Properties
archivedAt
archivedAt: Date | null;Defined in: src/interfaces/feature-flag.interface.ts:43
createdAt
createdAt: Date;Defined in: src/interfaces/feature-flag.interface.ts:44
description
description: string | null;Defined in: src/interfaces/feature-flag.interface.ts:39
enabled
enabled: boolean;Defined in: src/interfaces/feature-flag.interface.ts:40
id
id: string;Defined in: src/interfaces/feature-flag.interface.ts:37
key
key: string;Defined in: src/interfaces/feature-flag.interface.ts:38
metadata
metadata: Record<string, unknown>;Defined in: src/interfaces/feature-flag.interface.ts:42
overrides
overrides: FlagOverride[];Defined in: src/interfaces/feature-flag.interface.ts:46
percentage
percentage: number;Defined in: src/interfaces/feature-flag.interface.ts:41
updatedAt
updatedAt: Date;Defined in: src/interfaces/feature-flag.interface.ts:45
FlagDefinition
Defined in: src/interfaces/flag-registry.interface.ts:13
Extends
Properties
bucketBy?
optional bucketBy?: BucketBy;Defined in: src/interfaces/flag-registry.interface.ts:16
defaultValue
defaultValue: boolean;Defined in: src/interfaces/flag-registry.interface.ts:14
description?
optional description?: string;Defined in: src/interfaces/flag-registry.interface.ts:15
expiresAt?
optional expiresAt?: string | Date;Defined in: src/interfaces/flag-registry.interface.ts:9
Inherited from
FeatureFlagLifecycleMetadata.expiresAt
owner?
optional owner?: string;Defined in: src/interfaces/flag-registry.interface.ts:7
Inherited from
FeatureFlagLifecycleMetadata.owner
staleAt?
optional staleAt?: string | Date;Defined in: src/interfaces/flag-registry.interface.ts:10
Inherited from
FeatureFlagLifecycleMetadata.staleAt
tags?
optional tags?: readonly string[];Defined in: src/interfaces/flag-registry.interface.ts:8
Inherited from
FeatureFlagLifecycleMetadata.tags
trackExposure?
optional trackExposure?: boolean;Defined in: src/interfaces/flag-registry.interface.ts:17
type?
optional type?: FeatureFlagType;Defined in: src/interfaces/flag-registry.interface.ts:6
Inherited from
FeatureFlagLifecycleMetadata.type
FlagEvaluatedEvent
Defined in: src/events/feature-flag.events.ts:18
Properties
bucket?
optional bucket?: number;Defined in: src/events/feature-flag.events.ts:29
context?
optional context?: EvaluationContext;Defined in: src/events/feature-flag.events.ts:22
defaultUsed?
optional defaultUsed?: boolean;Defined in: src/events/feature-flag.events.ts:25
errorCode?
optional errorCode?: string;Defined in: src/events/feature-flag.events.ts:26
errorMessage?
optional errorMessage?: string;Defined in: src/events/feature-flag.events.ts:27
evaluationTimeMs
evaluationTimeMs: number;Defined in: src/events/feature-flag.events.ts:31
flagKey
flagKey: string;Defined in: src/events/feature-flag.events.ts:19
matchedOverrideId?
optional matchedOverrideId?: string;Defined in: src/events/feature-flag.events.ts:28
reason?
optional reason?: EvaluationReason;Defined in: src/events/feature-flag.events.ts:24
result
result: boolean;Defined in: src/events/feature-flag.events.ts:20
source
source: EvaluationSource;Defined in: src/events/feature-flag.events.ts:23
targetingKey?
optional targetingKey?: string;Defined in: src/events/feature-flag.events.ts:30
value?
optional value?: boolean;Defined in: src/events/feature-flag.events.ts:21
FlagEvaluatorOptions
Defined in: src/interfaces/evaluation-details.interface.ts:47
Properties
bucketBy?
optional bucketBy?: BucketBy;Defined in: src/interfaces/evaluation-details.interface.ts:48
FlagExposedEvent
Defined in: src/events/feature-flag.events.ts:34
Properties
bucket?
optional bucket?: number;Defined in: src/events/feature-flag.events.ts:43
context?
optional context?: EvaluationContext;Defined in: src/events/feature-flag.events.ts:41
defaultUsed
defaultUsed: boolean;Defined in: src/events/feature-flag.events.ts:40
evaluationTimeMs?
optional evaluationTimeMs?: number;Defined in: src/events/feature-flag.events.ts:45
flagKey
flagKey: string;Defined in: src/events/feature-flag.events.ts:35
matchedOverrideId?
optional matchedOverrideId?: string;Defined in: src/events/feature-flag.events.ts:42
reason
reason: EvaluationReason;Defined in: src/events/feature-flag.events.ts:39
result
result: boolean;Defined in: src/events/feature-flag.events.ts:37
source
source: EvaluationSource;Defined in: src/events/feature-flag.events.ts:38
targetingKey?
optional targetingKey?: string;Defined in: src/events/feature-flag.events.ts:44
value
value: boolean;Defined in: src/events/feature-flag.events.ts:36
FlagLifecycleStatus
Defined in: src/flag-registry.ts:40
Extends
Properties
expiresAt?
optional expiresAt?: Date;Defined in: src/flag-registry.ts:44
Overrides
FeatureFlagLifecycleMetadata.expiresAt
owner?
optional owner?: string;Defined in: src/interfaces/flag-registry.interface.ts:7
Inherited from
FeatureFlagLifecycleMetadata.owner
staleAt?
optional staleAt?: Date;Defined in: src/flag-registry.ts:43
Overrides
FeatureFlagLifecycleMetadata.staleAt
status
status: FlagLifecycleStatusName;Defined in: src/flag-registry.ts:41
tags
tags: string[];Defined in: src/flag-registry.ts:42
Overrides
FeatureFlagLifecycleMetadata.tags
type?
optional type?: FeatureFlagType;Defined in: src/interfaces/flag-registry.interface.ts:6
Inherited from
FeatureFlagLifecycleMetadata.type
FlagMutationEvent
Defined in: src/events/feature-flag.events.ts:48
Properties
action
action: "created" | "updated" | "archived";Defined in: src/events/feature-flag.events.ts:50
actorId?
optional actorId?: string;Defined in: src/events/feature-flag.events.ts:51
actorType?
optional actorType?: string;Defined in: src/events/feature-flag.events.ts:52
correlationId?
optional correlationId?: string;Defined in: src/events/feature-flag.events.ts:55
flagKey
flagKey: string;Defined in: src/events/feature-flag.events.ts:49
reason?
optional reason?: string;Defined in: src/events/feature-flag.events.ts:53
requestId?
optional requestId?: string;Defined in: src/events/feature-flag.events.ts:54
FlagMutationMetadata
Defined in: src/interfaces/feature-flag.interface.ts:63
Properties
actorId?
optional actorId?: string;Defined in: src/interfaces/feature-flag.interface.ts:64
actorType?
optional actorType?: string;Defined in: src/interfaces/feature-flag.interface.ts:65
correlationId?
optional correlationId?: string;Defined in: src/interfaces/feature-flag.interface.ts:68
reason?
optional reason?: string;Defined in: src/interfaces/feature-flag.interface.ts:66
requestId?
optional requestId?: string;Defined in: src/interfaces/feature-flag.interface.ts:67
FlagOverride
Defined in: src/interfaces/feature-flag.interface.ts:49
Properties
attributes
attributes: TargetingAttributes;Defined in: src/interfaces/feature-flag.interface.ts:52
createdAt
createdAt: Date;Defined in: src/interfaces/feature-flag.interface.ts:55
enabled
enabled: boolean;Defined in: src/interfaces/feature-flag.interface.ts:54
flagId
flagId: string;Defined in: src/interfaces/feature-flag.interface.ts:51
id
id: string;Defined in: src/interfaces/feature-flag.interface.ts:50
priority
priority: number;Defined in: src/interfaces/feature-flag.interface.ts:53
updatedAt
updatedAt: Date;Defined in: src/interfaces/feature-flag.interface.ts:56
FlagOverrideEvent
Defined in: src/events/feature-flag.events.ts:58
Properties
action
action: "set" | "removed";Defined in: src/events/feature-flag.events.ts:63
actorId?
optional actorId?: string;Defined in: src/events/feature-flag.events.ts:64
actorType?
optional actorType?: string;Defined in: src/events/feature-flag.events.ts:65
attributes
attributes: Record<string, string | number | boolean | null>;Defined in: src/events/feature-flag.events.ts:60
correlationId?
optional correlationId?: string;Defined in: src/events/feature-flag.events.ts:68
enabled?
optional enabled?: boolean;Defined in: src/events/feature-flag.events.ts:61
flagKey
flagKey: string;Defined in: src/events/feature-flag.events.ts:59
priority?
optional priority?: number;Defined in: src/events/feature-flag.events.ts:62
reason?
optional reason?: string;Defined in: src/events/feature-flag.events.ts:66
requestId?
optional requestId?: string;Defined in: src/events/feature-flag.events.ts:67
OverrideCriteria
Defined in: src/interfaces/feature-flag-repository.interface.ts:8
Properties
attributes
attributes: TargetingAttributes;Defined in: src/interfaces/feature-flag-repository.interface.ts:9
RedisCacheAdapterOptions
Defined in: src/cache/redis-cache.adapter.ts:6
Properties
channel?
optional channel?: string;Defined in: src/cache/redis-cache.adapter.ts:10
client
client: Redis;Defined in: src/cache/redis-cache.adapter.ts:7
keyPrefix?
optional keyPrefix?: string;Defined in: src/cache/redis-cache.adapter.ts:9
subscriber?
optional subscriber?: Redis;Defined in: src/cache/redis-cache.adapter.ts:8
RemoveOverrideInput
Defined in: src/interfaces/feature-flag.interface.ts:59
Properties
attributes
attributes: TargetingAttributes;Defined in: src/interfaces/feature-flag.interface.ts:60
SetOverrideInput
Defined in: src/interfaces/feature-flag.interface.ts:19
Properties
attributes
attributes: TargetingAttributes;Defined in: src/interfaces/feature-flag.interface.ts:20
enabled
enabled: boolean;Defined in: src/interfaces/feature-flag.interface.ts:21
priority?
optional priority?: number;Defined in: src/interfaces/feature-flag.interface.ts:22
TenantContextProvider
Defined in: src/interfaces/tenant-context-provider.interface.ts:1
Methods
getCurrentTenantId()
getCurrentTenantId(): string | null;Defined in: src/interfaces/tenant-context-provider.interface.ts:2
Returns
string | null
TypedFeatureFlagClient
Defined in: src/flag-registry.ts:15
Type Parameters
| Type Parameter |
|---|
TFlags extends FlagRegistry |
Properties
registry
registry: TFlags;Defined in: src/flag-registry.ts:28
Methods
evaluateBoolean()
evaluateBoolean<K>(
flagKey,
context?,
options?): Promise<BooleanEvaluationDetails>;Defined in: src/flag-registry.ts:22
Type Parameters
| Type Parameter |
|---|
K extends string |
Parameters
| Parameter | Type |
|---|---|
flagKey | K |
context? | EvaluationContext |
options? | EvaluateBooleanOptions |
Returns
Promise<BooleanEvaluationDetails>
isEnabled()
isEnabled<K>(
flagKey,
context?,
options?): Promise<boolean>;Defined in: src/flag-registry.ts:16
Type Parameters
| Type Parameter |
|---|
K extends string |
Parameters
| Parameter | Type |
|---|---|
flagKey | K |
context? | EvaluationContext |
options? | EvaluateBooleanOptions |
Returns
Promise<boolean>
TypedFeatureFlagDecorators
Defined in: src/flag-registry.ts:31
Type Parameters
| Type Parameter |
|---|
TFlags extends FlagRegistry |
Methods
FeatureFlag()
FeatureFlag<K>(flagKey, options?): ClassDecorator & MethodDecorator;Defined in: src/flag-registry.ts:32
Type Parameters
| Type Parameter |
|---|
K extends string |
Parameters
| Parameter | Type |
|---|---|
flagKey | K |
options? | FeatureFlagGuardOptions |
Returns
ClassDecorator & MethodDecorator
UpdateFeatureFlagInput
Defined in: src/interfaces/feature-flag.interface.ts:12
Properties
description?
optional description?: string;Defined in: src/interfaces/feature-flag.interface.ts:13
enabled?
optional enabled?: boolean;Defined in: src/interfaces/feature-flag.interface.ts:14
metadata?
optional metadata?: Record<string, unknown>;Defined in: src/interfaces/feature-flag.interface.ts:16
percentage?
optional percentage?: number;Defined in: src/interfaces/feature-flag.interface.ts:15
UpdateOverrideInput
Defined in: src/interfaces/feature-flag-repository.interface.ts:12
Properties
enabled
enabled: boolean;Defined in: src/interfaces/feature-flag-repository.interface.ts:13
priority
priority: number;Defined in: src/interfaces/feature-flag-repository.interface.ts:14
Type Aliases
BucketBy
type BucketBy =
| "userId"
| "tenantId"
| "environment"
| "targetingKey"
| string & {
};Defined in: src/interfaces/evaluation-details.interface.ts:13
EvaluationReason
type EvaluationReason =
| "ARCHIVED"
| "OVERRIDE_MATCH"
| "PERCENTAGE_MATCH"
| "PERCENTAGE_MISS"
| "PERCENTAGE_NO_TARGETING_KEY"
| "GLOBAL"
| "FLAG_NOT_FOUND"
| "ERROR";Defined in: src/interfaces/evaluation-details.interface.ts:3
EvaluationSource
type EvaluationSource = "override" | "percentage" | "global" | "default";Defined in: src/interfaces/evaluation-details.interface.ts:1
FeatureFlagType
type FeatureFlagType = "release" | "experiment" | "ops" | "permission";Defined in: src/interfaces/flag-registry.interface.ts:3
FlagKey
type FlagKey<TFlags> = Extract<keyof TFlags, string>;Defined in: src/interfaces/flag-registry.interface.ts:21
Type Parameters
| Type Parameter |
|---|
TFlags extends FlagRegistry |
FlagLifecycleStatusName
type FlagLifecycleStatusName = "active" | "stale" | "expired";Defined in: src/flag-registry.ts:38
FlagRegistry
type FlagRegistry = Record<string, FlagDefinition>;Defined in: src/interfaces/flag-registry.interface.ts:20
TargetingAttributes
type TargetingAttributes = Record<string, TargetingAttributeValue>;Defined in: src/interfaces/feature-flag.interface.ts:2
TargetingAttributeValue
type TargetingAttributeValue = string | number | boolean | null;Defined in: src/interfaces/feature-flag.interface.ts:1
Variables
CACHE_ADAPTER
const CACHE_ADAPTER: typeof CACHE_ADAPTER;Defined in: src/feature-flag.constants.ts:9
FEATURE_FLAG_MODULE_OPTIONS
const FEATURE_FLAG_MODULE_OPTIONS: typeof FEATURE_FLAG_MODULE_OPTIONS;Defined in: src/feature-flag.constants.ts:1
FEATURE_FLAG_REPOSITORY
const FEATURE_FLAG_REPOSITORY: typeof FEATURE_FLAG_REPOSITORY;Defined in: src/feature-flag.constants.ts:10
FeatureFlagEvents
const FeatureFlagEvents: {
ARCHIVED: "feature-flag.archived";
CACHE_INVALIDATED: "feature-flag.cache.invalidated";
CREATED: "feature-flag.created";
EVALUATED: "feature-flag.evaluated";
EXPOSED: "feature-flag.exposed";
OVERRIDE_REMOVED: "feature-flag.override.removed";
OVERRIDE_SET: "feature-flag.override.set";
UPDATED: "feature-flag.updated";
};Defined in: src/events/feature-flag.events.ts:7
Type Declaration
| Name | Type | Default value | Defined in |
|---|---|---|---|
ARCHIVED | "feature-flag.archived" | 'feature-flag.archived' | src/events/feature-flag.events.ts:12 |
CACHE_INVALIDATED | "feature-flag.cache.invalidated" | 'feature-flag.cache.invalidated' | src/events/feature-flag.events.ts:15 |
CREATED | "feature-flag.created" | 'feature-flag.created' | src/events/feature-flag.events.ts:10 |
EVALUATED | "feature-flag.evaluated" | 'feature-flag.evaluated' | src/events/feature-flag.events.ts:8 |
EXPOSED | "feature-flag.exposed" | 'feature-flag.exposed' | src/events/feature-flag.events.ts:9 |
OVERRIDE_REMOVED | "feature-flag.override.removed" | 'feature-flag.override.removed' | src/events/feature-flag.events.ts:14 |
OVERRIDE_SET | "feature-flag.override.set" | 'feature-flag.override.set' | src/events/feature-flag.events.ts:13 |
UPDATED | "feature-flag.updated" | 'feature-flag.updated' | src/events/feature-flag.events.ts:11 |
TENANT_CONTEXT_PROVIDER
const TENANT_CONTEXT_PROVIDER: typeof TENANT_CONTEXT_PROVIDER;Defined in: src/feature-flag.constants.ts:11
Functions
BypassFeatureFlag()
function BypassFeatureFlag(): CustomDecorator<string>;Defined in: src/decorators/bypass-feature-flag.decorator.ts:4
Returns
CustomDecorator<string>
createFeatureFlagClient()
function createFeatureFlagClient<TFlags>(service, registry): TypedFeatureFlagClient<TFlags>;Defined in: src/flag-registry.ts:51
Type Parameters
| Type Parameter |
|---|
TFlags extends FlagRegistry |
Parameters
| Parameter | Type |
|---|---|
service | FeatureFlagService |
registry | TFlags |
Returns
TypedFeatureFlagClient<TFlags>
createFeatureFlagDecorators()
function createFeatureFlagDecorators<TFlags>(registry): TypedFeatureFlagDecorators<TFlags>;Defined in: src/flag-registry.ts:68
Type Parameters
| Type Parameter |
|---|
TFlags extends FlagRegistry |
Parameters
| Parameter | Type |
|---|---|
registry | TFlags |
Returns
TypedFeatureFlagDecorators<TFlags>
defineFlags()
function defineFlags<TFlags>(flags): TFlags;Defined in: src/flag-registry.ts:47
Type Parameters
| Type Parameter |
|---|
TFlags extends FlagRegistry |
Parameters
| Parameter | Type |
|---|---|
flags | TFlags |
Returns
TFlags
FeatureFlag()
function FeatureFlag(flagKey, options?): ClassDecorator & MethodDecorator;Defined in: src/decorators/feature-flag.decorator.ts:6
Parameters
| Parameter | Type |
|---|---|
flagKey | string |
options | FeatureFlagGuardOptions |
Returns
ClassDecorator & MethodDecorator
getFlagLifecycleStatus()
function getFlagLifecycleStatus(metadata, now?): FlagLifecycleStatus;Defined in: src/flag-registry.ts:80
Parameters
| Parameter | Type |
|---|---|
metadata | FeatureFlagLifecycleMetadata |
now | Date |