reactor-feature-toggle 6.0.1 → 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.
@@ -1,7 +1,13 @@
1
- import { ReactNode, FC } 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;
5
5
  featureToggleService: FeatureToggleServiceConfig;
6
6
  }
7
- export declare const FeatureToggleProvider: FC<ReactorFeatureToggleProviderProps>;
7
+ interface FeatureToggleContextType {
8
+ isOn: (featureName: string) => boolean;
9
+ toggles: FeatureToggleServiceConfig | null;
10
+ }
11
+ export declare const FeatureToggleProvider: ({ children, featureToggleService, }: ReactorFeatureToggleProviderProps) => React.JSX.Element;
12
+ export declare function useFeatureToggle(): FeatureToggleContextType;
13
+ export {};
@@ -1,8 +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
36
  exports.FeatureToggleProvider = void 0;
37
+ exports.useFeatureToggle = useFeatureToggle;
38
+ var react_1 = __importStar(require("react"));
4
39
  var feature_toggle_service_1 = require("feature-toggle-service");
5
- exports.FeatureToggleProvider = function (props) {
6
- feature_toggle_service_1.set(props.featureToggleService);
7
- return props.children;
40
+ var FeatureToggleContext = (0, react_1.createContext)({
41
+ isOn: feature_toggle_service_1.isOn,
42
+ toggles: null,
43
+ });
44
+ var FeatureToggleProvider = function (_a) {
45
+ var children = _a.children, featureToggleService = _a.featureToggleService;
46
+ (0, feature_toggle_service_1.set)(featureToggleService);
47
+ return (react_1.default.createElement(FeatureToggleContext.Provider, { value: { isOn: feature_toggle_service_1.isOn, toggles: featureToggleService } }, children));
8
48
  };
49
+ exports.FeatureToggleProvider = FeatureToggleProvider;
50
+ function useFeatureToggle() {
51
+ var context = (0, react_1.useContext)(FeatureToggleContext);
52
+ if (!context) {
53
+ throw new Error('useFeatureToggle must be used within FeatureToggleClientProvider');
54
+ }
55
+ return context;
56
+ }
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
- exports.FeatureToggle = function (props) {
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
- var tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./feature-toggle"), exports);
5
- tslib_1.__exportStar(require("./feature-toggle-provider"), exports);
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,7 +1,13 @@
1
- import { ReactNode, FC } 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;
5
5
  featureToggleService: FeatureToggleServiceConfig;
6
6
  }
7
- export declare const FeatureToggleProvider: FC<ReactorFeatureToggleProviderProps>;
7
+ interface FeatureToggleContextType {
8
+ isOn: (featureName: string) => boolean;
9
+ toggles: FeatureToggleServiceConfig | null;
10
+ }
11
+ export declare const FeatureToggleProvider: ({ children, featureToggleService, }: ReactorFeatureToggleProviderProps) => React.JSX.Element;
12
+ export declare function useFeatureToggle(): FeatureToggleContextType;
13
+ export {};
@@ -1,5 +1,24 @@
1
- import { set } from 'feature-toggle-service';
2
- export var FeatureToggleProvider = function (props) {
3
- set(props.featureToggleService);
4
- return props.children;
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,
10
+ toggles: null,
11
+ });
12
+ var FeatureToggleProvider = function (_a) {
13
+ var children = _a.children, featureToggleService = _a.featureToggleService;
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));
5
16
  };
