@forge/feature-flags-node 1.0.0 → 1.1.0-next.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/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @forge/feature-flags-node
2
2
 
3
+ ## 1.1.0-next.0
4
+
5
+ ### Minor Changes
6
+
7
+ - e8ed058: Fixed the import statements and updated the polling duration
8
+
9
+ ### Patch Changes
10
+
11
+ - @forge/api@6.0.3-next.0
12
+
3
13
  ## 1.0.0
4
14
 
5
15
  ### Major Changes
package/README.md CHANGED
@@ -85,18 +85,18 @@ export const handler = async (payload, context) => {
85
85
 
86
86
  ## Polling Behavior
87
87
 
88
- The package automatically polls for feature flag updates every 30 seconds:
88
+ The package automatically polls for feature flag updates every 60 seconds:
89
89
 
90
90
  1. **Cache Updates**: New data is cached for fallback purposes
91
91
  2. **Error Resilience**: If a fetch fails, the package falls back to cached data
92
- 3. **Immediate Updates**: Feature flag changes are reflected within 30 seconds
92
+ 3. **Immediate Updates**: Feature flag changes are reflected within 60 seconds
93
93
 
94
94
  ```typescript
95
95
  // Polling happens automatically in the background
96
96
  const featureFlags = new ForgeFeatureFlags();
97
97
  await featureFlags.initialize();
98
98
 
99
- // Feature flags are automatically updated every 30 seconds
99
+ // Feature flags are automatically updated every 60 seconds
100
100
  // No manual intervention required
101
101
  ```
102
102
 
@@ -6,7 +6,7 @@ class ForgeDataAdapter {
6
6
  pollingIntervalMs;
7
7
  pollingEnabled;
8
8
  cache = new Map();
9
- constructor(pollingIntervalMs = 30000, pollingEnabled = true) {
9
+ constructor(pollingIntervalMs = 60000, pollingEnabled = true) {
10
10
  this.pollingIntervalMs = pollingIntervalMs;
11
11
  this.pollingEnabled = pollingEnabled;
12
12
  }
package/out/index.js CHANGED
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ForgeFeatureFlags = void 0;
4
- const statsig_node_1 = require("statsig-node");
4
+ const tslib_1 = require("tslib");
5
+ const statsig_node_1 = tslib_1.__importDefault(require("statsig-node"));
5
6
  const data_adapter_1 = require("./data-adapter");
6
7
  class ForgeFeatureFlags {
7
8
  initialized = false;
@@ -11,10 +12,10 @@ class ForgeFeatureFlags {
11
12
  return;
12
13
  }
13
14
  try {
14
- statsig_node_1.Statsig.shutdown();
15
+ statsig_node_1.default.shutdown();
15
16
  }
16
17
  catch { }
17
- this.dataAdapter = new data_adapter_1.ForgeDataAdapter(30000, true);
18
+ this.dataAdapter = new data_adapter_1.ForgeDataAdapter(60000, true);
18
19
  const statsigOptions = {
19
20
  environment: { tier: config.environment || 'development' },
20
21
  disableRulesetsSync: false,
@@ -23,18 +24,18 @@ class ForgeFeatureFlags {
23
24
  localMode: true,
24
25
  dataAdapter: this.dataAdapter
25
26
  };
26
- await statsig_node_1.Statsig.initialize('forge-internal-key', statsigOptions);
27
+ await statsig_node_1.default.initialize('forge-internal-key', statsigOptions);
27
28
  this.initialized = true;
28
29
  }
29
30
  checkFlag(user, flagName) {
30
31
  this.ensureInitialized();
31
- return statsig_node_1.Statsig.checkGate(this.convertUser(user), flagName);
32
+ return statsig_node_1.default.checkGate(this.convertUser(user), flagName);
32
33
  }
33
34
  getFeatureFlags(user, flagNames) {
34
35
  this.ensureInitialized();
35
36
  const results = {};
36
37
  for (const flagName of flagNames) {
37
- results[flagName] = statsig_node_1.Statsig.checkGate(this.convertUser(user), flagName);
38
+ results[flagName] = statsig_node_1.default.checkGate(this.convertUser(user), flagName);
38
39
  }
39
40
  return results;
40
41
  }
@@ -42,7 +43,7 @@ class ForgeFeatureFlags {
42
43
  if (!this.initialized) {
43
44
  return;
44
45
  }
45
- statsig_node_1.Statsig.shutdown();
46
+ statsig_node_1.default.shutdown();
46
47
  if (this.dataAdapter) {
47
48
  await this.dataAdapter.shutdown();
48
49
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/feature-flags-node",
3
- "version": "1.0.0",
3
+ "version": "1.1.0-next.0",
4
4
  "description": "Feature Flags Node SDK for Atlassian Forge apps running on Node Runtime",
5
5
  "author": "Atlassian",
6
6
  "license": "SEE LICENSE IN LICENSE.txt",
@@ -15,7 +15,7 @@
15
15
  "@types/node": "20.19.1"
16
16
  },
17
17
  "dependencies": {
18
- "@forge/api": "^6.0.2",
18
+ "@forge/api": "^6.0.3-next.0",
19
19
  "statsig-node": "^6.4.3"
20
20
  },
21
21
  "publishConfig": {