@featurevisor/sdk
Version:
Featurevisor SDK for Node.js and the browser
31 lines (30 loc) • 1.14 kB
TypeScript
import { Feature, BucketKey, BucketValue, Context } from "@featurevisor/types";
import { Logger } from "./logger";
export declare const MAX_BUCKETED_NUMBER = 100000;
export declare function getBucketedNumber(bucketKey: string): number;
/**
* Feature specific bucketing
*/
export type ConfigureBucketKey = (feature: Feature, context: Context, bucketKey: BucketKey) => BucketKey;
export interface BucketKeyOptions {
feature: Feature;
context: Context;
logger: Logger;
bucketKeySeparator?: string;
configureBucketKey?: ConfigureBucketKey;
}
export declare function getBucketKey(options: BucketKeyOptions): BucketKey;
export interface Bucket {
bucketKey: BucketKey;
bucketValue: BucketValue;
}
export type ConfigureBucketValue = (feature: Feature, context: Context, bucketValue: BucketValue) => BucketValue;
export interface BucketValueOptions {
feature: Feature;
context: Context;
logger: Logger;
bucketKeySeparator?: string;
configureBucketKey?: ConfigureBucketKey;
configureBucketValue?: ConfigureBucketValue;
}
export declare function getBucket(options: BucketValueOptions): Bucket;