17
+ exports.FeatureToggleProvider = FeatureToggleProvider;
18
+ function useFeatureToggle() {
19
+ var context = (0, react_1.useContext)(FeatureToggleContext);
20
+ if (!context) {
21
+ throw new Error('useFeatureToggle must be used within FeatureToggleClientProvider');
22
+ }
23
+ return context;
24
+ }
@@ -1,4 +1,7 @@
1
- import { isOn } from 'feature-toggle-service';
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
- export var FeatureToggle = function (props) {
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
- export * from './feature-toggle';
2
- export * from './feature-toggle-provider';
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,48 +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';
6
-
7
- /**
8
- * Checks if feature toggle is turned on of turned off
9
- *
10
- * @param {string} toggle: name of the feature toggle previously configured via `FeatureToggleProvider`
11
- *
12
- * @returns boolean
13
- */
14
- /**
15
- *
16
- *
17
- * @param {(string[] | string)} featureName: : name of the feature toggle previously configured via `FeatureToggleProvider`
18
- *
19
- * @returns boolean
20
- */
21
- var isOnCheck = function (featureName) {
22
- var isFeatureToggleOn = function (toggle) {
23
- return toggle[0] === '!' ? !featureToggleService.isOn(toggle.replace('!', '')) : featureToggleService.isOn(toggle);
24
- };
25
- if (typeof featureName === 'string') {
26
- return isFeatureToggleOn(featureName);
27
- }
28
- else if (Array.isArray(featureName)) {
29
- return featureName.every(isFeatureToggleOn);
30
- }
31
- return false;
32
- };
33
- var FeatureToggle = function (props) {
34
- var showContent = isOnCheck(props.featureName);
35
- return showContent ? props.children : null;
36
- };
37
-
38
- var FeatureToggleProvider = function (props) {
39
- featureToggleService.set(props.featureToggleService);
40
- return props.children;
41
- };
42
-
43
- exports.FeatureToggle = FeatureToggle;
44
- exports.FeatureToggleProvider = FeatureToggleProvider;
45
-
46
- Object.defineProperty(exports, '__esModule', { value: true });
47
-
48
- })));
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,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,t){"use strict";function r(e){function r(e){return"!"===e[0]?!t.isOn(e.replace("!","")):t.isOn(e)}return"string"==typeof e?r(e):!!Array.isArray(e)&&e.every(r)}e.FeatureToggle=function(e){return r(e.featureName)?e.children:null},e.FeatureToggleProvider=function(e){return t.set(e.featureToggleService),e.children},Object.defineProperty(e,"__esModule",{value:!0})});
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)}))});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reactor-feature-toggle",
3
- "version": "6.0.1",
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:es2015 && npm run build:cjs && npm run build:esm && npm run build:umd",
37
- "build:umd": "rollup dist/esm/index.js --format umd --name ReactorFeatureToggle -o dist/umd/reactor-feature-toggle.js && yarn build:umd:min",
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:es2015": "tsc --project ./tsconfig.build.json --module es2015 --target es2015 --outDir dist/es2015",
40
- "build:esm": "tsc --project ./tsconfig.build.json --module esnext --target es5 --outDir dist/esm",
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": "jest",
49
- "test:watch": "jest --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.5.5",
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.9.6",
73
- "@testing-library/jest-dom": "^5.7.0",
74
- "@testing-library/react": "^10.0.4",
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.0",
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.20.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
- "jest": "^26.0.1",
97
+ "jsdom": "^27.2.0",
100
98
  "prettier": "^2.0.5",
