@alanszp/split 7.8.1 → 7.10.3

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.
@@ -8,14 +8,13 @@ export declare type DoNotUseSplitFactoryType = typeof SplitFactory;
8
8
  export interface SplitClientConstructor {
9
9
  apiKey: string;
10
10
  logger: ILogger;
11
- timeout: number;
12
11
  debug: boolean;
13
12
  }
14
13
  export declare class BaseSplitClient {
15
14
  protected static client: SplitIO.IClient;
16
15
  protected static logger: ILogger;
17
16
  protected promiseConstruction: Promise<boolean>;
18
- constructor({ apiKey, logger, timeout, debug, }: SplitClientConstructor);
17
+ constructor({ apiKey, logger, debug }: SplitClientConstructor);
19
18
  hasLoaded(): Promise<boolean>;
20
19
  getTreatment(key: string, splitName: string, attributes?: {}): string;
21
20
  getBooleanTreatment(key: string, splitName: string, attributes?: {}): boolean;
@@ -11,36 +11,38 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.BaseSplitClient = void 0;
13
13
  const splitio_1 = require("@splitsoftware/splitio");
14
+ const now_1 = require("../helpers/now");
14
15
  const ON = "on";
15
16
  const CONTROL = "control";
16
- const TIMEOUT_ERROR = 6000;
17
17
  class BaseSplitClient {
18
- constructor({ apiKey, logger, timeout = TIMEOUT_ERROR, debug = false, }) {
18
+ constructor({ apiKey, logger, debug = false }) {
19
19
  BaseSplitClient.logger = logger;
20
20
  const factory = (0, splitio_1.SplitFactory)({
21
21
  core: {
22
22
  authorizationKey: apiKey,
23
23
  },
24
24
  scheduler: {
25
- impressionsRefreshRate: 1,
26
- eventsPushRate: 2,
25
+ impressionsRefreshRate: 60,
27
26
  },
28
27
  debug,
29
28
  });
29
+ const startedTime = (0, now_1.now)();
30
30
  BaseSplitClient.client = factory.client();
31
- this.promiseConstruction = Promise.race([
32
- new Promise((resolve) => {
33
- BaseSplitClient.client.on(BaseSplitClient.client.Event.SDK_READY, () => {
34
- BaseSplitClient.logger.info("split_io_client.created.succeed");
35
- resolve(true);
36
- });
37
- }),
38
- new Promise((resolve) => {
39
- setTimeout(() => {
40
- resolve(false);
41
- }, timeout);
42
- }),
43
- ]);
31
+ this.promiseConstruction = BaseSplitClient.client
32
+ .ready()
33
+ .then(() => {
34
+ BaseSplitClient.logger.info("split_io_client.created.succeed", {
35
+ executionTime: (0, now_1.now)() - startedTime,
36
+ });
37
+ return true;
38
+ })
39
+ .catch((error) => {
40
+ BaseSplitClient.logger.info("split_io_client.created.error", {
41
+ executionTime: (0, now_1.now)() - startedTime,
42
+ error,
43
+ });
44
+ return false;
45
+ });
44
46
  }
45
47
  hasLoaded() {
46
48
  return this.promiseConstruction;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,oDAAsD;AAQtD,MAAM,EAAE,GAAG,IAAI,CAAC;AAChB,MAAM,OAAO,GAAG,SAAS,CAAC;AAC1B,MAAM,aAAa,GAAG,IAAI,CAAC;AAQ3B,MAAa,eAAe;IAO1B,YAAY,EACV,MAAM,EACN,MAAM,EACN,OAAO,GAAG,aAAa,EACvB,KAAK,GAAG,KAAK,GACU;QACvB,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC;QAEhC,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC;YAC3B,IAAI,EAAE;gBACJ,gBAAgB,EAAE,MAAM;aACzB;YACD,SAAS,EAAE;gBACT,sBAAsB,EAAE,CAAC;gBACzB,cAAc,EAAE,CAAC;aAClB;YACD,KAAK;SACN,CAAC,CAAC;QAEH,eAAe,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAE1C,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;YACtC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAC5B,eAAe,CAAC,MAAM,CAAC,EAAE,CACvB,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EACtC,GAAG,EAAE;oBACH,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;oBAC/D,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC,CACF,CAAC;YACJ,CAAC,CAAC;YACF,IAAI,OAAO,CAAQ,CAAC,OAAO,EAAE,EAAE;gBAC7B,UAAU,CAAC,GAAG,EAAE;oBACd,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC,EAAE,OAAO,CAAC,CAAC;YACd,CAAC,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,YAAY,CAAC,GAAW,EAAE,SAAiB,EAAE,UAAU,GAAG,EAAE;QAC1D,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,YAAY,CACnD,GAAG,EACH,SAAS,EACT,UAAU,CACX,CAAC;QAEF,IAAI,SAAS,KAAK,OAAO,EAAE;YACzB,eAAe,CAAC,MAAM,CAAC,IAAI,CACzB,4CAA4C,EAC5C;gBACE,GAAG;gBACH,SAAS;gBACT,UAAU;aACX,CACF,CAAC;SACH;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,mBAAmB,CACjB,GAAW,EACX,SAAiB,EACjB,UAAU,GAAG,EAAE;QAEf,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAChE,OAAO,SAAS,KAAK,EAAE,CAAC;IAC1B,CAAC;IAEK,OAAO;;YACX,MAAM,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACzC,CAAC;KAAA;CACF;AAnFD,0CAmFC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,oDAAsD;AACtD,wCAAqC;AAQrC,MAAM,EAAE,GAAG,IAAI,CAAC;AAChB,MAAM,OAAO,GAAG,SAAS,CAAC;AAQ1B,MAAa,eAAe;IAO1B,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,KAAK,EAA0B;QACnE,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC;QAEhC,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC;YAC3B,IAAI,EAAE;gBACJ,gBAAgB,EAAE,MAAM;aACzB;YACD,SAAS,EAAE;gBACT,sBAAsB,EAAE,EAAE;aAC3B;YACD,KAAK;SACN,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,IAAA,SAAG,GAAE,CAAC;QAC1B,eAAe,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAE1C,IAAI,CAAC,mBAAmB,GAAG,eAAe,CAAC,MAAM;aAC9C,KAAK,EAAE;aACP,IAAI,CAAC,GAAG,EAAE;YACT,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE;gBAC7D,aAAa,EAAE,IAAA,SAAG,GAAE,GAAG,WAAW;aACnC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;gBAC3D,aAAa,EAAE,IAAA,SAAG,GAAE,GAAG,WAAW;gBAClC,KAAK;aACN,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,YAAY,CAAC,GAAW,EAAE,SAAiB,EAAE,UAAU,GAAG,EAAE;QAC1D,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,YAAY,CACnD,GAAG,EACH,SAAS,EACT,UAAU,CACX,CAAC;QAEF,IAAI,SAAS,KAAK,OAAO,EAAE;YACzB,eAAe,CAAC,MAAM,CAAC,IAAI,CACzB,4CAA4C,EAC5C;gBACE,GAAG;gBACH,SAAS;gBACT,UAAU;aACX,CACF,CAAC;SACH;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,mBAAmB,CACjB,GAAW,EACX,SAAiB,EACjB,UAAU,GAAG,EAAE;QAEf,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAChE,OAAO,SAAS,KAAK,EAAE,CAAC;IAC1B,CAAC;IAEK,OAAO;;YACX,MAAM,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACzC,CAAC;KAAA;CACF;AA7ED,0CA6EC"}
@@ -0,0 +1 @@
1
+ export declare function now(): number;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.now = void 0;
4
+ function now() {
5
+ return Date.now();
6
+ }
7
+ exports.now = now;
8
+ //# sourceMappingURL=now.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"now.js","sourceRoot":"","sources":["../../src/helpers/now.ts"],"names":[],"mappings":";;;AAAA,SAAgB,GAAG;IACjB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;AACpB,CAAC;AAFD,kBAEC"}
package/dist/index.js CHANGED
@@ -10,5 +10,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
10
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
+ // Adding dummy code to deploy package
13
14
  __exportStar(require("./client"), exports);
14
15
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAAsC;AACtC,2CAAyB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alanszp/split",
3
- "version": "7.8.1",
3
+ "version": "7.10.3",
4
4
  "description": "Alan's split client",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -37,5 +37,5 @@
37
37
  "cuid": "^2.1.8",
38
38
  "lodash": "^4.17.21"
39
39
  },
40
- "gitHead": "d026fc9bf30424a186861fd068e12dd20e0d4ef6"
40
+ "gitHead": "b921afdb66be64a60a1558105896e6d24d371ccd"
41
41
  }
@@ -1,5 +1,6 @@
1
1
  import { ILogger } from "@alanszp/logger";
2
2
  import { SplitFactory } from "@splitsoftware/splitio";
3
+ import { now } from "../helpers/now";
3
4
 
4
5
  /**
5
6
  * Hack to force the compiler to import the types
@@ -9,14 +10,13 @@ export type DoNotUseSplitFactoryType = typeof SplitFactory;
9
10
 
10
11
  const ON = "on";
11
12
  const CONTROL = "control";
12
- const TIMEOUT_ERROR = 6000;
13
13
 
14
14
  export interface SplitClientConstructor {
15
15
  apiKey: string;
16
16
  logger: ILogger;
17
- timeout: number;
18
17
  debug: boolean;
19
18
  }
19
+
20
20
  export class BaseSplitClient {
21
21
  protected static client: SplitIO.IClient;
22
22
 
@@ -24,12 +24,7 @@ export class BaseSplitClient {
24
24
 
25
25
  protected promiseConstruction: Promise<boolean>;
26
26
 
27
- constructor({
28
- apiKey,
29
- logger,
30
- timeout = TIMEOUT_ERROR,
31
- debug = false,
32
- }: SplitClientConstructor) {
27
+ constructor({ apiKey, logger, debug = false }: SplitClientConstructor) {
33
28
  BaseSplitClient.logger = logger;
34
29
 
35
30
  const factory = SplitFactory({
@@ -37,30 +32,29 @@ export class BaseSplitClient {
37
32
  authorizationKey: apiKey,
38
33
  },
39
34
  scheduler: {
40
- impressionsRefreshRate: 1,
41
- eventsPushRate: 2,
35
+ impressionsRefreshRate: 60,
42
36
  },
43
37
  debug,
44
38
  });
45
39
 
40
+ const startedTime = now();
46
41
  BaseSplitClient.client = factory.client();
47
42
 
48
- this.promiseConstruction = Promise.race([
49
- new Promise<true>((resolve) => {
50
- BaseSplitClient.client.on(
51
- BaseSplitClient.client.Event.SDK_READY,
52
- () => {
53
- BaseSplitClient.logger.info("split_io_client.created.succeed");
54
- resolve(true);
55
- }
56
- );
57
- }),
58
- new Promise<false>((resolve) => {
59
- setTimeout(() => {
60
- resolve(false);
61
- }, timeout);
62
- }),
63
- ]);
43
+ this.promiseConstruction = BaseSplitClient.client
44
+ .ready()
45
+ .then(() => {
46
+ BaseSplitClient.logger.info("split_io_client.created.succeed", {
47
+ executionTime: now() - startedTime,
48
+ });
49
+ return true;
50
+ })
51
+ .catch((error) => {
52
+ BaseSplitClient.logger.info("split_io_client.created.error", {
53
+ executionTime: now() - startedTime,
54
+ error,
55
+ });
56
+ return false;
57
+ });
64
58
  }
65
59
 
66
60
  hasLoaded(): Promise<boolean> {
@@ -0,0 +1,3 @@
1
+ export function now(): number {
2
+ return Date.now();
3
+ }
package/src/index.ts CHANGED
@@ -1 +1,2 @@
1
+ // Adding dummy code to deploy package
1
2
  export * from "./client";