@featurevisor/sdk 0.19.0 → 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,28 +1,30 @@
1
1
  import {
2
2
  Attributes,
3
- VariationValue,
4
- VariableValue,
5
- Feature,
6
- DatafileContent,
7
3
  BucketKey,
8
4
  BucketValue,
5
+ DatafileContent,
6
+ Feature,
9
7
  FeatureKey,
10
- VariationType,
11
- VariableType,
12
- StickyFeatures,
13
8
  InitialFeatures,
9
+ StickyFeatures,
10
+ VariableType,
11
+ VariableValue,
12
+ VariationType,
13
+ VariationValue,
14
14
  } from "@featurevisor/types";
15
+
16
+ import { createLogger, Logger } from "./logger";
15
17
  import { DatafileReader } from "./datafileReader";
18
+ import { Emitter } from "./emitter";
19
+ import { getBucketedNumber } from "./bucket";
16
20
  import {
17
21
  getBucketedVariation,
18
22
  getBucketedVariableValue,
19
23
  getForcedVariation,
20
24
  getForcedVariableValue,
21
25
  } from "./feature";
22
- import { getBucketedNumber } from "./bucket";
23
- import { createLogger, Logger } from "./logger";
24
- import { Emitter } from "./emitter";
25
- import { Statuses } from "./statuses";
26
+
27
+ export type ReadyCallback = () => void;
26
28
 
