reactor-feature-toggle 6.0.1 → 6.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/CHANGELOG.md +8 -1
- package/dist/cjs/feature-toggle-provider.d.ts +8 -2
- package/dist/cjs/feature-toggle-provider.js +19 -4
- package/dist/es2015/feature-toggle-provider.d.ts +8 -2
- package/dist/es2015/feature-toggle-provider.js +16 -4
- package/dist/esm/feature-toggle-provider.d.ts +8 -2
- package/dist/esm/feature-toggle-provider.js +17 -4
- package/dist/umd/reactor-feature-toggle.js +22 -7
- package/dist/umd/reactor-feature-toggle.min.js +1 -1
- package/dist/umd/reactor-feature-toggle.min.js.gz +0 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased][]
|
|
9
9
|
|
|
10
|
+
## [6.1.0][] - 2025-12-04
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Adding `useFeatureToggle()` context
|
|
15
|
+
|
|
10
16
|
## [6.0.1][] - 2025-12-04
|
|
11
17
|
|
|
12
18
|
### Fixed
|
|
@@ -175,7 +181,8 @@ And pass `featureName` prop with `!` prefix to keep the same behavior on WebApp
|
|
|
175
181
|
[4.0.5]: https://github.com/willmendesneto/reactor-feature-toggle/tree/v4.0.5
|
|
176
182
|
|
|
177
183
|
|
|
178
|
-
[Unreleased]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v6.0
|
|
184
|
+
[Unreleased]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v6.1.0...HEAD
|
|
185
|
+
[6.1.0]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v6.0.1...v6.1.0
|
|
179
186
|
[6.0.1]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v6.0.0...v6.0.1
|
|
180
187
|
[6.0.0]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v5.0.0...v6.0.0
|
|
181
188
|
[5.0.0]: https://github.com/willmendesneto/reactor-feature-toggle/tree/v5.0.0
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import { ReactNode
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
2
|
import { FeatureToggleServiceConfig } from 'feature-toggle-service';
|
|
3
3
|
export interface ReactorFeatureToggleProviderProps {
|
|
4
4
|
children: ReactNode;
|
|
5
5
|
featureToggleService: FeatureToggleServiceConfig;
|
|
6
6
|
}
|
|
7
|
-
|
|
7
|
+
interface FeatureToggleContextType {
|
|
8
|
+
isOn: (featureName: string) => boolean;
|
|
9
|
+
toggles: FeatureToggleServiceConfig | null;
|
|
10
|
+
}
|
|
11
|
+
export declare const FeatureToggleProvider: ({ children, featureToggleService, }: ReactorFeatureToggleProviderProps) => JSX.Element;
|
|
12
|
+
export declare function useFeatureToggle(): FeatureToggleContextType;
|
|
13
|
+
export {};
|
|
@@ -1,8 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FeatureToggleProvider = void 0;
|
|
3
|
+
exports.useFeatureToggle = exports.FeatureToggleProvider = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var react_1 = tslib_1.__importStar(require("react"));
|
|
4
6
|
var feature_toggle_service_1 = require("feature-toggle-service");
|
|
5
|
-
|
|
6
|
-
feature_toggle_service_1.
|
|
7
|
-
|
|
7
|
+
var FeatureToggleContext = react_1.createContext({
|
|
8
|
+
isOn: feature_toggle_service_1.isOn,
|
|
9
|
+
toggles: null,
|
|
10
|
+
});
|
|
11
|
+
exports.FeatureToggleProvider = function (_a) {
|
|
12
|
+
var children = _a.children, featureToggleService = _a.featureToggleService;
|
|
13
|
+
feature_toggle_service_1.set(featureToggleService);
|
|
14
|
+
return (react_1.default.createElement(FeatureToggleContext.Provider, { value: { isOn: feature_toggle_service_1.isOn, toggles: featureToggleService } }, children));
|
|
8
15
|
};
|
|
16
|
+
function useFeatureToggle() {
|
|
17
|
+
var context = react_1.useContext(FeatureToggleContext);
|
|
18
|
+
if (!context) {
|
|
19
|
+
throw new Error('useFeatureToggle must be used within FeatureToggleClientProvider');
|
|
20
|
+
}
|
|
21
|
+
return context;
|
|
22
|
+
}
|
|
23
|
+
exports.useFeatureToggle = useFeatureToggle;
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import { ReactNode
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
2
|
import { FeatureToggleServiceConfig } from 'feature-toggle-service';
|
|
3
3
|
export interface ReactorFeatureToggleProviderProps {
|
|
4
4
|
children: ReactNode;
|
|
5
5
|
featureToggleService: FeatureToggleServiceConfig;
|
|
6
6
|
}
|
|
7
|
-
|
|
7
|
+
interface FeatureToggleContextType {
|
|
8
|
+
isOn: (featureName: string) => boolean;
|
|
9
|
+
toggles: FeatureToggleServiceConfig | null;
|
|
10
|
+
}
|
|
11
|
+
export declare const FeatureToggleProvider: ({ children, featureToggleService, }: ReactorFeatureToggleProviderProps) => JSX.Element;
|
|
12
|
+
export declare function useFeatureToggle(): FeatureToggleContextType;
|
|
13
|
+
export {};
|
|
@@ -1,5 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import React, { createContext, useContext } from 'react';
|
|
2
|
+
import { set, isOn } from 'feature-toggle-service';
|
|
3
|
+
const FeatureToggleContext = createContext({
|
|
4
|
+
isOn,
|
|
5
|
+
toggles: null,
|
|
6
|
+
});
|
|
7
|
+
export const FeatureToggleProvider = ({ children, featureToggleService, }) => {
|
|
8
|
+
set(featureToggleService);
|
|
9
|
+
return (React.createElement(FeatureToggleContext.Provider, { value: { isOn, toggles: featureToggleService } }, children));
|
|
5
10
|
};
|
|
11
|
+
export function useFeatureToggle() {
|
|
12
|
+
const context = useContext(FeatureToggleContext);
|
|
13
|
+
if (!context) {
|
|
14
|
+
throw new Error('useFeatureToggle must be used within FeatureToggleClientProvider');
|
|
15
|
+
}
|
|
16
|
+
return context;
|
|
17
|
+
}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import { ReactNode
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
2
|
import { FeatureToggleServiceConfig } from 'feature-toggle-service';
|
|
3
3
|
export interface ReactorFeatureToggleProviderProps {
|
|
4
4
|
children: ReactNode;
|
|
5
5
|
featureToggleService: FeatureToggleServiceConfig;
|
|
6
6
|
}
|
|
7
|
-
|
|
7
|
+
interface FeatureToggleContextType {
|
|
8
|
+
isOn: (featureName: string) => boolean;
|
|
9
|
+
toggles: FeatureToggleServiceConfig | null;
|
|
10
|
+
}
|
|
11
|
+
export declare const FeatureToggleProvider: ({ children, featureToggleService, }: ReactorFeatureToggleProviderProps) => JSX.Element;
|
|
12
|
+
export declare function useFeatureToggle(): FeatureToggleContextType;
|
|
13
|
+
export {};
|
|
@@ -1,5 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import React, { createContext, useContext } from 'react';
|
|
2
|
+
import { set, isOn } from 'feature-toggle-service';
|
|
3
|
+
var FeatureToggleContext = createContext({
|
|
4
|
+
isOn: isOn,
|
|
5
|
+
toggles: null,
|
|
6
|
+
});
|
|
7
|
+
export var FeatureToggleProvider = function (_a) {
|
|
8
|
+
var children = _a.children, featureToggleService = _a.featureToggleService;
|
|
9
|
+
set(featureToggleService);
|
|
10
|
+
return (React.createElement(FeatureToggleContext.Provider, { value: { isOn: isOn, toggles: featureToggleService } }, children));
|
|
5
11
|
};
|
|
12
|
+
export function useFeatureToggle() {
|
|
13
|
+
var context = useContext(FeatureToggleContext);
|
|
14
|
+
if (!context) {
|
|
15
|
+
throw new Error('useFeatureToggle must be used within FeatureToggleClientProvider');
|
|
16
|
+
}
|
|
17
|
+
return context;
|
|
18
|
+
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('feature-toggle-service')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define(['exports', 'feature-toggle-service'], factory) :
|
|
4
|
-
(global = global || self, factory(global.ReactorFeatureToggle = {}, global.featureToggleService));
|
|
5
|
-
}(this, (function (exports, featureToggleService) { 'use strict';
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('feature-toggle-service'), require('react')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports', 'feature-toggle-service', 'react'], factory) :
|
|
4
|
+
(global = global || self, factory(global.ReactorFeatureToggle = {}, global.featureToggleService, global.React));
|
|
5
|
+
}(this, (function (exports, featureToggleService, React) { 'use strict';
|
|
6
|
+
|
|
7
|
+
var React__default = 'default' in React ? React['default'] : React;
|
|
6
8
|
|
|
7
9
|
/**
|
|
8
10
|
* Checks if feature toggle is turned on of turned off
|
|
@@ -35,13 +37,26 @@
|
|
|
35
37
|
return showContent ? props.children : null;
|
|
36
38
|
};
|
|
37
39
|
|
|
38
|
-
var
|
|
39
|
-
featureToggleService.
|
|
40
|
-
|
|
40
|
+
var FeatureToggleContext = React.createContext({
|
|
41
|
+
isOn: featureToggleService.isOn,
|
|
42
|
+
toggles: null,
|
|
43
|
+
});
|
|
44
|
+
var FeatureToggleProvider = function (_a) {
|
|
45
|
+
var children = _a.children, featureToggleService$1 = _a.featureToggleService;
|
|
46
|
+
featureToggleService.set(featureToggleService$1);
|
|
47
|
+
return (React__default.createElement(FeatureToggleContext.Provider, { value: { isOn: featureToggleService.isOn, toggles: featureToggleService$1 } }, children));
|
|
41
48
|
};
|
|
49
|
+
function useFeatureToggle() {
|
|
50
|
+
var context = React.useContext(FeatureToggleContext);
|
|
51
|
+
if (!context) {
|
|
52
|
+
throw new Error('useFeatureToggle must be used within FeatureToggleClientProvider');
|
|
53
|
+
}
|
|
54
|
+
return context;
|
|
55
|
+
}
|
|
42
56
|
|
|
43
57
|
exports.FeatureToggle = FeatureToggle;
|
|
44
58
|
exports.FeatureToggleProvider = FeatureToggleProvider;
|
|
59
|
+
exports.useFeatureToggle = useFeatureToggle;
|
|
45
60
|
|
|
46
61
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
47
62
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("feature-toggle-service")):"function"==typeof define&&define.amd?define(["exports","feature-toggle-service"],r):r((e=e||self).ReactorFeatureToggle={},e.featureToggleService)}(this,function(e,
|
|
1
|
+
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("feature-toggle-service"),require("react")):"function"==typeof define&&define.amd?define(["exports","feature-toggle-service","react"],r):r((e=e||self).ReactorFeatureToggle={},e.featureToggleService,e.React)}(this,function(e,n,r){"use strict";function t(e){function r(e){return"!"===e[0]?!n.isOn(e.replace("!","")):n.isOn(e)}return"string"==typeof e?r(e):!!Array.isArray(e)&&e.every(r)}var u="default"in r?r.default:r,i=r.createContext({isOn:n.isOn,toggles:null});e.FeatureToggle=function(e){return t(e.featureName)?e.children:null},e.FeatureToggleProvider=function(e){var r=e.children,t=e.featureToggleService;return n.set(t),u.createElement(i.Provider,{value:{isOn:n.isOn,toggles:t}},r)},e.useFeatureToggle=function(){var e=r.useContext(i);if(!e)throw new Error("useFeatureToggle must be used within FeatureToggleClientProvider");return e},Object.defineProperty(e,"__esModule",{value:!0})});
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "reactor-feature-toggle",
|
|
3
|
-
"version": "6.0
|
|
3
|
+
"version": "6.1.0",
|
|
4
4
|
"description": "Your module to handle with feature toggles in ReactJS applications easier",
|
|
5
5
|
"author": "Will Mendes <willmendesneto@gmail.com> (http://github.com/willmendesneto)",
|
|
6
6
|
"keywords": [
|