flagsmith-nodejs 2.0.2 → 2.1.0

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.
package/README.md CHANGED
@@ -9,7 +9,7 @@ The SDK clients for NodeJS [https://www.flagsmith.com/](https://www.flagsmith.co
9
9
 
10
10
  ## Adding to your project
11
11
 
12
- For full documentation visit [https://docs.flagsmith.com/clients/node/](https://docs.flagsmith.com/clients/node/)
12
+ For full documentation visit [https://docs.flagsmith.com/clients/server-side](https://docs.flagsmith.com/clients/server-side).
13
13
 
14
14
  ## Contributing
15
15
 
@@ -2,6 +2,13 @@ import { EnvironmentModel } from './environments/models';
2
2
  import { FeatureStateModel } from './features/models';
3
3
  import { IdentityModel } from './identities/models';
4
4
  import { TraitModel } from './identities/traits/models';
5
+ export { EnvironmentModel } from './environments/models';
6
+ export { IntegrationModel } from './environments/integrations/models';
7
+ export { FeatureStateModel } from './features/models';
8
+ export { IdentityModel } from './identities/models';
9
+ export { TraitModel } from './identities/traits/models';
10
+ export { SegmentModel } from './segments/models';
11
+ export { OrganisationModel } from './organisations/models';
5
12
  export declare function getIdentityFeatureState(environment: EnvironmentModel, identity: IdentityModel, featureName: string, overrideTraits?: TraitModel[]): FeatureStateModel;
6
13
  export declare function getIdentityFeatureStates(environment: EnvironmentModel, identity: IdentityModel, overrideTraits?: TraitModel[]): FeatureStateModel[];
7
14
  export declare function getEnvironmentFeatureState(environment: EnvironmentModel, featureName: string): FeatureStateModel;
@@ -11,9 +11,23 @@ var __values = (this && this.__values) || function(o) {
11
11
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.getEnvironmentFeatureStates = exports.getEnvironmentFeatureState = exports.getIdentityFeatureStates = exports.getIdentityFeatureState = void 0;
14
+ exports.getEnvironmentFeatureStates = exports.getEnvironmentFeatureState = exports.getIdentityFeatureStates = exports.getIdentityFeatureState = exports.OrganisationModel = exports.SegmentModel = exports.TraitModel = exports.IdentityModel = exports.FeatureStateModel = exports.IntegrationModel = exports.EnvironmentModel = void 0;
15
15
  var evaluators_1 = require("./segments/evaluators");
16
16
  var errors_1 = require("./utils/errors");
17
+ var models_1 = require("./environments/models");
18
+ Object.defineProperty(exports, "EnvironmentModel", { enumerable: true, get: function () { return models_1.EnvironmentModel; } });
19
+ var models_2 = require("./environments/integrations/models");
20
+ Object.defineProperty(exports, "IntegrationModel", { enumerable: true, get: function () { return models_2.IntegrationModel; } });
21
+ var models_3 = require("./features/models");
22
+ Object.defineProperty(exports, "FeatureStateModel", { enumerable: true, get: function () { return models_3.FeatureStateModel; } });
23
+ var models_4 = require("./identities/models");
24
+ Object.defineProperty(exports, "IdentityModel", { enumerable: true, get: function () { return models_4.IdentityModel; } });
25
+ var models_5 = require("./identities/traits/models");
26
+ Object.defineProperty(exports, "TraitModel", { enumerable: true, get: function () { return models_5.TraitModel; } });
27
+ var models_6 = require("./segments/models");
28
+ Object.defineProperty(exports, "SegmentModel", { enumerable: true, get: function () { return models_6.SegmentModel; } });
29
+ var models_7 = require("./organisations/models");
30
+ Object.defineProperty(exports, "OrganisationModel", { enumerable: true, get: function () { return models_7.OrganisationModel; } });
17
31
  function getIdentityFeatureStatesDict(environment, identity, overrideTraits) {
18
32
  var e_1, _a, e_2, _b, e_3, _c, e_4, _d;
19
33
  // Get feature states from the environment
package/build/index.d.ts CHANGED
@@ -1 +1,2 @@
1
- export { Flagsmith } from './sdk';
1
+ export { AnalyticsProcessor, FlagsmithAPIError, FlagsmithClientError, EnvironmentDataPollingManager, FlagsmithCache, DefaultFlag, Flags } from './sdk';
2
+ export { EnvironmentModel, IntegrationModel, FeatureStateModel, IdentityModel, TraitModel, SegmentModel, OrganisationModel } from './flagsmith-engine';
package/build/index.js CHANGED
@@ -3,9 +3,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Flagsmith = void 0;
6
+ exports.OrganisationModel = exports.SegmentModel = exports.TraitModel = exports.IdentityModel = exports.FeatureStateModel = exports.IntegrationModel = exports.EnvironmentModel = exports.Flags = exports.DefaultFlag = exports.EnvironmentDataPollingManager = exports.FlagsmithClientError = exports.FlagsmithAPIError = exports.AnalyticsProcessor = void 0;
7
7
  var sdk_1 = __importDefault(require("./sdk"));
8
8
  var sdk_2 = require("./sdk");
9
- Object.defineProperty(exports, "Flagsmith", { enumerable: true, get: function () { return sdk_2.Flagsmith; } });
10
- // export default Flagsmith;
9
+ Object.defineProperty(exports, "AnalyticsProcessor", { enumerable: true, get: function () { return sdk_2.AnalyticsProcessor; } });
10
+ Object.defineProperty(exports, "FlagsmithAPIError", { enumerable: true, get: function () { return sdk_2.FlagsmithAPIError; } });
11
+ Object.defineProperty(exports, "FlagsmithClientError", { enumerable: true, get: function () { return sdk_2.FlagsmithClientError; } });
12
+ Object.defineProperty(exports, "EnvironmentDataPollingManager", { enumerable: true, get: function () { return sdk_2.EnvironmentDataPollingManager; } });
13
+ Object.defineProperty(exports, "DefaultFlag", { enumerable: true, get: function () { return sdk_2.DefaultFlag; } });
14
+ Object.defineProperty(exports, "Flags", { enumerable: true, get: function () { return sdk_2.Flags; } });
15
+ var flagsmith_engine_1 = require("./flagsmith-engine");
16
+ Object.defineProperty(exports, "EnvironmentModel", { enumerable: true, get: function () { return flagsmith_engine_1.EnvironmentModel; } });
17
+ Object.defineProperty(exports, "IntegrationModel", { enumerable: true, get: function () { return flagsmith_engine_1.IntegrationModel; } });
18
+ Object.defineProperty(exports, "FeatureStateModel", { enumerable: true, get: function () { return flagsmith_engine_1.FeatureStateModel; } });
19
+ Object.defineProperty(exports, "IdentityModel", { enumerable: true, get: function () { return flagsmith_engine_1.IdentityModel; } });
20
+ Object.defineProperty(exports, "TraitModel", { enumerable: true, get: function () { return flagsmith_engine_1.TraitModel; } });
21
+ Object.defineProperty(exports, "SegmentModel", { enumerable: true, get: function () { return flagsmith_engine_1.SegmentModel; } });
22
+ Object.defineProperty(exports, "OrganisationModel", { enumerable: true, get: function () { return flagsmith_engine_1.OrganisationModel; } });
11
23
  module.exports = sdk_1.default;
@@ -3,6 +3,11 @@ import { DefaultFlag, Flags } from './models';
3
3
  import { EnvironmentDataPollingManager } from './polling_manager';
4
4
  import { SegmentModel } from '../flagsmith-engine/segments/models';
5
5
  import { FlagsmithCache } from './types';
6
+ export { AnalyticsProcessor } from './analytics';
7
+ export { FlagsmithAPIError, FlagsmithClientError } from './errors';
8
+ export { DefaultFlag, Flags } from './models';
9
+ export { EnvironmentDataPollingManager } from './polling_manager';
10
+ export { FlagsmithCache } from './types';
6
11
  export declare class Flagsmith {
7
12
  environmentKey?: string;
8
13
  apiUrl: string;
@@ -63,7 +63,7 @@ var __read = (this && this.__read) || function (o, n) {
63
63
  return ar;
64
64
  };
65
65
  Object.defineProperty(exports, "__esModule", { value: true });
66
- exports.Flagsmith = void 0;
66
+ exports.Flagsmith = exports.EnvironmentDataPollingManager = exports.Flags = exports.DefaultFlag = exports.FlagsmithClientError = exports.FlagsmithAPIError = exports.AnalyticsProcessor = void 0;
67
67
  var flagsmith_engine_1 = require("../flagsmith-engine");
68
68
  var util_1 = require("../flagsmith-engine/environments/util");
69
69
  var models_1 = require("../flagsmith-engine/identities/models");
@@ -74,6 +74,16 @@ var models_3 = require("./models");
74
74
  var polling_manager_1 = require("./polling_manager");
75
75
  var utils_1 = require("./utils");
76
76
  var evaluators_1 = require("../flagsmith-engine/segments/evaluators");
77
+ var analytics_2 = require("./analytics");
78
+ Object.defineProperty(exports, "AnalyticsProcessor", { enumerable: true, get: function () { return analytics_2.AnalyticsProcessor; } });
79
+ var errors_2 = require("./errors");
80
+ Object.defineProperty(exports, "FlagsmithAPIError", { enumerable: true, get: function () { return errors_2.FlagsmithAPIError; } });
81
+ Object.defineProperty(exports, "FlagsmithClientError", { enumerable: true, get: function () { return errors_2.FlagsmithClientError; } });
82
+ var models_4 = require("./models");
83
+ Object.defineProperty(exports, "DefaultFlag", { enumerable: true, get: function () { return models_4.DefaultFlag; } });
84
+ Object.defineProperty(exports, "Flags", { enumerable: true, get: function () { return models_4.Flags; } });
85
+ var polling_manager_2 = require("./polling_manager");
86
+ Object.defineProperty(exports, "EnvironmentDataPollingManager", { enumerable: true, get: function () { return polling_manager_2.EnvironmentDataPollingManager; } });
77
87
  var DEFAULT_API_URL = 'https://edge.api.flagsmith.com/api/v1/';
78
88
  var Flagsmith = /** @class */ (function () {
79
89
  /**
@@ -368,8 +378,10 @@ var Flagsmith = /** @class */ (function () {
368
378
  defaultFlagHandler: this.defaultFlagHandler
369
379
  });
370
380
  if (!!!this.cache) return [3 /*break*/, 2];
381
+ // @ts-ignore node-cache types are incorrect, ttl should be optional
371
382
  return [4 /*yield*/, this.cache.set('flags', flags)];
372
383
  case 1:
384
+ // @ts-ignore node-cache types are incorrect, ttl should be optional
373
385
  _a.sent();
374
386
  _a.label = 2;
375
387
  case 2: return [2 /*return*/, flags];
@@ -394,8 +406,10 @@ var Flagsmith = /** @class */ (function () {
394
406
  defaultFlagHandler: this.defaultFlagHandler
395
407
  });
396
408
  if (!!!this.cache) return [3 /*break*/, 2];
409
+ // @ts-ignore node-cache types are incorrect, ttl should be optional
397
410
  return [4 /*yield*/, this.cache.set("flags-".concat(identifier), flags)];
398
411
  case 1:
412
+ // @ts-ignore node-cache types are incorrect, ttl should be optional
399
413
  _a.sent();
400
414
  _a.label = 2;
401
415
  case 2: return [2 /*return*/, flags];
@@ -419,8 +433,10 @@ var Flagsmith = /** @class */ (function () {
419
433
  defaultFlagHandler: this.defaultFlagHandler
420
434
  });
421
435
  if (!!!this.cache) return [3 /*break*/, 3];
436
+ // @ts-ignore node-cache types are incorrect, ttl should be optional
422
437
  return [4 /*yield*/, this.cache.set('flags', flags)];
423
438
  case 2:
439
+ // @ts-ignore node-cache types are incorrect, ttl should be optional
424
440
  _a.sent();
425
441
  _a.label = 3;
426
442
  case 3: return [2 /*return*/, flags];
@@ -455,8 +471,10 @@ var Flagsmith = /** @class */ (function () {
455
471
  defaultFlagHandler: this.defaultFlagHandler
456
472
  });
457
473
  if (!!!this.cache) return [3 /*break*/, 3];
474
+ // @ts-ignore node-cache types are incorrect, ttl should be optional
458
475
  return [4 /*yield*/, this.cache.set("flags-".concat(identifier), flags)];
459
476
  case 2:
477
+ // @ts-ignore node-cache types are incorrect, ttl should be optional
460
478
  _a.sent();
461
479
  _a.label = 3;
462
480
  case 3: return [2 /*return*/, flags];
@@ -1,7 +1,7 @@
1
1
  import { Flags } from "./models";
2
2
  export interface FlagsmithCache {
3
- get(key: string): Promise<Flags>;
4
- set(key: string, value: Flags): Promise<void>;
5
- has(key: string): Promise<boolean>;
3
+ get(key: string): Promise<Flags | undefined> | undefined;
4
+ set(key: string, value: Flags, ttl: string | number): boolean | Promise<boolean>;
5
+ has(key: string): boolean | Promise<boolean>;
6
6
  [key: string]: any;
7
7
  }
@@ -0,0 +1,3 @@
1
+ {
2
+ "presets": ["@babel/preset-env"]
3
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "extends": ["eslint:recommended", "prettier"],
3
+ "parserOptions": {
4
+ "ecmaVersion": 2018,
5
+ "sourceType": "module"
6
+ },
7
+ "env": { "es6": true, "node": true }
8
+ }
@@ -0,0 +1,62 @@
1
+ # Nodejs-ES6-Boilerplate
2
+ [![Made in Indonesia](https://made-in-indonesia.github.io/made-in-indonesia.svg)](https://github.com/made-in-indonesia/made-in-indonesia)
3
+
4
+ A Node.js boilerplate with ES6, ESLint, and Prettier
5
+
6
+ ## Background
7
+
8
+ I created this boilerplate because I have several coding interviews that needs to be done using JavaScript.
9
+
10
+ ## Scripts
11
+
12
+ ```bash
13
+ # Run the project without nodemon
14
+ npm run start
15
+
16
+ # Build the project
17
+ npm run build
18
+
19
+ # Clean build
20
+ npm run clean
21
+
22
+ # Check the lint errors
23
+ npm run lint
24
+
25
+ # Fix the lint errors
26
+ npm run lint:fix
27
+
28
+ # Run prettier
29
+ npm run format
30
+
31
+ # Check prettier errors
32
+ npm run format:check
33
+ ```
34
+
35
+ ## Usage
36
+
37
+ 1. Clone the repository and init new git project
38
+
39
+ ```bash
40
+ $ git clone git@github.com:vferdiansyah/nodejs-es6-boilerplate.git ./your/project/folder
41
+ $ cd ./your/project/folder
42
+ $ rm -rf .git
43
+ $ git init
44
+ ```
45
+
46
+ 2. Change project specific information in the following places
47
+
48
+ - [package.json](./package.json)
49
+ - [README.md](./README.md)
50
+
51
+ 3. Install dependencies
52
+
53
+ ```bash
54
+ $ npm i
55
+ ```
56
+
57
+ 4. Start coding
58
+
59
+ ## License
60
+
61
+ Copyright (c) 2020 Veri Ferdiansyah
62
+ Licensed under the MIT license.