27
29
  export type ActivationCallback = (
28
30
  featureName: string,
@@ -33,17 +35,46 @@ export type ActivationCallback = (
33
35
 
34
36
  export type ConfigureBucketValue = (feature, attributes, bucketValue: BucketValue) => BucketValue;
35
37
 
36
- export interface SdkOptions {
37
- datafile: DatafileContent | string;
38
- onActivation?: ActivationCallback; // @TODO: move it to FeaturevisorInstance in next breaking semver
38
+ export interface Statuses {
39
+ ready: boolean;
40
+ refreshInProgress: boolean;
41
+ }
42
+
43
+ export interface InstanceOptions {
39
44
  configureBucketValue?: ConfigureBucketValue;
40
- logger?: Logger; // @TODO: keep it in FeaturevisorInstance only in next breaking semver
41
- emitter?: Emitter; // @TODO: keep it in FeaturevisorInstance only in next breaking semver
42
- interceptAttributes?: (attributes: Attributes) => Attributes; // @TODO: move it to FeaturevisorInstance in next breaking semver
43
- stickyFeatures?: StickyFeatures;
45
+ datafile?: DatafileContent | string;
46
+ datafileUrl?: string;
47
+ handleDatafileFetch?: (datafileUrl: string) => Promise<DatafileContent>;
44
48
  initialFeatures?: InitialFeatures;
45
- statuses?: Statuses;
46
- fromInstance?: boolean;
49
+ interceptAttributes?: (attributes: Attributes) => Attributes;
50
+ logger?: Logger;
51
+ onActivation?: ActivationCallback;
52
+ onReady?: ReadyCallback;
53
+ onRefresh?: () => void;
54
+ onUpdate?: () => void;
55
+ refreshInterval?: number; // seconds
56
+ stickyFeatures?: StickyFeatures;
57
+ }
58
+
59
+ const emptyDatafile: DatafileContent = {
60
+ schemaVersion: "1",
61
+ revision: "unknown",
62
+ attributes: [],
63
+ segments: [],
64
+ features: [],
65
+ };
66
+
67
+ export type DatafileFetchHandler = (datafileUrl: string) => Promise<DatafileContent>;
68
+
69
+ function fetchDatafileContent(
70
+ datafileUrl,
71
+ handleDatafileFetch?: DatafileFetchHandler,
72
+ ): Promise<DatafileContent> {
73
+ if (handleDatafileFetch) {
74
+ return handleDatafileFetch(datafileUrl);
75
+ }
76
+
77
+ return fetch(datafileUrl).then((res) => res.json());
47
78
  }
48
79
 
49
80
  type FieldType = VariationType | VariableType;
@@ -73,54 +104,106 @@ export function getValueByType(value: ValueType, fieldType: FieldType): ValueTyp
73
104
  }
74
105
  }
75
106
 
76
- // @TODO: change it to FeaturevisorEngine in next breaking semver
77
- // @TODO: move activate*() methods to FeaturevisorInstance in next breaking semver
78
- export class FeaturevisorSDK {
79
- private onActivation?: ActivationCallback;
80
- private datafileReader: DatafileReader;
107
+ export class FeaturevisorInstance {
108
+ // from options
81
109
  private configureBucketValue?: ConfigureBucketValue;
82
- private logger: Logger;
83
- private emitter?: Emitter;
110
+ private datafileUrl?: string;
111
+ private handleDatafileFetch?: DatafileFetchHandler;
112
+ private initialFeatures?: InitialFeatures;
84
113
  private interceptAttributes?: (attributes: Attributes) => Attributes;
114
+ private logger: Logger;
115
+ private refreshInterval?: number; // seconds
85
116
  private stickyFeatures?: StickyFeatures;
86
- private initialFeatures?: InitialFeatures;
87
- private statuses?: Statuses;
88
- private fromInstance: boolean;
89
117
 
90
- constructor(options: SdkOptions) {
91
- if (options.onActivation) {
92
- this.onActivation = options.onActivation;
118
+ // internally created
119
+ private datafileReader: DatafileReader;
120
+ private emitter: Emitter;
121
+ private statuses: Statuses;
122
+ private intervalId?: ReturnType<typeof setInterval>;
123
+
124
+ // exposed from emitter
125
+ public on: Emitter["addListener"];
126
+ public addListener: Emitter["addListener"];
127
+ public off: Emitter["removeListener"];
128
+ public removeListener: Emitter["removeListener"];
129
+ public removeAllListeners: Emitter["removeAllListeners"];
130
+
131
+ constructor(options: InstanceOptions) {
132
+ // from options
133
+ this.configureBucketValue = options.configureBucketValue;
134
+ this.datafileUrl = options.datafileUrl;
135
+ this.handleDatafileFetch = options.handleDatafileFetch;
136
+ this.initialFeatures = options.initialFeatures;
137
+ this.interceptAttributes = options.interceptAttributes;
138
+ this.logger = options.logger || createLogger();
139
+ this.refreshInterval = options.refreshInterval;
140
+ this.stickyFeatures = options.stickyFeatures;
141
+
142
+ // internal
143
+ this.emitter = new Emitter();
144
+ this.statuses = {
145
+ ready: false,
146
+ refreshInProgress: false,
147
+ };
148
+
149
+ // register events
150
+ if (options.onReady) {
151
+ this.emitter.addListener("ready", options.onReady);
93
152
  }
94
153
 
95
- if (options.configureBucketValue) {
96
- this.configureBucketValue = options.configureBucketValue;
154
+ if (options.onRefresh) {
155
+ this.emitter.addListener("refresh", options.onRefresh);
97
156
  }
98
157
 
99
- this.logger = options.logger || createLogger();
100
-
101
- if (options.interceptAttributes) {
102
- this.interceptAttributes = options.interceptAttributes;
158
+ if (options.onUpdate) {
159
+ this.emitter.addListener("update", options.onUpdate);
103
160
  }
104
161
 
105
- if (options.emitter) {
106
- this.emitter = options.emitter;
162
+ if (options.onActivation) {
163
+ this.emitter.addListener("activation", options.onActivation);
107
164
  }
108
165
 
109
- if (options.stickyFeatures) {
110
- this.stickyFeatures = options.stickyFeatures;
111
- }
166
+ // expose emitter methods
167
+ const on = this.emitter.addListener.bind(this.emitter);
168
+ this.on = on;
169
+ this.addListener = on;
112
170
 
113
- if (options.initialFeatures) {
114
- this.initialFeatures = options.initialFeatures;
115
- }
171
+ const off = this.emitter.removeListener.bind(this.emitter);
172
+ this.off = off;
173
+ this.removeListener = off;
116
174
 
117
- if (options.statuses) {
118
- this.statuses = options.statuses;
119
- }
175
+ this.removeAllListeners = this.emitter.removeAllListeners.bind(this.emitter);
176
+
177
+ // datafile
178
+ if (options.datafileUrl) {
179
+ this.setDatafile(options.datafile || emptyDatafile);
120
180
 
121
- this.setDatafile(options.datafile);
181
+ fetchDatafileContent(options.datafileUrl, options.handleDatafileFetch)
182
+ .then((datafile) => {
183
+ this.setDatafile(datafile);
122
184
 
123
- this.fromInstance = options.fromInstance || false;
185
+ this.statuses.ready = true;
186
+ this.emitter.emit("ready");
187
+
188
+ if (this.refreshInterval) {
189
+ this.startRefreshing();
190
+ }
191
+ })
192
+ .catch((e) => {
193
+ this.logger.error("failed to fetch datafile", { error: e });
194
+ });
195
+ } else if (options.datafile) {
196
+ this.setDatafile(options.datafile);
197
+ this.statuses.ready = true;
198
+
199
+ setTimeout(() => {
200
+ this.emitter.emit("ready");
201
+ }, 0);
202
+ } else {
203
+ throw new Error(
204
+ "Featurevisor SDK instance cannot be created without both `datafile` and `datafileUrl` options",
205
+ );
206
+ }
124
207
  }
125
208
 
126
209
  setDatafile(datafile: DatafileContent | string) {
@@ -148,9 +231,80 @@ export class FeaturevisorSDK {
148
231
  }
149
232
 
150
233
  /**
151
- * Bucketing
234
+ * Statuses
235
+ */
236
+ isReady(): boolean {
237
+ return this.statuses.ready;
238
+ }
239
+
240
+ /**
241
+ * Refresh
152
242
  */
243
+ refresh() {
244
+ this.logger.debug("refreshing datafile");
153
245
 
246
+ if (this.statuses.refreshInProgress) {
247
+ return this.logger.warn("refresh in progress, skipping");
248
+ }
249
+
250
+ if (!this.datafileUrl) {
251
+ return this.logger.error("cannot refresh since `datafileUrl` is not provided");
252
+ }
253
+
254
+ this.statuses.refreshInProgress = true;
255
+
256
+ fetchDatafileContent(this.datafileUrl, this.handleDatafileFetch)
257
+ .then((datafile) => {
258
+ const currentRevision = this.getRevision();
259
+ const newRevision = datafile.revision;
260
+ const isNotSameRevision = currentRevision !== newRevision;
261
+
262
+ this.setDatafile(datafile);
263
+ this.logger.info("refreshed datafile");
264
+
265
+ this.emitter.emit("refresh");
266
+
267
+ if (isNotSameRevision) {
268
+ this.emitter.emit("update");
269
+ }
270
+
271
+ this.statuses.refreshInProgress = false;
272
+ })
273
+ .catch((e) => {
274
+ this.logger.error("failed to refresh datafile", { error: e });
275
+ this.statuses.refreshInProgress = false;
276
+ });
277
+ }
278
+
279
+ startRefreshing() {
280
+ if (!this.datafileUrl) {
281
+ return this.logger.error("cannot start refreshing since `datafileUrl` is not provided");
282
+ }
283
+
284
+ if (this.intervalId) {
285
+ return this.logger.warn("refreshing has already started");
286
+ }
287
+
288
+ if (!this.refreshInterval) {
289
+ return this.logger.warn("no `refreshInterval` option provided");
290
+ }
291
+
292
+ this.intervalId = setInterval(() => {
293
+ this.refresh();
294
+ }, this.refreshInterval * 1000);
295
+ }
296
+
297
+ stopRefreshing() {
298
+ if (!this.intervalId) {
299
+ return this.logger.warn("refreshing has not started yet");
300
+ }
301
+
302
+ clearInterval(this.intervalId);
303
+ }
304
+
305
+ /**
306
+ * Bucketing
307
+ */
154
308
  private getBucketKey(feature: Feature, attributes: Attributes): BucketKey {
155
309
  const featureKey = feature.key;
156
310
 
@@ -328,19 +482,13 @@ export class FeaturevisorSDK {
328
482
  }
329
483
  });
330
484
 
331
- if (this.emitter) {
332
- this.emitter.emit(
333
- "activation",
334
- featureKey,
335
- variationValue,
336
- finalAttributes,
337
- captureAttributes,
338
- );
339
- }
340
-
341
- if (this.fromInstance && this.onActivation) {
342
- this.onActivation(featureKey, variationValue, finalAttributes, captureAttributes);
343
- }
485
+ this.emitter.emit(
486
+ "activation",
487
+ featureKey,
488
+ variationValue,
489
+ finalAttributes,
490
+ captureAttributes,
491
+ );
344
492
 
345
493
  return variationValue;
346
494
  } catch (e) {
@@ -540,3 +688,7 @@ export class FeaturevisorSDK {
540
688
  return getValueByType(variableValue, "json") as T | undefined;
541
689
  }
542
690
  }
691
+
692
+ export function createInstance(options: InstanceOptions): FeaturevisorInstance {
693
+ return new FeaturevisorInstance(options);
694
+ }
package/lib/client.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -1,58 +0,0 @@
1
- import { DatafileContent, Attributes, StickyFeatures, InitialFeatures } from "@featurevisor/types";
2
- import { FeaturevisorSDK, ConfigureBucketValue, ActivationCallback } from "./client";
3
- import { Logger } from "./logger";
4
- import { Emitter } from "./emitter";
5
- export type ReadyCallback = () => void;
6
- export interface InstanceOptions {
7
- datafile?: DatafileContent | string;
8
- onActivation?: ActivationCallback;
9
- configureBucketValue?: ConfigureBucketValue;
10
- datafileUrl?: string;
11
- onReady?: ReadyCallback;
12
- handleDatafileFetch?: (datafileUrl: string) => Promise<DatafileContent>;
13
- logger?: Logger;
14
- interceptAttributes?: (attributes: Attributes) => Attributes;
15
- refreshInterval?: number;
16
- onRefresh?: () => void;
17
- onUpdate?: () => void;
18
- stickyFeatures?: StickyFeatures;
19
- initialFeatures?: InitialFeatures;
20
- }
21
- export type Event = "ready" | "refresh" | "update" | "activation";
22
- export interface FeaturevisorInstance {
23
- /**
24
- * From FeaturevisorSDK
25
- */
26
- getVariation: FeaturevisorSDK["getVariation"];
27
- getVariationBoolean: FeaturevisorSDK["getVariationBoolean"];
28
- getVariationInteger: FeaturevisorSDK["getVariationInteger"];
29
- getVariationDouble: FeaturevisorSDK["getVariationDouble"];
30
- getVariationString: FeaturevisorSDK["getVariationString"];
31
- activate: FeaturevisorSDK["activate"];
32
- activateBoolean: FeaturevisorSDK["activateBoolean"];
33
- activateInteger: FeaturevisorSDK["activateInteger"];
34
- activateDouble: FeaturevisorSDK["activateDouble"];
35
- activateString: FeaturevisorSDK["activateString"];
36
- getVariable: FeaturevisorSDK["getVariable"];
37
- getVariableBoolean: FeaturevisorSDK["getVariableBoolean"];
38
- getVariableInteger: FeaturevisorSDK["getVariableInteger"];
39
- getVariableDouble: FeaturevisorSDK["getVariableDouble"];
40
- getVariableString: FeaturevisorSDK["getVariableString"];
41
- getVariableArray: FeaturevisorSDK["getVariableArray"];
42
- getVariableObject: FeaturevisorSDK["getVariableObject"];
43
- /**
44
- * Additions
45
- */
46
- setLogLevels: Logger["setLevels"];
47
- setStickyFeatures: FeaturevisorSDK["setStickyFeatures"];
48
- refresh: () => void;
49
- startRefreshing: () => void;
50
- stopRefreshing: () => void;
51
- addListener: Emitter["addListener"];
52
- on: Emitter["addListener"];
53
- removeListener: Emitter["removeListener"];
54
- off: Emitter["removeListener"];
55
- removeAllListeners: Emitter["removeAllListeners"];
56
- isReady: () => boolean;
57
- }
58
- export declare function createInstance(options: InstanceOptions): FeaturevisorInstance;
@@ -1,180 +0,0 @@
1
- import { FeaturevisorSDK } from "./client";
2
- import { createLogger } from "./logger";
3
- import { Emitter } from "./emitter";
4
- function fetchDatafileContent(datafileUrl, options) {
5
- if (options.handleDatafileFetch) {
6
- return options.handleDatafileFetch(datafileUrl);
7
- }
8
- return fetch(datafileUrl).then(function (res) { return res.json(); });
9
- }
10
- function getInstanceFromSdk(sdk, options, logger, emitter, statuses) {
11
- var intervalId;
12
- var on = emitter.addListener.bind(emitter);
13
- var off = emitter.removeListener.bind(emitter);
14
- var instance = {
15
- // variation
16
- getVariation: sdk.getVariation.bind(sdk),
17
- getVariationBoolean: sdk.getVariationBoolean.bind(sdk),
18
- getVariationInteger: sdk.getVariationInteger.bind(sdk),
19
- getVariationDouble: sdk.getVariationDouble.bind(sdk),
20
- getVariationString: sdk.getVariationString.bind(sdk),
21
- // activate
22
- activate: sdk.activate.bind(sdk),
23
- activateBoolean: sdk.activateBoolean.bind(sdk),
24
- activateInteger: sdk.activateInteger.bind(sdk),
25
- activateDouble: sdk.activateDouble.bind(sdk),
26
- activateString: sdk.activateString.bind(sdk),
27
- // variable
28
- getVariable: sdk.getVariable.bind(sdk),
29
- getVariableBoolean: sdk.getVariableBoolean.bind(sdk),
30
- getVariableInteger: sdk.getVariableInteger.bind(sdk),
31
- getVariableDouble: sdk.getVariableDouble.bind(sdk),
32
- getVariableString: sdk.getVariableString.bind(sdk),
33
- getVariableArray: sdk.getVariableArray.bind(sdk),
34
- getVariableObject: sdk.getVariableObject.bind(sdk),
35
- // additions
36
- setLogLevels: logger.setLevels.bind(logger),
37
- setStickyFeatures: sdk.setStickyFeatures.bind(sdk),
38
- // emitter
39
- on: on,
40
- addListener: on,
41
- off: off,
42
- removeListener: off,
43
- removeAllListeners: emitter.removeAllListeners.bind(emitter),
44
- // refresh
45
- refresh: function () {
46
- logger.debug("refreshing datafile");
47
- if (statuses.refreshInProgress) {
48
- return logger.warn("refresh in progress, skipping");
49
- }
50
- if (!options.datafileUrl) {
51
- return logger.error("cannot refresh since `datafileUrl` is not provided");
52
- }
53
- statuses.refreshInProgress = true;
54
- fetchDatafileContent(options.datafileUrl, options)
55
- .then(function (datafile) {
56
- var currentRevision = sdk.getRevision();
57
- var newRevision = datafile.revision;
58
- var isNotSameRevision = currentRevision !== newRevision;
59
- sdk.setDatafile(datafile);
60
- logger.info("refreshed datafile");
61
- emitter.emit("refresh");
62
- if (isNotSameRevision) {
63
- emitter.emit("update");
64
- }
65
- statuses.refreshInProgress = false;
66
- })
67
- .catch(function (e) {
68
- logger.error("failed to refresh datafile", { error: e });
69
- statuses.refreshInProgress = false;
70
- });
71
- },
72
- startRefreshing: function () {
73
- if (!options.datafileUrl) {
74
- return logger.error("cannot start refreshing since `datafileUrl` is not provided");
75
- }
76
- if (intervalId) {
77
- return logger.warn("refreshing has already started");
78
- }
79
- if (!options.refreshInterval) {
80
- return logger.warn("no `refreshInterval` option provided");
81
- }
82
- intervalId = setInterval(function () {
83
- instance.refresh();
84
- }, options.refreshInterval * 1000);
85
- },
86
- stopRefreshing: function () {
87
- if (!intervalId) {
88
- return logger.warn("refreshing has not started yet");
89
- }
90
- clearInterval(intervalId);
91
- },
92
- isReady: function () {
93
- return statuses.ready;
94
- },
95
- };
96
- if (options.datafileUrl && options.refreshInterval) {
97
- instance.startRefreshing();
98
- }
99
- return instance;
100
- }
101
- var emptyDatafile = {
102
- schemaVersion: "1",
103
- revision: "unknown",
104
- attributes: [],
105
- segments: [],
106
- features: [],
107
- };
108
- export function createInstance(options) {
109
- if (!options.datafile && !options.datafileUrl) {
110
- throw new Error("Featurevisor SDK instance cannot be created without both `datafile` and `datafileUrl` options");
111
- }
112
- var logger = options.logger || createLogger();
113
- var emitter = new Emitter();
114
- var statuses = {
115
- ready: false,
116
- refreshInProgress: false,
117
- };
118
- if (!options.datafileUrl && options.refreshInterval) {
119
- logger.warn("refreshing datafile requires `datafileUrl` option");
120
- }
121
- if (options.onReady) {
122
- emitter.addListener("ready", options.onReady);
123
- }
124
- if (options.onActivation) {
125
- emitter.addListener("activation", options.onActivation);
126
- }
127
- if (options.onRefresh) {
128
- emitter.addListener("refresh", options.onRefresh);
129
- }
130
- if (options.onUpdate) {
131
- emitter.addListener("update", options.onUpdate);
132
- }
133
- // datafile content is already provided
134
- if (options.datafile) {
135
- var sdk_1 = new FeaturevisorSDK({
136
- datafile: options.datafile,
137
- onActivation: options.onActivation,
138
- configureBucketValue: options.configureBucketValue,
139
- logger: logger,
140
- emitter: emitter,
141
- interceptAttributes: options.interceptAttributes,
142
- stickyFeatures: options.stickyFeatures,
143
- initialFeatures: options.initialFeatures,
144
- statuses: statuses,
145
- fromInstance: true,
146
- });
147
- statuses.ready = true;
148
- setTimeout(function () {
149
- emitter.emit("ready");
150
- }, 0);
151
- return getInstanceFromSdk(sdk_1, options, logger, emitter, statuses);
152
- }
153
- // datafile has to be fetched
154
- var sdk = new FeaturevisorSDK({
155
- datafile: emptyDatafile,
156
- onActivation: options.onActivation,
157
- configureBucketValue: options.configureBucketValue,
158
- logger: logger,
159
- emitter: emitter,
160
- interceptAttributes: options.interceptAttributes,
161
- stickyFeatures: options.stickyFeatures,
162
- initialFeatures: options.initialFeatures,
163
- statuses: statuses,
164
- fromInstance: true,
165
- });
166
- if (options.datafileUrl) {
167
- fetchDatafileContent(options.datafileUrl, options)
168
- .then(function (datafile) {
169
- sdk.setDatafile(datafile);
170
- statuses.ready = true;
171
- emitter.emit("ready");
172
- })
173
- .catch(function (e) {
174
- logger.error("failed to fetch datafile:");
175
- console.error(e);
176
- });
177
- }
178
- return getInstanceFromSdk(sdk, options, logger, emitter, statuses);
179
- }
180
- //# sourceMappingURL=createInstance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createInstance.js","sourceRoot":"","sources":["../src/createInstance.ts"],"names":[],"mappings":"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"}
package/lib/statuses.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export interface Statuses {
2
- ready: boolean;
3
- refreshInProgress: boolean;
4
- }
package/lib/statuses.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=statuses.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"statuses.js","sourceRoot":"","sources":["../src/statuses.ts"],"names":[],"mappings":""}