@statsig/client-core
Advanced tools
Comparing version 3.10.0 to 3.11.0
{ | ||
"name": "@statsig/client-core", | ||
"version": "3.10.0", | ||
"version": "3.11.0", | ||
"dependencies": {}, | ||
@@ -5,0 +5,0 @@ "type": "commonjs", |
@@ -19,2 +19,3 @@ /** Statsig Global should go first */ | ||
export * from './Log'; | ||
export * from './MemoKey'; | ||
export * from './NetworkConfig'; | ||
@@ -45,2 +46,3 @@ export * from './NetworkCore'; | ||
export * from './StatsigUpdateDetails'; | ||
export { EventLogger, Storage, Log, Diagnostics }; | ||
export * from './SDKFlags'; | ||
export { Diagnostics, EventLogger, Log, Storage }; |
@@ -17,3 +17,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Diagnostics = exports.Log = exports.Storage = exports.EventLogger = void 0; | ||
exports.Storage = exports.Log = exports.EventLogger = exports.Diagnostics = void 0; | ||
/** Statsig Global should go first */ | ||
@@ -42,2 +42,3 @@ require("./$_StatsigGlobal"); | ||
__exportStar(require("./Log"), exports); | ||
__exportStar(require("./MemoKey"), exports); | ||
__exportStar(require("./NetworkConfig"), exports); | ||
@@ -68,3 +69,4 @@ __exportStar(require("./NetworkCore"), exports); | ||
__exportStar(require("./StatsigUpdateDetails"), exports); | ||
__exportStar(require("./SDKFlags"), exports); | ||
__STATSIG__ = Object.assign(Object.assign({}, (__STATSIG__ !== null && __STATSIG__ !== void 0 ? __STATSIG__ : {})), { Log: Log_1.Log, | ||
SDK_VERSION: StatsigMetadata_1.SDK_VERSION }); |
@@ -24,2 +24,3 @@ import { DynamicConfigEvaluation, GateEvaluation, LayerEvaluation } from './EvaluationTypes'; | ||
sdkInfo?: Record<string, string>; | ||
sdk_flags?: Record<string, boolean>; | ||
}; | ||
@@ -26,0 +27,0 @@ export type InitializeResponse = InitializeResponseWithUpdates | { |
import { AnyEvaluationOptions } from './EvaluationOptions'; | ||
export declare function createMemoKey(name: string, options?: AnyEvaluationOptions): string | undefined; | ||
export declare const MemoPrefix: { | ||
readonly _gate: "g"; | ||
readonly _dynamicConfig: "c"; | ||
readonly _experiment: "e"; | ||
readonly _layer: "l"; | ||
readonly _paramStore: "p"; | ||
}; | ||
export type MemoPrefix = (typeof MemoPrefix)[keyof typeof MemoPrefix]; | ||
export declare function createMemoKey(prefix: MemoPrefix, name: string, options?: AnyEvaluationOptions): string | undefined; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.createMemoKey = void 0; | ||
exports.createMemoKey = exports.MemoPrefix = void 0; | ||
exports.MemoPrefix = { | ||
_gate: 'g', | ||
_dynamicConfig: 'c', | ||
_experiment: 'e', | ||
_layer: 'l', | ||
_paramStore: 'p', | ||
}; | ||
const EXIST_KEYS = new Set([ | ||
@@ -11,4 +18,4 @@ // Add keys that should be memoized based only on their existence, not their value | ||
]); | ||
function createMemoKey(name, options) { | ||
let cacheKey = name; | ||
function createMemoKey(prefix, name, options) { | ||
let cacheKey = `${prefix}|${name}`; | ||
if (!options) { | ||
@@ -22,6 +29,6 @@ return cacheKey; | ||
if (EXIST_KEYS.has(key)) { | ||
cacheKey += `${key}=true`; | ||
cacheKey += `|${key}=true`; | ||
} | ||
else { | ||
cacheKey += `${key}=${options[key]}`; | ||
cacheKey += `|${key}=${options[key]}`; | ||
} | ||
@@ -28,0 +35,0 @@ } |
@@ -5,2 +5,3 @@ import './$_StatsigGlobal'; | ||
import { EventLogger } from './EventLogger'; | ||
import { MemoPrefix } from './MemoKey'; | ||
import { NetworkCore } from './NetworkCore'; | ||
@@ -72,4 +73,4 @@ import { OverrideAdapter } from './OverrideAdapter'; | ||
protected _enqueueExposure(name: string, exposure: StatsigEventInternal, options?: EvaluationOptionsCommon): void; | ||
protected _memoize<T, O extends AnyEvaluationOptions>(fn: (name: string, options?: O) => T): (name: string, options?: O) => T; | ||
protected _memoize<T, O extends AnyEvaluationOptions>(prefix: MemoPrefix, fn: (name: string, options?: O) => T): (name: string, options?: O) => T; | ||
protected abstract _primeReadyRipcord(): void; | ||
} |
@@ -150,5 +150,8 @@ "use strict"; | ||
} | ||
_memoize(fn) { | ||
_memoize(prefix, fn) { | ||
return (name, options) => { | ||
const memoKey = (0, MemoKey_1.createMemoKey)(name, options); | ||
if (this._options.disableEvaluationMemoization) { | ||
return fn(name, options); | ||
} | ||
const memoKey = (0, MemoKey_1.createMemoKey)(prefix, name, options); | ||
if (!memoKey) { | ||
@@ -155,0 +158,0 @@ return fn(name, options); |
@@ -1,2 +0,2 @@ | ||
export declare const SDK_VERSION = "3.10.0"; | ||
export declare const SDK_VERSION = "3.11.0"; | ||
export type StatsigMetadata = { | ||
@@ -3,0 +3,0 @@ readonly [key: string]: string | undefined; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.StatsigMetadataProvider = exports.SDK_VERSION = void 0; | ||
exports.SDK_VERSION = '3.10.0'; | ||
exports.SDK_VERSION = '3.11.0'; | ||
let metadata = { | ||
@@ -6,0 +6,0 @@ sdkVersion: exports.SDK_VERSION, |
@@ -124,2 +124,8 @@ import { LogLevel } from './Log'; | ||
storageProvider?: StorageProvider; | ||
/** | ||
* Disables all memoization of the core evaluation functions. | ||
* | ||
* default: `false` | ||
*/ | ||
disableEvaluationMemoization?: boolean; | ||
}; | ||
@@ -126,0 +132,0 @@ export type AnyStatsigOptions = StatsigOptionsCommon<NetworkConfigCommon>; |
155418
87
3739