Skip to content

Commit 78a1fa2

Browse files
authored
feat: getExperimentContainerEntry a helper function for CMS app integration (#97)
feat: getExperimentContainerEntry helper function for CMS app integration
1 parent 1702711 commit 78a1fa2

File tree

6 files changed

+31
-6
lines changed

6 files changed

+31
-6
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [@eppo/js-client-sdk](./js-client-sdk.md) &gt; [IClientConfig](./js-client-sdk.iclientconfig.md) &gt; [forceReinitialize](./js-client-sdk.iclientconfig.forcereinitialize.md)
4+
5+
## IClientConfig.forceReinitialize property
6+
7+
Force reinitialize the SDK if it is already initialized.
8+
9+
**Signature:**
10+
11+
```typescript
12+
forceReinitialize?: boolean;
13+
```

docs/js-client-sdk.iclientconfig.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export interface IClientConfig
1919
| [apiKey](./js-client-sdk.iclientconfig.apikey.md) | | string | Eppo API key |
2020
| [assignmentLogger](./js-client-sdk.iclientconfig.assignmentlogger.md) | | IAssignmentLogger | Pass a logging implementation to send variation assignments to your data warehouse. |
2121
| [baseUrl?](./js-client-sdk.iclientconfig.baseurl.md) | | string | _(Optional)_ Base URL of the Eppo API. Clients should use the default setting in most cases. |
22+
| [forceReinitialize?](./js-client-sdk.iclientconfig.forcereinitialize.md) | | boolean | _(Optional)_ Force reinitialize the SDK if it is already initialized. |
2223
| [maxCacheAgeSeconds?](./js-client-sdk.iclientconfig.maxcacheageseconds.md) | | number | _(Optional)_ Maximum age, in seconds, previously cached values are considered valid until new values will be fetched (default: 0) |
2324
| [numInitialRequestRetries?](./js-client-sdk.iclientconfig.numinitialrequestretries.md) | | number | _(Optional)_ Number of additional times the initial configuration request will be attempted if it fails. This is the request typically synchronously waited (via await) for completion. A small wait will be done between requests. (Default: 1) |
2425
| [numPollRequestRetries?](./js-client-sdk.iclientconfig.numpollrequestretries.md) | | number | _(Optional)_ Number of additional times polling for updated configurations will be attempted before giving up. Polling is done after a successful initial request. Subsequent attempts are done using an exponential backoff. (Default: 7) |

js-client-sdk.api.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ export interface IClientConfig {
9292
apiKey: string;
9393
assignmentLogger: IAssignmentLogger;
9494
baseUrl?: string;
95+
forceReinitialize?: boolean;
9596
maxCacheAgeSeconds?: number;
9697
numInitialRequestRetries?: number;
9798
numPollRequestRetries?: number;

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@eppo/js-client-sdk",
3-
"version": "3.5.0",
3+
"version": "3.6.0",
44
"description": "Eppo SDK for client-side JavaScript applications",
55
"main": "dist/index.js",
66
"files": [
@@ -59,6 +59,6 @@
5959
"webpack-cli": "^4.10.0"
6060
},
6161
"dependencies": {
62-
"@eppo/js-client-sdk-common": "4.0.0"
62+
"@eppo/js-client-sdk-common": "4.2.0"
6363
}
6464
}

src/index.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
IAssignmentDetails,
1313
BanditActions,
1414
BanditSubjectAttributes,
15+
IContainerExperiment,
1516
} from '@eppo/js-client-sdk-common';
1617

1718
import { assignmentCacheFactory } from './cache/assignment-cache-factory';
@@ -303,6 +304,15 @@ export class EppoJSClient extends EppoClient {
303304
);
304305
}
305306

307+
public getExperimentContainerEntry<T>(
308+
flagExperiment: IContainerExperiment<T>,
309+
subjectKey: string,
310+
subjectAttributes: Record<string, AttributeType>,
311+
): T {
312+
EppoJSClient.getAssignmentInitializationCheck();
313+
return super.getExperimentContainerEntry(flagExperiment, subjectKey, subjectAttributes);
314+
}
315+
306316
private static getAssignmentInitializationCheck() {
307317
if (!EppoJSClient.initialized) {
308318
applicationLogger.warn('Eppo SDK assignment requested before init() completed');

yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -380,10 +380,10 @@
380380
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70"
381381
integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==
382382

383-
"@eppo/js-client-sdk-common@4.0.0":
384-
version "4.0.0"
385-
resolved "https://registry.yarnpkg.com/@eppo/js-client-sdk-common/-/js-client-sdk-common-4.0.0.tgz#39dea02745b641915fa4e925d75a12ca5b1e9503"
386-
integrity sha512-aMru8KESyNJDU/fm5jVENUhpa1jB88FUncT/xnjgiWPuTLLrpi10Qshoj7Lloi8IjlwFSFMjDjtpuQoLKPpQXA==
383+
"@eppo/js-client-sdk-common@4.2.0":
384+
version "4.2.0"
385+
resolved "https://registry.yarnpkg.com/@eppo/js-client-sdk-common/-/js-client-sdk-common-4.2.0.tgz#713910bf7c5291300d48b408bced995ae00e2834"
386+
integrity sha512-DzT3q1jwpb8yEgKLtPzCxaW6X+rUmYuX5jnGqPzLM2WDlfZ0rkUdDqBt9lzw76DkSZu+C7dpzHcH9EnWuDms8w==
387387
dependencies:
388388
js-base64 "^3.7.7"
389389
md5 "^2.3.0"

0 commit comments

Comments
 (0)