tweek-client v3.2.5
Tweek Client for JavaScript
Basic usage
Install the package
npm install --save tweek-client
TweekClient
Create a client
createTweekClient(config: CreateTweekClientConfig): TweekClient
use this method to create a tweek client
const tweekClient = createTweekClient({
baseServiceUrl: 'https://mydomain',
});
the config object accepts these properties:
Prop | Description | Type | Default |
---|---|---|---|
baseServiceUrl | Required - the url for tweek gateway | string | |
context | the context to add to anu request | object | |
useLegacyEndpoint | if set to true, will use v1 version of the api | boolean | false |
fetch | a fetch client to use to make the requests | (RequestInfo, RequestInit) => Promise<Response> | cross-fetch |
requestTimeoutInMillis | request timeout in ms | number | 8000 |
onError | callback to be called for request errors | (Error) => void | |
getAuthenticationToken | a function that returns a token for jwt authentication | () => Promise<string> \| string | |
clientId | client id for basic auth authentication | string | |
clientSecret | client secret for basic auth authentication | string |
Query your configuration key and get value
tweekClient.getValues<T>(keyPath: string, config?: GetValuesConfig): Promise<T>
const myConfiguration = await tweekClient.getValues('some_key/path');
the config object accepts these properties:
Prop | Description | Type | Default |
---|---|---|---|
include | the keys to include in the request, used to filter scan keys | string[] | |
context | override the client context | object | |
flatten | if set to true the response will be in the format of a { keyPath: value } | boolean | false |
ignoreKeyTypes | if set to true, all the key types will be ignored and returned as strings | boolean | false |
maxChunkSize | if the include section has a lot of entries, it will split the request into multiple chunks | number | 100 |
Query configuration with key value error details
only supported on api versions 1.0-rc3 and above
tweekClient.getValuesWithDetails<T>(path: string, config?: GetValuesConfig) : Promise<DetailedTweekResult<T>>
const myDetaildConfig = await tweekClient.getValuesWithDetails('some_key/path');
the config object has the same properties as getValues
TweekManagementClient
Create a client
createTweekManagementClient(config: CreateTweekManagementClientConfig): TweekManagementClient
use this method to create a tweek management client
const tweekManagementClient = createTweekManagementClient({
baseServiceUrl: 'https://mydomain',
});
the config object accepts these properties:
Prop | Description | Type | Default |
---|---|---|---|
baseServiceUrl | Required - the url for tweek gateway | string | |
fetch | a fetch client to use to make the requests | (RequestInfo, RequestInit) => Promise<Response> | cross-fetch |
requestTimeoutInMillis | request timeout in ms | number | 8000 |
onError | callback to be called for request errors | (Error) => void | |
getAuthenticationToken | a function that returns a token for jwt authentication | () => Promise<string> \| string | |
clientId | client id for basic auth authentication | string | |
clientSecret | client secret for basic auth authentication | string |
Updating Context
const myContext = {
age: 23,
};
await tweekManagementClient.appendContext('user', '123456', myContext);
Using Authentication
Example:
function getAuthenticationToken() {
return 'jwt token';
}
const tweekClient = createTweekClient({
baseServiceUrl: 'https://mydomain',
getAuthenticationToken,
});
getAuthenticationToken
can also return a promise
function getAuthenticationToken() {
return Promise.resolve('jwt token');
}
const tweekClient = createTweekClient({
baseServiceUrl: 'https://mydomain',
getAuthenticationToken,
});
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago