JavaScript
Getting Started
If still not registered, sign up and create an account at https://koople.io.
1. Install and import package
Refer to the NPM release page to identify the latest version.
2. Initialize the SDK
3. Get your values
Customize the SDK
You can set custom parameters to the client by creating a custom configuration object:
Storage
Use storage
to keep your evaluation object response in the cache. When the request fails, the SDK try automatically to get the latest valid evaluation object from storage.
Boot run
UsebootRun
to provide an initial evaluation object for the SDK.
Fallback
Use fallback
to provide a default evaluation object for the SDK. When the request fails, and the storage is empty, the fallback will be returned. If the SDK has already initialized successfully, the fallback will not take effect.
Alternatively, you can provide your fallback from storage
. This means that in case of failure, the last valid server configuration will be returned.
Timeout
The number of milliseconds the SDK waits for a response from the Koople servers before returning the evaluation object from the storage or fallback.
Timeout is more useful when combines with fallback. The minimum value timeout is 50 milliseconds. If the value is less than 50 it will be ignored and automatically set to 50. If you want less than 50 milliseconds, then see bootRun
.
Polling interval
You can configure your SDK to update the evaluation object every pollingInterval
seconds automatically. You will receive the changes in the subscription to onChanges
.
The minimum value is 1
second. If the value is less than 1
it will be ignored and automatically set to 1
.
Events
onReady
The SDK will raise the ready event when the SDK is initialized.
The initialization will depend on the SDK configuration. If you have configured the bootRun
parameter as storage
, the initialization will be immediate. Else it will take until the server responds.
You can subscribe to the ready event before or after the SDK initialization, in both cases, the callback will be executed.
onIdentified
The SDK will raise the identified event when you call to identify
method.
onChanges
While the ready and identified events are fired only once, changes will be fired every time the evaluation object is updated, including the times ready and identified events are fired.
Changes event can cause that, if the evaluation object changes, the page will be repainted or cause UI flickering.
In some cases, you can use changes event as a mechanism to ask the user if wants to apply changes or reload the page.
Methods
releaseToggles
The releaseToggles
method will return a map of release toggles with its settings.
isEnabled
The isEnabled
method will return a boolean indicating whether a release toggle is enabled or disabled.
remoteConfigs
The remoteConfigs
method will return a map of remote configs with its settings.
valueOf
The valueOf method will return a value for a remote config. You can pass an optional second parameter used as a fallback if there is no value.
evaluation
The evaluation
method will return an evaluation object.
identify
The identify method provides a mechanism to update your evaluation object when the user has changed. It's the typical login scenario when a user goes from being anonymous to an authenticated user.
Changes will be listened from onIdentified
and onChanges
.
refresh
The refresh method provides a mechanism to update your evaluation object manually. It is manual polling.
Changes can be listened from onChanges
.
User object
// TODO ...
Evaluation object
Each request to the server will have an evaluation object as a response. Also, fallback
parameter is an evaluation object. You can retrieve the current evaluation object using evaluation
method.
Anatomy
A valid evaluation object should contain these fields:
Example
Last updated