101
- "react": "^16.10.2",
102
- "react-dom": "^16.10.2",
103
- "rollup": "^2.12.1",
104
- "typescript": "^3.9.2",
105
- "uglify-js": "^3.9.4",
106
- "version-changelog": "^3.1.1"
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": ">=16.8.0",
110
- "react-dom": ">=16.8.0"
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,181 +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.0.1][] - 2025-12-04
11
-
12
- ### Fixed
13
-
14
- - Fixed exported library types
15
-
16
- ## [6.0.0][] - 2025-12-04
17
-
18
- ### Updated
19
-
20
- - Updating peerDependencies to accept react and react-dom >= v16
21
-
22
- ## [5.0.0][] - 2020-07-20
23
-
24
- ### Updated
25
-
26
- - 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.
27
-
28
- ## [4.0.5][] - 2020-06-18
29
-
30
- ### Fixed
31
-
32
- - Decreasing package download time
33
-
34
- ## [4.0.4][] - 2020-06-14
35
-
36
- ### Updated
37
-
38
- - Update demo example to use Stackblitz
39
- - Updating Github templates
40
-
41
- ## [4.0.3][] - 2020-06-14
42
-
43
- ### Updated
44
-
45
- - Update demo example to use Stackblitz
46
- - Updating Github templates
47
-
48
- ## [4.0.2][] - 2020-06-14
49
-
50
- ### Updated
51
-
52
- - Minor changes
53
-
54
- ## [4.0.1][] - 2020-06-14
55
-
56
- ### Updated
57
-
58
- - Update demo example to use Stackblitz
59
- - Updating Github templates
60
-
61
- ## [4.0.0][] - 2020-06-14
62
-
63
- ### Added
64
-
65
- - Supporting `!` prefix to change the boolean value to false on the `featureName` props check
66
-
67
- ```ts
68
- {
69
- enableSecondContent: false,
70
- }
71
- ```
72
-
73
- ```jsx
74
- <FeatureToggle featureName={'!enableSecondContent'}>
75
- <p>
76
- This content is disabled, but should be displayed since it has `!` prefix at
77
- `featureName`
78
- </p>
79
- </FeatureToggle>
80
- ```
81
-
82
- - Adding support for accept string or an array or strings as feature toggle configuration
83
-
84
- Example using string
85
-
86
- ```jsx
87
- <FeatureToggle featureName={'enableMainContent'}>
88
- <div className="content">
89
- <p>This content is enabled if `enableMainContent` is true</p>
90
- </div>
91
- </FeatureToggle>
92
- ```
93
-
94
- Example using Array of strings
95
-
96
- ```jsx
97
- <FeatureToggle featureName={['enableMainContent', 'enableDescriptionContent']}>
98
- <div className="content">
99
- <p>
100
- This content is enabled if `enableMainContent` and
101
- `enableDescriptionContent` are both truthly
102
- </p>
103
- </div>
104
- </FeatureToggle>
105
- ```
106
-
107
- ### Updated
108
-
109
- - Breaking changes:
110
- - _`showWhenDisabled`_ prop was removed since we can have the same behavior
111
- by using `FeatureToggle` component and passing `!` as a prefix for the
112
- `featureName` prop value.
113
-
114
- So if you have this configuration for your feature toggle
115
-
116
- ```ts
117
- {
118
- enableSecondContent: false,
119
- }
120
- ```
121
-
122
- You should replace your component configuration from this way
123
-
124
- ```jsx
125
- <FeatureToggle featureName={'enableSecondContent'} showWhenDisabled>
126
- <p>
127
- This content is disabled, but should be displayed since it has
128
- `showWhenDisabled` prop
129
- </p>
130
- </FeatureToggle>
131
- ```
132
-
133
- And pass `featureName` prop with `!` prefix to keep the same behavior on WebApp
134
-
135
- ```jsx
136
- <FeatureToggle featureName={'!enableSecondContent'}>
137
- <p>
138
- This content is disabled, but should be displayed since it has `!` prefix at
139
- `featureName`
140
- </p>
141
- </FeatureToggle>
142
- ```
143
-
144
- ## [3.0.0][] - 2020-06-03
145
-
146
- ### Updated
147
-
148
- - Bumping `feature-toggle-service` to 4.0.0
149
- - Decreasing bundle size to `303B`
150
- - Migrated Test Framework from Mocha to Jest
151
- - Code Cleanup
152
-
153
- ### Fixed
154
-
155
- - Adding missed dependencies
156
- - Adding different build distrubutions: UMD, CommonJS, ES2015 and ESM
157
-
158
- ### Added
159
-
160
- - Decreasing the bundle size to 1KB minified and Gzipped
161
-
162
- [unreleased]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v3.0.0...HEAD
163
- [3.0.0]: https://github.com/willmendesneto/reactor-feature-toggle/tree/v3.0.0
164
- [unreleased]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v4.0.0...HEAD
165
- [4.0.0]: https://github.com/willmendesneto/reactor-feature-toggle/tree/v4.0.0
166
- [unreleased]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v4.0.2...HEAD
167
- [4.0.2]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v4.0.1...v4.0.2
168
- [4.0.1]: https://github.com/willmendesneto/reactor-feature-toggle/tree/v4.0.1
169
- [unreleased]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v4.0.3...HEAD
170
- [4.0.3]: https://github.com/willmendesneto/reactor-feature-toggle/tree/v4.0.3
171
- [unreleased]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v4.0.3...HEAD
172
- [unreleased]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v4.0.4...HEAD
173
- [4.0.4]: https://github.com/willmendesneto/reactor-feature-toggle/tree/v4.0.4
174
- [unreleased]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v4.0.5...HEAD
175
- [4.0.5]: https://github.com/willmendesneto/reactor-feature-toggle/tree/v4.0.5
176
-
177
-
178
- [Unreleased]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v6.0.1...HEAD
179
- [6.0.1]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v6.0.0...v6.0.1
180
- [6.0.0]: https://github.com/willmendesneto/reactor-feature-toggle/compare/v5.0.0...v6.0.0
181
- [5.0.0]: https://github.com/willmendesneto/reactor-feature-toggle/tree/v5.0.0
@@ -1,7 +0,0 @@
1
- import { ReactNode, FC } from 'react';
2
- import { FeatureToggleServiceConfig } from 'feature-toggle-service';
3
- export interface ReactorFeatureToggleProviderProps {
4
- children: ReactNode;
5
- featureToggleService: FeatureToggleServiceConfig;
6
- }
7
- export declare const FeatureToggleProvider: FC<ReactorFeatureToggleProviderProps>;
@@ -1,5 +0,0 @@
1
- import { set } from 'feature-toggle-service';
2
- export const FeatureToggleProvider = props => {
3
- set(props.featureToggleService);
4
- return props.children;
5
- };
@@ -1,7 +0,0 @@
1
- import { ReactNode, FC } from 'react';
2
- export interface FeatureToggleProps {
3
- children?: ReactNode;
4
- featureName: string[] | string;
5
- showWhenDisabled?: boolean;
6
- }
7
- export declare const FeatureToggle: FC<FeatureToggleProps>;
@@ -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
- };
@@ -1,2 +0,0 @@
1
- export * from './feature-toggle';
2
- export * from './feature-toggle-provider';
@@ -1,2 +0,0 @@
1
- export * from './feature-toggle';
2
- export * from './feature-toggle-provider';