reactor-feature-toggle 6.1.0 → 7.0.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/dist/cjs/feature-toggle-provider.d.ts +2 -2
- package/dist/cjs/feature-toggle-provider.js +42 -8
- package/dist/cjs/feature-toggle-provider.js.map +1 -0
- package/dist/cjs/feature-toggle.js +4 -2
- package/dist/cjs/feature-toggle.js.map +1 -0
- package/dist/cjs/index.js +17 -3
- package/dist/cjs/index.js.map +1 -0
- package/dist/esm/feature-toggle-provider.d.ts +2 -2
- package/dist/esm/feature-toggle-provider.js +15 -9
- package/dist/esm/feature-toggle.js +7 -3
- package/dist/esm/index.js +5 -2
- package/dist/umd/reactor-feature-toggle.js +1 -63
- package/dist/umd/reactor-feature-toggle.min.js +1 -1
- package/dist/umd/reactor-feature-toggle.min.js.gz +0 -0
- package/package.json +33 -34
- package/CHANGELOG.md +0 -188
- package/dist/es2015/feature-toggle-provider.d.ts +0 -13
- package/dist/es2015/feature-toggle-provider.js +0 -17
- package/dist/es2015/feature-toggle.d.ts +0 -7
- package/dist/es2015/feature-toggle.js +0 -29
- package/dist/es2015/index.d.ts +0 -2
- package/dist/es2015/index.js +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
2
|
import { FeatureToggleServiceConfig } from 'feature-toggle-service';
|
|
3
3
|
export interface ReactorFeatureToggleProviderProps {
|
|
4
4
|
children: ReactNode;
|
|
@@ -8,6 +8,6 @@ interface FeatureToggleContextType {
|
|
|
8
8
|
isOn: (featureName: string) => boolean;
|
|
9
9
|
toggles: FeatureToggleServiceConfig | null;
|
|
10
10
|
}
|
|
11
|
-
export declare const FeatureToggleProvider: ({ children, featureToggleService, }: ReactorFeatureToggleProviderProps) => JSX.Element;
|
|
11
|
+
export declare const FeatureToggleProvider: ({ children, featureToggleService, }: ReactorFeatureToggleProviderProps) => React.JSX.Element;
|
|
12
12
|
export declare function useFeatureToggle(): FeatureToggleContextType;
|
|
13
13
|
export {};
|
|
@@ -1,23 +1,57 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
var react_1 =
|
|
36
|
+
exports.FeatureToggleProvider = void 0;
|
|
37
|
+
exports.useFeatureToggle = useFeatureToggle;
|
|
38
|
+
var react_1 = __importStar(require("react"));
|
|
6
39
|
var feature_toggle_service_1 = require("feature-toggle-service");
|
|
7
|
-
var FeatureToggleContext = react_1.createContext({
|
|
40
|
+
var FeatureToggleContext = (0, react_1.createContext)({
|
|
8
41
|
isOn: feature_toggle_service_1.isOn,
|
|
9
42
|
toggles: null,
|
|
10
43
|
});
|
|
11
|
-
|
|
44
|
+
var FeatureToggleProvider = function (_a) {
|
|
12
45
|
var children = _a.children, featureToggleService = _a.featureToggleService;
|
|
13
|
-
feature_toggle_service_1.set(featureToggleService);
|
|
46
|
+
(0, feature_toggle_service_1.set)(featureToggleService);
|
|
14
47
|
return (react_1.default.createElement(FeatureToggleContext.Provider, { value: { isOn: feature_toggle_service_1.isOn, toggles: featureToggleService } }, children));
|
|
15
48
|
};
|
|
49
|
+
exports.FeatureToggleProvider = FeatureToggleProvider;
|
|
16
50
|
function useFeatureToggle() {
|
|
17
|
-
var context = react_1.useContext(FeatureToggleContext);
|
|
51
|
+
var context = (0, react_1.useContext)(FeatureToggleContext);
|
|
18
52
|
if (!context) {
|
|
19
53
|
throw new Error('useFeatureToggle must be used within FeatureToggleClientProvider');
|
|
20
54
|
}
|
|
21
55
|
return context;
|
|
22
56
|
}
|
|
23
|
-
|
|
57
|
+
//# sourceMappingURL=feature-toggle-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-toggle-provider.js","sourceRoot":"","sources":["../../src/feature-toggle-provider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,4CASC;AAzCD,6CAAoE;AACpE,iEAA+E;AAW/E,IAAM,oBAAoB,GAAG,IAAA,qBAAa,EAA2B;IACnE,IAAI,+BAAA;IACJ,OAAO,EAAE,IAAI;CACd,CAAC,CAAC;AAEI,IAAM,qBAAqB,GAAG,UAAC,EAGF;QAFlC,QAAQ,cAAA,EACR,oBAAoB,0BAAA;IAEpB,IAAA,4BAAG,EAAC,oBAAoB,CAAC,CAAC;IAE1B,OAAO,CACL,8BAAC,oBAAoB,CAAC,QAAQ,IAC5B,KAAK,EAAE,EAAE,IAAI,+BAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,IAE7C,QAAQ,CACqB,CACjC,CAAC;AACJ,CAAC,CAAC;AAbW,QAAA,qBAAqB,yBAahC;AAEF,SAAgB,gBAAgB;IAC9B,IAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,oBAAoB,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -18,7 +18,7 @@ var feature_toggle_service_1 = require("feature-toggle-service");
|
|
|
18
18
|
*/
|
|
19
19
|
var isOnCheck = function (featureName) {
|
|
20
20
|
var isFeatureToggleOn = function (toggle) {
|
|
21
|
-
return toggle[0] === '!' ? !feature_toggle_service_1.isOn(toggle.replace('!', '')) : feature_toggle_service_1.isOn(toggle);
|
|
21
|
+
return toggle[0] === '!' ? !(0, feature_toggle_service_1.isOn)(toggle.replace('!', '')) : (0, feature_toggle_service_1.isOn)(toggle);
|
|
22
22
|
};
|
|
23
23
|
if (typeof featureName === 'string') {
|
|
24
24
|
return isFeatureToggleOn(featureName);
|
|
@@ -28,7 +28,9 @@ var isOnCheck = function (featureName) {
|
|
|
28
28
|
}
|
|
29
29
|
return false;
|
|
30
30
|
};
|
|
31
|
-
|
|
31
|
+
var FeatureToggle = function (props) {
|
|
32
32
|
var showContent = isOnCheck(props.featureName);
|
|
33
33
|
return showContent ? props.children : null;
|
|
34
34
|
};
|
|
35
|
+
exports.FeatureToggle = FeatureToggle;
|
|
36
|
+
//# sourceMappingURL=feature-toggle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-toggle.js","sourceRoot":"","sources":["../../src/feature-toggle.tsx"],"names":[],"mappings":";;;AAEA,iEAA8C;AAQ9C;;;;;;GAMG;AAEH;;;;;;GAMG;AACH,IAAM,SAAS,GAAG,UAAC,WAA8B;IAC/C,IAAM,iBAAiB,GAAG,UAAC,MAAc;QACvC,OAAA,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,6BAAI,EAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,6BAAI,EAAC,MAAM,CAAC;IAAjE,CAAiE,CAAC;IAEpE,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,iBAAiB,CAAC,WAAqB,CAAC,CAAC;IAClD,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,OAAQ,WAAwB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEK,IAAM,aAAa,GAA2B,UACnD,KAAK;IAEL,IAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAEjD,OAAO,WAAW,CAAC,CAAC,CAAE,KAAK,CAAC,QAAyB,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/D,CAAC,CAAC;AANW,QAAA,aAAa,iBAMxB"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
17
|
+
__exportStar(require("./feature-toggle"), exports);
|
|
18
|
+
__exportStar(require("./feature-toggle-provider"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,4DAA0C"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
2
|
import { FeatureToggleServiceConfig } from 'feature-toggle-service';
|
|
3
3
|
export interface ReactorFeatureToggleProviderProps {
|
|
4
4
|
children: ReactNode;
|
|
@@ -8,6 +8,6 @@ interface FeatureToggleContextType {
|
|
|
8
8
|
isOn: (featureName: string) => boolean;
|
|
9
9
|
toggles: FeatureToggleServiceConfig | null;
|
|
10
10
|
}
|
|
11
|
-
export declare const FeatureToggleProvider: ({ children, featureToggleService, }: ReactorFeatureToggleProviderProps) => JSX.Element;
|
|
11
|
+
export declare const FeatureToggleProvider: ({ children, featureToggleService, }: ReactorFeatureToggleProviderProps) => React.JSX.Element;
|
|
12
12
|
export declare function useFeatureToggle(): FeatureToggleContextType;
|
|
13
13
|
export {};
|
|
@@ -1,16 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FeatureToggleProvider = void 0;
|
|
4
|
+
exports.useFeatureToggle = useFeatureToggle;
|
|
5
|
+
var tslib_1 = require("tslib");
|
|
6
|
+
var react_1 = tslib_1.__importStar(require("react"));
|
|
7
|
+
var feature_toggle_service_1 = require("feature-toggle-service");
|
|
8
|
+
var FeatureToggleContext = (0, react_1.createContext)({
|
|
9
|
+
isOn: feature_toggle_service_1.isOn,
|
|
5
10
|
toggles: null,
|
|
6
11
|
});
|
|
7
|
-
|
|
12
|
+
var FeatureToggleProvider = function (_a) {
|
|
8
13
|
var children = _a.children, featureToggleService = _a.featureToggleService;
|
|
9
|
-
set(featureToggleService);
|
|
10
|
-
return (
|
|
14
|
+
(0, feature_toggle_service_1.set)(featureToggleService);
|
|
15
|
+
return (react_1.default.createElement(FeatureToggleContext.Provider, { value: { isOn: feature_toggle_service_1.isOn, toggles: featureToggleService } }, children));
|
|
11
16
|
};
|
|
12
|
-
|
|
13
|
-
|
|
17
|
+
exports.FeatureToggleProvider = FeatureToggleProvider;
|
|
18
|
+
function useFeatureToggle() {
|
|
19
|
+
var context = (0, react_1.useContext)(FeatureToggleContext);
|
|
14
20
|
if (!context) {
|
|
15
21
|
throw new Error('useFeatureToggle must be used within FeatureToggleClientProvider');
|
|
16
22
|
}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FeatureToggle = void 0;
|
|
4
|
+
var feature_toggle_service_1 = require("feature-toggle-service");
|
|
2
5
|
/**
|
|
3
6
|
* Checks if feature toggle is turned on of turned off
|
|
4
7
|
*
|
|
@@ -15,7 +18,7 @@ import { isOn } from 'feature-toggle-service';
|
|
|
15
18
|
*/
|
|
16
19
|
var isOnCheck = function (featureName) {
|
|
17
20
|
var isFeatureToggleOn = function (toggle) {
|
|
18
|
-
return toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle);
|
|
21
|
+
return toggle[0] === '!' ? !(0, feature_toggle_service_1.isOn)(toggle.replace('!', '')) : (0, feature_toggle_service_1.isOn)(toggle);
|
|
19
22
|
};
|
|
20
23
|
if (typeof featureName === 'string') {
|
|
21
24
|
return isFeatureToggleOn(featureName);
|
|
@@ -25,7 +28,8 @@ var isOnCheck = function (featureName) {
|
|
|
25
28
|
}
|
|
26
29
|
return false;
|
|
27
30
|
};
|
|
28
|
-
|
|
31
|
+
var FeatureToggle = function (props) {
|
|
29
32
|
var showContent = isOnCheck(props.featureName);
|
|
30
33
|
return showContent ? props.children : null;
|
|
31
34
|
};
|
|
35
|
+
exports.FeatureToggle = FeatureToggle;
|
package/dist/esm/index.js
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./feature-toggle"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./feature-toggle-provider"), exports);
|
|
@@ -1,63 +1 @@
|
|
|
1
|
-
(function (global, factory) {
|
|
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;
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Checks if feature toggle is turned on of turned off
|
|
11
|
-
*
|
|
12
|
-
* @param {string} toggle: name of the feature toggle previously configured via `FeatureToggleProvider`
|
|
13
|
-
*
|
|
14
|
-
* @returns boolean
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* @param {(string[] | string)} featureName: : name of the feature toggle previously configured via `FeatureToggleProvider`
|
|
20
|
-
*
|
|
21
|
-
* @returns boolean
|
|
22
|
-
*/
|
|
23
|
-
var isOnCheck = function (featureName) {
|
|
24
|
-
var isFeatureToggleOn = function (toggle) {
|
|
25
|
-
return toggle[0] === '!' ? !featureToggleService.isOn(toggle.replace('!', '')) : featureToggleService.isOn(toggle);
|
|
26
|
-
};
|
|
27
|
-
if (typeof featureName === 'string') {
|
|
28
|
-
return isFeatureToggleOn(featureName);
|
|
29
|
-
}
|
|
30
|
-
else if (Array.isArray(featureName)) {
|
|
31
|
-
return featureName.every(isFeatureToggleOn);
|
|
32
|
-
}
|
|
33
|
-
return false;
|
|
34
|
-
};
|
|
35
|
-
var FeatureToggle = function (props) {
|
|
36
|
-
var showContent = isOnCheck(props.featureName);
|
|
37
|
-
return showContent ? props.children : null;
|
|
38
|
-
};
|
|
39
|
-
|
|
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));
|
|
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
|
-
}
|
|
56
|
-
|
|
57
|
-
exports.FeatureToggle = FeatureToggle;
|
|
58
|
-
exports.FeatureToggleProvider = FeatureToggleProvider;
|
|
59
|
-
exports.useFeatureToggle = useFeatureToggle;
|
|
60
|
-
|
|
61
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
62
|
-
|
|
63
|
-
})));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).ReactorFeatureToggle=t(e.react)}(this,function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=t(e);function n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function o(e,t){return e(t={exports:{}},t.exports),t.exports}var i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},i(e,t)};var a=function(){return a=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},a.apply(this,arguments)};var c=Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]};function u(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function s(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a}function f(e){return this instanceof f?(this.v=e,this):new f(e)}var l=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},p=function(e){return p=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},p(e)};var y="function"==typeof SuppressedError?SuppressedError:function(e,t,r){var n=new Error(r);return n.name="SuppressedError",n.error=e,n.suppressed=t,n};var d,v={__extends:function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},__assign:a,__rest:function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r},__decorate:function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},__param:function(e,t){return function(r,n){t(r,n,e)}},__esDecorate:function(e,t,r,n,o,i){function a(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var c,u=n.kind,s="getter"===u?"get":"setter"===u?"set":"value",f=!t&&e?n.static?e:e.prototype:null,l=t||(f?Object.getOwnPropertyDescriptor(f,n.name):{}),p=!1,y=r.length-1;y>=0;y--){var d={};for(var v in n)d[v]="access"===v?{}:n[v];for(var v in n.access)d.access[v]=n.access[v];d.addInitializer=function(e){if(p)throw new TypeError("Cannot add initializers after decoration has completed");i.push(a(e||null))};var h=(0,r[y])("accessor"===u?{get:l.get,set:l.set}:l[s],d);if("accessor"===u){if(void 0===h)continue;if(null===h||"object"!=typeof h)throw new TypeError("Object expected");(c=a(h.get))&&(l.get=c),(c=a(h.set))&&(l.set=c),(c=a(h.init))&&o.unshift(c)}else(c=a(h))&&("field"===u?o.unshift(c):l[s]=c)}f&&Object.defineProperty(f,n.name,l),p=!0},__runInitializers:function(e,t,r){for(var n=arguments.length>2,o=0;o<t.length;o++)r=n?t[o].call(e,r):t[o].call(e);return n?r:void 0},__propKey:function(e){return"symbol"==typeof e?e:"".concat(e)},__setFunctionName:function(e,t,r){return"symbol"==typeof t&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:r?"".concat(r," ",t):t})},__metadata:function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},__awaiter:function(e,t,r,n){return new(r||(r=Promise))(function(o,i){function a(e){try{u(n.next(e))}catch(e){i(e)}}function c(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(a,c)}u((n=n.apply(e,t||[])).next())})},__generator:function(e,t){var r,n,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=c(0),a.throw=c(1),a.return=c(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(c){return function(u){return function(c){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(i=0)),i;)try{if(r=1,n&&(o=2&c[0]?n.return:c[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,c[1])).done)return o;switch(n=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return i.label++,{value:c[1],done:!1};case 5:i.label++,n=c[1],c=[0];continue;case 7:c=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){i=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){i.label=c[1];break}if(6===c[0]&&i.label<o[1]){i.label=o[1],o=c;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(c);break}o[2]&&i.ops.pop(),i.trys.pop();continue}c=t.call(e,i)}catch(e){c=[6,e],n=0}finally{r=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}},__createBinding:c,__exportStar:function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||c(t,e,r)},__values:u,__read:s,__spread:function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(s(arguments[t]));return e},__spreadArrays:function(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),o=0;for(t=0;t<r;t++)for(var i=arguments[t],a=0,c=i.length;a<c;a++,o++)n[o]=i[a];return n},__spreadArray:function(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o<i;o++)!n&&o in t||(n||(n=Array.prototype.slice.call(t,0,o)),n[o]=t[o]);return e.concat(n||Array.prototype.slice.call(t))},__await:f,__asyncGenerator:function(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,o=r.apply(e,t||[]),i=[];return n=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),a("next"),a("throw"),a("return",function(e){return function(t){return Promise.resolve(t).then(e,s)}}),n[Symbol.asyncIterator]=function(){return this},n;function a(e,t){o[e]&&(n[e]=function(t){return new Promise(function(r,n){i.push([e,t,r,n])>1||c(e,t)})},t&&(n[e]=t(n[e])))}function c(e,t){try{(r=o[e](t)).value instanceof f?Promise.resolve(r.value.v).then(u,s):l(i[0][2],r)}catch(e){l(i[0][3],e)}var r}function u(e){c("next",e)}function s(e){c("throw",e)}function l(e,t){e(t),i.shift(),i.length&&c(i[0][0],i[0][1])}},__asyncDelegator:function(e){var t,r;return t={},n("next"),n("throw",function(e){throw e}),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:f(e[n](t)),done:!1}:o?o(t):t}:o}},__asyncValues:function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=u(e),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise(function(n,o){(function(e,t,r,n){Promise.resolve(n).then(function(t){e({value:t,done:r})},t)})(n,o,(t=e[r](t)).done,t.value)})}}},__makeTemplateObject:function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},__importStar:function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=p(e),n=0;n<r.length;n++)"default"!==r[n]&&c(t,e,r[n]);return l(t,e),t},__importDefault:function(e){return e&&e.__esModule?e:{default:e}},__classPrivateFieldGet:function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)},__classPrivateFieldSet:function(e,t,r,n,o){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?o.call(e,r):o?o.value=r:t.set(e,r),r},__classPrivateFieldIn:function(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)},__addDisposableResource:function(e,t,r){if(null!=t){if("object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object expected.");var n,o;if(r){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");n=t[Symbol.asyncDispose]}if(void 0===n){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");n=t[Symbol.dispose],r&&(o=n)}if("function"!=typeof n)throw new TypeError("Object not disposable.");o&&(n=function(){try{o.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:n,async:r})}else r&&e.stack.push({async:!0});return t},__disposeResources:function(e){function t(t){e.error=e.hasError?new y(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}var r,n=0;return function o(){for(;r=e.stack.pop();)try{if(!r.async&&1===n)return n=0,e.stack.push(r),Promise.resolve().then(o);if(r.dispose){var i=r.dispose.call(r.value);if(r.async)return n|=2,Promise.resolve(i).then(o,function(e){return t(e),o()})}else n|=1}catch(e){t(e)}if(1===n)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}()},__rewriteRelativeImportExtension:function(e,t){return"string"==typeof e&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,r,n,o,i){return r?t?".jsx":".js":!n||o&&i?n+o+"."+i.toLowerCase()+"js":e}):e}},h="6.1.0",b=((d={})[h]={},d),_=Object.freeze({__proto__:null,isOn:function(e,t){return t&&console.log("\n[DEBUG] Execution Time in milliseconds: ".concat(Date.now(),' version: "').concat(h,'" key: "').concat(e,'" settings: ').concat(JSON.stringify(b),"\n")),"string"==typeof e&&!!b[h][e]},set:function(e){b[h]=Object.assign({},b[h],e)}}),w=o(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.FeatureToggle=void 0;t.FeatureToggle=function(e){var t,r;return(t=e.featureName,r=function(e){return"!"===e[0]?!(0,_.isOn)(e.replace("!","")):(0,_.isOn)(e)},"string"==typeof t?r(t):!!Array.isArray(t)&&t.every(r))?e.children:null}});n(w),w.FeatureToggle;var g=o(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.FeatureToggleProvider=void 0,t.useFeatureToggle=function(){var e=(0,n.useContext)(o);if(!e)throw new Error("useFeatureToggle must be used within FeatureToggleClientProvider");return e};var n=v.__importStar(r.default),o=(0,n.createContext)({isOn:_.isOn,toggles:null});t.FeatureToggleProvider=function(e){var t=e.children,r=e.featureToggleService;return(0,_.set)(r),n.default.createElement(o.Provider,{value:{isOn:_.isOn,toggles:r}},t)}});n(g),g.FeatureToggleProvider,g.useFeatureToggle;var m=w,O=g;return n(o(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),v.__exportStar(m,t),v.__exportStar(O,t)}))});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).ReactorFeatureToggle=t(e.react)}(this,function(e){"use strict";var t,r=(t=e)&&"object"==typeof t&&"default"in t?t:{default:t};function n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function o(e,t){return e(t={exports:{}},t.exports),t.exports}var u=Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]};var i,a=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},l=function(e){return(l=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t})(e)},c=function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||u(t,e,r)},f=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=l(e),n=0;n<r.length;n++)"default"!==r[n]&&u(t,e,r[n]);return a(t,e),t},s="6.1.0",d=((i={})[s]={},i),g=Object.freeze({__proto__:null,isOn:function(e,t){return t&&console.log("\n[DEBUG] Execution Time in milliseconds: ".concat(Date.now(),' version: "').concat(s,'" key: "').concat(e,'" settings: ').concat(JSON.stringify(d),"\n")),"string"==typeof e&&!!d[s][e]},set:function(e){d[s]=Object.assign({},d[s],e)}}),v=o(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.FeatureToggle=void 0,t.FeatureToggle=function(e){var t=e.featureName,r=function(e){return"!"===e[0]?!(0,g.isOn)(e.replace("!","")):(0,g.isOn)(e)};return("string"==typeof t?r(t):Array.isArray(t)&&t.every(r))?e.children:null}});n(v),v.FeatureToggle;var p=o(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.FeatureToggleProvider=void 0,t.useFeatureToggle=function(){var e=(0,n.useContext)(o);if(!e)throw new Error("useFeatureToggle must be used within FeatureToggleClientProvider");return e};var n=f(r.default),o=(0,n.createContext)({isOn:g.isOn,toggles:null});t.FeatureToggleProvider=function(e){var t=e.children,r=e.featureToggleService;return(0,g.set)(r),n.default.createElement(o.Provider,{value:{isOn:g.isOn,toggles:r}},t)}});n(p),p.FeatureToggleProvider,p.useFeatureToggle;var O=v,y=p;return n(o(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),c(O,t),c(y,t)}))});
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "reactor-feature-toggle",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.0.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": [
|
|
@@ -30,23 +30,21 @@
|
|
|
30
30
|
"sideEffects": false,
|
|
31
31
|
"browser": "dist/umd/reactor-feature-toggle.js",
|
|
32
32
|
"jsnext:main": "dist/esm/index.js",
|
|
33
|
-
"es2015": "dist/cjs/index.js",
|
|
34
33
|
"cjs": "dist/cjs/index.js",
|
|
35
34
|
"scripts": {
|
|
36
|
-
"build": "npm run build:clean && npm run build:
|
|
37
|
-
"build:
|
|
35
|
+
"build": "npm run build:clean && npm run build:cjs && npm run build:esm && npm run build:umd",
|
|
36
|
+
"build:cjs": "tsc --project ./tsconfig.cjs.json --declaration --module commonjs --target es5 --outDir dist/cjs",
|
|
37
|
+
"build:umd": "rollup --config && npm run build:umd:min",
|
|
38
38
|
"build:umd:min": "uglifyjs --compress --mangle --screw-ie8 --comments -o dist/umd/reactor-feature-toggle.min.js -- dist/umd/reactor-feature-toggle.js && gzip dist/umd/reactor-feature-toggle.min.js -c > dist/umd/reactor-feature-toggle.min.js.gz",
|
|
39
|
-
"build:
|
|
40
|
-
"build:
|
|
41
|
-
"build:cjs": "tsc --project ./tsconfig.build.json --module commonjs --target es5 --outDir dist/cjs",
|
|
42
|
-
"build:clean": "rm -rf ./dist ./.jest ./coverage",
|
|
39
|
+
"build:esm": "tsc --project ./tsconfig.esm.json --outDir dist/esm",
|
|
40
|
+
"build:clean": "rm -rf ./dist ./coverage .tsbuildinfo",
|
|
43
41
|
"lint": "eslint --ext .ts,.tsx,.js src/",
|
|
44
42
|
"lint:fix": "eslint --ext .ts,.tsx,.js src/ --fix",
|
|
45
43
|
"lint:types": "tsc --noEmit",
|
|
46
44
|
"lint:types-watch": "tsc --noEmit --watch",
|
|
47
45
|
"prepack": "npm run preversion -s && npm run build -s",
|
|
48
|
-
"test": "
|
|
49
|
-
"test:watch": "
|
|
46
|
+
"test": "vitest --watch=false",
|
|
47
|
+
"test:watch": "vitest --watch",
|
|
50
48
|
"preversion": "npm run lint -s && npm run lint:types -s && npm run test -s",
|
|
51
49
|
"bundlesize": "bundlesize",
|
|
52
50
|
"coveralls": "cat ./coverage/lcov.info | ./node_modules/.bin/coveralls && rm -rf coverage",
|
|
@@ -54,11 +52,14 @@
|
|
|
54
52
|
"vc": "version-changelog CHANGELOG.md"
|
|
55
53
|
},
|
|
56
54
|
"dependencies": {
|
|
55
|
+
"@types/jsdom": "^27.0.0",
|
|
57
56
|
"feature-toggle-service": "^6.0.0",
|
|
57
|
+
"iltorb": "^2.4.5",
|
|
58
|
+
"parse5": "^6.0.0",
|
|
58
59
|
"tslib": "^2.3.0"
|
|
59
60
|
},
|
|
60
61
|
"devDependencies": {
|
|
61
|
-
"@babel/cli": "^7.
|
|
62
|
+
"@babel/cli": "^7.28.3",
|
|
62
63
|
"@babel/core": "^7.9.6",
|
|
63
64
|
"@babel/plugin-proposal-class-properties": "^7.5.5",
|
|
64
65
|
"@babel/plugin-proposal-export-namespace-from": "^7.5.2",
|
|
@@ -69,54 +70,52 @@
|
|
|
69
70
|
"@babel/preset-env": "^7.9.6",
|
|
70
71
|
"@babel/preset-react": "^7.9.4",
|
|
71
72
|
"@babel/preset-typescript": "^7.9.0",
|
|
72
|
-
"@babel/runtime": "^7.
|
|
73
|
-
"@testing-library/jest-dom": "^5.
|
|
74
|
-
"@testing-library/react": "^10.
|
|
73
|
+
"@babel/runtime": "^7.28.4",
|
|
74
|
+
"@testing-library/jest-dom": "^5.17.0",
|
|
75
|
+
"@testing-library/react": "^10.4.9",
|
|
75
76
|
"@types/enzyme": "^3.10.5",
|
|
76
|
-
"@types/jest": "^25.2.2",
|
|
77
77
|
"@types/react": "^16.9.35",
|
|
78
78
|
"@types/react-dom": "^16.9.8",
|
|
79
79
|
"@typescript-eslint/eslint-plugin": "^3.1.0",
|
|
80
80
|
"@typescript-eslint/parser": "^3.1.0",
|
|
81
|
+
"@vitejs/plugin-react": "^5.1.1",
|
|
82
|
+
"@vitest/ui": "^4.0.15",
|
|
81
83
|
"babel-eslint": "^10.0.2",
|
|
82
|
-
"babel-jest": "^26.0.1",
|
|
83
84
|
"babel-loader": "^8.1.0",
|
|
84
85
|
"babel-types": "^6.26.0",
|
|
85
|
-
"bundlesize": "^0.18.
|
|
86
|
+
"bundlesize": "^0.18.2",
|
|
86
87
|
"changelog-verify": "^1.1.2",
|
|
87
88
|
"confusing-browser-globals": "^1.0.9",
|
|
88
89
|
"coveralls": "^3.1.0",
|
|
89
90
|
"dtslint": "^3.6.4",
|
|
90
|
-
"enzyme": "^3.10.0",
|
|
91
|
-
"enzyme-adapter-react-16": "^1.15.2",
|
|
92
91
|
"eslint": "^7.0.0",
|
|
93
92
|
"eslint-config-prettier": "^6.11.0",
|
|
94
|
-
"eslint-plugin-import": "^2.
|
|
95
|
-
"eslint-plugin-jest": "^23.11.0",
|
|
93
|
+
"eslint-plugin-import": "^2.32.0",
|
|
96
94
|
"eslint-plugin-prettier": "^3.1.3",
|
|
97
95
|
"eslint-plugin-react": "^7.20.0",
|
|
98
96
|
"eslint-plugin-react-hooks": "^4.0.2",
|
|
99
|
-
"
|
|
97
|
+
"jsdom": "^27.2.0",
|
|
100
98
|
"prettier": "^2.0.5",
|
|
101
|
-
"react": "
|
|
102
|
-
"react-dom": "
|
|
103
|
-
"rollup": "^2.
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
"
|
|
99
|
+
"react": "18.2.0",
|
|
100
|
+
"react-dom": "18.2.0",
|
|
101
|
+
"rollup": "^2.58.3",
|
|
102
|
+
"rollup-plugin-commonjs": "^10.1.0",
|
|
103
|
+
"rollup-plugin-node-resolve": "^5.2.0",
|
|
104
|
+
"rollup-plugin-replace": "^2.2.0",
|
|
105
|
+
"rollup-plugin-terser": "^7.0.2",
|
|
106
|
+
"typescript": "^5.9.3",
|
|
107
|
+
"uglify-js": "3.9.4",
|
|
108
|
+
"version-changelog": "^3.1.1",
|
|
109
|
+
"vitest": "^4.0.15"
|
|
107
110
|
},
|
|
108
111
|
"peerDependencies": {
|
|
109
|
-
"react": ">=
|
|
110
|
-
"react-dom": ">=
|
|
112
|
+
"react": ">=18.2.0",
|
|
113
|
+
"react-dom": ">=18.2.0"
|
|
111
114
|
},
|
|
112
115
|
"bundlesize": [
|
|
113
116
|
{
|
|
114
117
|
"path": "./dist/umd/reactor-feature-toggle.min.js",
|
|
115
118
|
"maxSize": "352B"
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
"path": "./dist/cjs/index.js",
|
|
119
|
-
"maxSize": "162B"
|
|
120
119
|
}
|
|
121
120
|
],
|
|
122
121
|
"engines": {
|
package/CHANGELOG.md
DELETED
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
# Change Log
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
|
|
5
|
-
The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
|
6
|
-
and this project adheres to [Semantic Versioning](http://semver.org/).
|
|
7
|
-
|
|
8
|
-
## [Unreleased][]
|
|
9
|
-
|
|
10
|
-
## [6.1.0][] - 2025-12-04
|
|
11
|
-
|
|
12
|
-
### Added
|
|
13
|
-
|
|
14
|
-
- Adding `useFeatureToggle()` context
|
|
15
|
-
|
|
16
|
-
## [6.0.1][] - 2025-12-04
|
|
17
|
-
|
|
18
|
-
### Fixed
|
|
19
|
-
|
|
20
|
-
- Fixed exported library types
|
|
21
|
-
|
|
22
|
-
## [6.0.0][] - 2025-12-04
|
|
23
|
-
|
|
24
|
-
### Updated
|
|
25
|
-
|
|
26
|
-
- Updating peerDependencies to accept react and react-dom >= v16
|
|
27
|
-
|
|
28
|
-
## [5.0.0][] - 2020-07-20
|
|
29
|
-
|
|
30
|
-
### Updated
|
|
31
|
-
|
|
32
|
-
- Breaking changes: updating `feature-toggle-service` to version 6.0.0. The new package behavior introduces combination instead of overriding. Since it's a different feature, it can affect nested provider components.
|
|
33
|
-
|
|
34
|
-
## [4.0.5][] - 2020-06-18
|
|
35
|
-
|
|
36
|
-
### Fixed
|
|
37
|
-
|
|
38
|
-
- Decreasing package download time
|
|
39
|
-
|
|
40
|
-
## [4.0.4][] - 2020-06-14
|
|
41
|
-
|
|
42
|
-
### Updated
|
|
43
|
-
|
|
44
|
-
- Update demo example to use Stackblitz
|
|
45
|
-
- Updating Github templates
|
|
46
|
-
|
|
47
|
-
## [4.0.3][] - 2020-06-14
|
|
48
|
-
|
|
49
|
-
### Updated
|
|
50
|
-
|
|
51
|
-
- Update demo example to use Stackblitz
|
|
52
|
-
- Updating Github templates
|
|
53
|
-
|
|
54
|
-
## [4.0.2][] - 2020-06-14
|
|
55
|
-
|
|
56
|
-
### Updated
|
|
57
|
-
|
|
58
|
-
- Minor changes
|
|
59
|
-
|
|
60
|
-
## [4.0.1][] - 2020-06-14
|
|
61
|
-
|
|
62
|
-
### Updated
|
|
63
|
-
|
|
64
|
-
- Update demo example to use Stackblitz
|
|
65
|
-
- Updating Github templates
|
|
66
|
-
|
|
67
|
-
## [4.0.0][] - 2020-06-14
|
|
68
|
-
|
|
69
|
-
### Added
|
|
70
|
-
|
|
71
|
-
- Supporting `!` prefix to change the boolean value to false on the `featureName` props check
|
|
72
|
-
|
|
73
|
-
```ts
|
|
74
|
-
{
|
|
75
|
-
enableSecondContent: false,
|
|
76
|
-
}
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
```jsx
|
|
80
|
-
<FeatureToggle featureName={'!enableSecondContent'}>
|
|
81
|
-
<p>
|
|
82
|
-
This content is disabled, but should be displayed since it has `!` prefix at
|
|
83
|
-
`featureName`
|
|
84
|
-
</p>
|
|
85
|
-
</FeatureToggle>
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
- Adding support for accept string or an array or strings as feature toggle configuration
|
|
89
|
-
|
|
90
|
-
Example using string
|
|
91
|
-
|
|
92
|
-
```jsx
|
|
93
|
-
<FeatureToggle featureName={'enableMainContent'}>
|
|
94
|
-
<div className="content">
|
|
95
|
-
<p>This content is enabled if `enableMainContent` is true</p>
|
|
96
|
-
</div>
|
|
97
|
-
</FeatureToggle>
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
Example using Array of strings
|
|
101
|
-
|
|
102
|
-
```jsx
|
|
103
|
-
<FeatureToggle featureName={['enableMainContent', 'enableDescriptionContent']}>
|
|
104
|
-
<div className="content">
|
|
105
|
-
<p>
|
|
106
|
-
This content is enabled if `enableMainContent` and
|
|
107
|
-
`enableDescriptionContent` are both truthly
|
|
108
|
-
</p>
|
|
109
|
-
</div>
|
|
110
|
-
</FeatureToggle>
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
### Updated
|
|
114
|
-
|
|
115
|
-
- Breaking changes:
|
|
116
|
-
- _`showWhenDisabled`_ prop was removed since we can have the same behavior
|
|
117
|
-
by using `FeatureToggle` component and passing `!` as a prefix for the
|
|
118
|
-
`featureName` prop value.
|
|
119
|
-
|
|
120
|
-
So if you have this configuration for your feature toggle
|
|
121
|
-
|
|
122
|
-
```ts
|
|
123
|
-
{
|
|
124
|
-
enableSecondContent: false,
|
|
125
|
-
}
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
You should replace your component configuration from this way
|
|
129
|
-
|
|
130
|
-
```jsx
|
|
131
|
-
<FeatureToggle featureName={'enableSecondContent'} showWhenDisabled>
|
|
132
|
-
<p>
|
|
133
|
-
This content is disabled, but should be displayed since it has
|
|
134
|
-
`showWhenDisabled` prop
|
|
135
|
-
</p>
|
|
136
|
-
</FeatureToggle>
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
And pass `featureName` prop with `!` prefix to keep the same behavior on WebApp
|
|
140
|
-
|
|
141
|
-
```jsx
|
|
142
|
-
<FeatureToggle featureName={'!enableSecondContent'}>
|
|
143
|
-
<p>
|
|
144
|
-
This content is disabled, but should be displayed since it has `!` prefix at
|
|
145
|
-
`featureName`
|
|
146
|
-
</p>
|
|
147
|
-
</FeatureToggle>
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
## [3.0.0][] - 2020-06-03
|
|
151
|
-
|
|
152
|
-
### Updated
|
|
153
|
-
|
|
154
|
-
- Bumping `feature-toggle-service` to 4.0.0
|
|
155
|
-
- Decreasing bundle size to `303B`
|
|
156
|
-
- Migrated Test Framework from Mocha to Jest
|
|
157
|
-
- Code Cleanup
|
|
158
|
-
|
|
159
|
-
### Fixed
|
|
160
|
-
|
|
161
|
-
- Adding missed dependencies
|
|
162
|
-
- Adding different build distrubutions: UMD, CommonJS, ES2015 and ESM
|
|
163
|
-
|
|
164
|
-
### Added
|
|
165
|
-
|
|
166
|
-
- Decreasing the bundle size to 1KB minified and Gzipped
|
|
167
|
-
|
|
168
|
-
[unreleased]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v3.0.0...HEAD
|
|
169
|
-
[3.0.0]: https://github.com/willmendesneto/reactor-feature-toggle/tree/v3.0.0
|
|
170
|
-
[unreleased]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v4.0.0...HEAD
|
|
171
|
-
[4.0.0]: https://github.com/willmendesneto/reactor-feature-toggle/tree/v4.0.0
|
|
172
|
-
[unreleased]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v4.0.2...HEAD
|
|
173
|
-
[4.0.2]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v4.0.1...v4.0.2
|
|
174
|
-
[4.0.1]: https://github.com/willmendesneto/reactor-feature-toggle/tree/v4.0.1
|
|
175
|
-
[unreleased]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v4.0.3...HEAD
|
|
176
|
-
[4.0.3]: https://github.com/willmendesneto/reactor-feature-toggle/tree/v4.0.3
|
|
177
|
-
[unreleased]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v4.0.3...HEAD
|
|
178
|
-
[unreleased]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v4.0.4...HEAD
|
|
179
|
-
[4.0.4]: https://github.com/willmendesneto/reactor-feature-toggle/tree/v4.0.4
|
|
180
|
-
[unreleased]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v4.0.5...HEAD
|
|
181
|
-
[4.0.5]: https://github.com/willmendesneto/reactor-feature-toggle/tree/v4.0.5
|
|
182
|
-
|
|
183
|
-
|
|
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
|
|
186
|
-
[6.0.1]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v6.0.0...v6.0.1
|
|
187
|
-
[6.0.0]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v5.0.0...v6.0.0
|
|
188
|
-
[5.0.0]: https://github.com/willmendesneto/reactor-feature-toggle/tree/v5.0.0
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
2
|
-
import { FeatureToggleServiceConfig } from 'feature-toggle-service';
|
|
3
|
-
export interface ReactorFeatureToggleProviderProps {
|
|
4
|
-
children: ReactNode;
|
|
5
|
-
featureToggleService: FeatureToggleServiceConfig;
|
|
6
|
-
}
|
|
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,17 +0,0 @@
|
|
|
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));
|
|
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,29 +0,0 @@
|
|
|
1
|
-
import { isOn } from 'feature-toggle-service';
|
|
2
|
-
/**
|
|
3
|
-
* Checks if feature toggle is turned on of turned off
|
|
4
|
-
*
|
|
5
|
-
* @param {string} toggle: name of the feature toggle previously configured via `FeatureToggleProvider`
|
|
6
|
-
*
|
|
7
|
-
* @returns boolean
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* @param {(string[] | string)} featureName: : name of the feature toggle previously configured via `FeatureToggleProvider`
|
|
13
|
-
*
|
|
14
|
-
* @returns boolean
|
|
15
|
-
*/
|
|
16
|
-
const isOnCheck = (featureName) => {
|
|
17
|
-
const isFeatureToggleOn = (toggle) => toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle);
|
|
18
|
-
if (typeof featureName === 'string') {
|
|
19
|
-
return isFeatureToggleOn(featureName);
|
|
20
|
-
}
|
|
21
|
-
else if (Array.isArray(featureName)) {
|
|
22
|
-
return featureName.every(isFeatureToggleOn);
|
|
23
|
-
}
|
|
24
|
-
return false;
|
|
25
|
-
};
|
|
26
|
-
export const FeatureToggle = (props) => {
|
|
27
|
-
const showContent = isOnCheck(props.featureName);
|
|
28
|
-
return showContent ? props.children : null;
|
|
29
|
-
};
|
package/dist/es2015/index.d.ts
DELETED
package/dist/es2015/index.js
DELETED