Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit 3277434

Browse files
committed
WIP: implement createUserWrapper
1 parent 5a9c064 commit 3277434

File tree

5 files changed

+680
-0
lines changed

5 files changed

+680
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/// <reference path="../../js-web-sdk/src/OptimizelySDK.d.ts" />
2+
import { OptimizelySDKWrapper } from '@optimizely/js-web-sdk';
3+
declare type UserAttributes = {
4+
[attribute: string]: any;
5+
};
6+
declare type EventTags = {
7+
[tagKey: string]: boolean | number | string;
8+
};
9+
/**
10+
* Wrapper to memoize the userId / userAttributes around an OptimizelySDKWrapper instance
11+
*
12+
* @param {{
13+
* instance: OptimizelySDKWrapper
14+
* userId: string
15+
* attributes?: UserAttributes
16+
* }} {
17+
* instance,
18+
* userId,
19+
* attributes,
20+
* }
21+
* @returns
22+
*/
23+
export declare function createWrapper({ instance, userId, userAttributes, }: {
24+
instance: OptimizelySDKWrapper;
25+
userId: string;
26+
userAttributes?: UserAttributes;
27+
}): {
28+
activate(experimentKey: string, overrideUserId?: string | undefined, overrideAttributes?: UserAttributes | undefined): string | null;
29+
getVariation(experimentKey: string, overrideUserId?: string | undefined, overrideAttributes?: UserAttributes | undefined): string | null;
30+
getFeatureVariables(featureKey: string, overrideUserId?: string | undefined, overrideAttributes?: UserAttributes | undefined): import("@optimizely/js-web-sdk/lib/Datafile").VariableValuesObject;
31+
getFeatureVariableInteger(featureKey: string, variableKey: string, overrideUserId?: string | undefined, overrideAttributes?: UserAttributes | undefined): number | null;
32+
getFeatureVariableString(featureKey: string, variableKey: string, overrideUserId?: string | undefined, overrideAttributes?: UserAttributes | undefined): string | null;
33+
getFeatureVariableBoolean(featureKey: string, variableKey: string, overrideUserId?: string | undefined, overrideAttributes?: UserAttributes | undefined): boolean | null;
34+
getFeatureVariableDouble(featureKey: string, variableKey: string, overrideUserId?: string | undefined, overrideAttributes?: UserAttributes | undefined): number | null;
35+
isFeatureEnabled(featureKey: string, overrideUserId?: string | undefined, overrideAttributes?: UserAttributes | undefined): boolean;
36+
track(eventKey: string, overrideUserId?: string | EventTags | undefined, overrideAttributes?: UserAttributes | undefined, eventTags?: EventTags | undefined): void;
37+
instance: import("@optimizely/optimizely-sdk").Client;
38+
isInitialized: boolean;
39+
datafile: import("@optimizely/js-web-sdk/lib/Datafile").OptimizelyDatafile | null;
40+
};
41+
export {};
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/// <reference path="../../js-web-sdk/src/OptimizelySDK.d.ts" />
2+
import { OptimizelySDKWrapper } from '@optimizely/js-web-sdk';
3+
declare type UserAttributes = {
4+
[attribute: string]: any;
5+
};
6+
declare type EventTags = {
7+
[tagKey: string]: boolean | number | string;
8+
};
9+
/**
10+
* Wrapper to memoize the userId / userAttributes around an OptimizelySDKWrapper instance
11+
*
12+
* @param {{
13+
* instance: OptimizelySDKWrapper
14+
* userId: string
15+
* attributes?: UserAttributes
16+
* }} {
17+
* instance,
18+
* userId,
19+
* attributes,
20+
* }
21+
* @returns
22+
*/
23+
export declare function createUserWrapper({ instance, userId, userAttributes, }: {
24+
instance: OptimizelySDKWrapper;
25+
userId: string;
26+
userAttributes?: UserAttributes;
27+
}): {
28+
activate(experimentKey: string, overrideUserId?: string | undefined, overrideAttributes?: UserAttributes | undefined): string | null;
29+
getVariation(experimentKey: string, overrideUserId?: string | undefined, overrideAttributes?: UserAttributes | undefined): string | null;
30+
getFeatureVariables(featureKey: string, overrideUserId?: string | undefined, overrideAttributes?: UserAttributes | undefined): import("@optimizely/js-web-sdk/lib/Datafile").VariableValuesObject;
31+
getFeatureVariableInteger(featureKey: string, variableKey: string, overrideUserId?: string | undefined, overrideAttributes?: UserAttributes | undefined): number | null;
32+
getFeatureVariableString(featureKey: string, variableKey: string, overrideUserId?: string | undefined, overrideAttributes?: UserAttributes | undefined): string | null;
33+
getFeatureVariableBoolean(featureKey: string, variableKey: string, overrideUserId?: string | undefined, overrideAttributes?: UserAttributes | undefined): boolean | null;
34+
getFeatureVariableDouble(featureKey: string, variableKey: string, overrideUserId?: string | undefined, overrideAttributes?: UserAttributes | undefined): number | null;
35+
isFeatureEnabled(featureKey: string, overrideUserId?: string | undefined, overrideAttributes?: UserAttributes | undefined): boolean;
36+
track(eventKey: string, overrideUserId?: string | EventTags | undefined, overrideAttributes?: UserAttributes | undefined, eventTags?: EventTags | undefined): void;
37+
instance: import("@optimizely/optimizely-sdk").Client;
38+
isInitialized: boolean;
39+
datafile: import("@optimizely/js-web-sdk/lib/Datafile").OptimizelyDatafile | null;
40+
};
41+
export {};

0 commit comments

Comments
 (0)