flagsmith-nodejs 2.0.3 → 2.1.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.
- package/build/flagsmith-engine/index.d.ts +7 -0
- package/build/flagsmith-engine/index.js +15 -1
- package/build/index.d.ts +4 -1
- package/build/index.js +16 -3
- package/build/sdk/analytics.d.ts +1 -1
- package/build/sdk/analytics.js +2 -2
- package/build/sdk/index.d.ts +5 -0
- package/build/sdk/index.js +11 -1
- package/build/sdk/models.js +1 -1
- package/es6-example/.babelrc +3 -0
- package/es6-example/.eslintrc +8 -0
- package/es6-example/README.md +62 -0
- package/es6-example/package-lock.json +10796 -0
- package/es6-example/package.json +56 -0
- package/es6-example/src/api/index.js +50 -0
- package/es6-example/src/index.js +29 -0
- package/example/package-lock.json +600 -43
- package/example/package.json +4 -1
- package/flagsmith-engine/index.ts +8 -0
- package/index.ts +19 -2
- package/package.json +1 -1
- package/sdk/analytics.ts +2 -2
- package/sdk/index.ts +8 -0
- package/sdk/models.ts +1 -1
- package/tests/sdk/analytics.test.ts +10 -10
|
@@ -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,4 @@
|
|
|
1
|
-
|
|
1
|
+
import Flagsmith from './sdk';
|
|
2
|
+
export { AnalyticsProcessor, FlagsmithAPIError, FlagsmithClientError, EnvironmentDataPollingManager, FlagsmithCache, DefaultFlag, Flags } from './sdk';
|
|
3
|
+
export { EnvironmentModel, IntegrationModel, FeatureStateModel, IdentityModel, TraitModel, SegmentModel, OrganisationModel } from './flagsmith-engine';
|
|
4
|
+
export default Flagsmith;
|
package/build/index.js
CHANGED
|
@@ -3,9 +3,22 @@ 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.
|
|
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, "
|
|
10
|
-
|
|
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; } });
|
|
23
|
+
exports.default = sdk_1.default;
|
|
11
24
|
module.exports = sdk_1.default;
|
package/build/sdk/analytics.d.ts
CHANGED
package/build/sdk/analytics.js
CHANGED
|
@@ -91,8 +91,8 @@ var AnalyticsProcessor = /** @class */ (function () {
|
|
|
91
91
|
});
|
|
92
92
|
});
|
|
93
93
|
};
|
|
94
|
-
AnalyticsProcessor.prototype.trackFeature = function (
|
|
95
|
-
this.analyticsData[
|
|
94
|
+
AnalyticsProcessor.prototype.trackFeature = function (featureName) {
|
|
95
|
+
this.analyticsData[featureName] = (this.analyticsData[featureName] || 0) + 1;
|
|
96
96
|
if (Date.now() - this.lastFlushed > ANALYTICS_TIMER * 1000) {
|
|
97
97
|
this.flush();
|
|
98
98
|
}
|
package/build/sdk/index.d.ts
CHANGED
|
@@ -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;
|
package/build/sdk/index.js
CHANGED
|
@@ -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
|
/**
|
package/build/sdk/models.js
CHANGED
|
@@ -134,7 +134,7 @@ var Flags = /** @class */ (function () {
|
|
|
134
134
|
return { enabled: false, isDefault: true, value: undefined };
|
|
135
135
|
}
|
|
136
136
|
if (this.analyticsProcessor && flag.featureId) {
|
|
137
|
-
this.analyticsProcessor.trackFeature(flag.
|
|
137
|
+
this.analyticsProcessor.trackFeature(flag.featureName);
|
|
138
138
|
}
|
|
139
139
|
return flag;
|
|
140
140
|
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Nodejs-ES6-Boilerplate
|
|
2
|
+
[](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.
|