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.
@@ -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.useFeatureToggle = exports.FeatureToggleProvider = void 0;
4
- var tslib_1 = require("tslib");
5
- var react_1 = tslib_1.__importStar(require("react"));
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
- exports.FeatureToggleProvider = function (_a) {
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
- exports.useFeatureToggle = useFeatureToggle;
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,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
- import React, { createContext, useContext } from 'react';
2
- import { set, isOn } from 'feature-toggle-service';
3
- var FeatureToggleContext = createContext({
4
- isOn: isOn,
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
- export var FeatureToggleProvider = function (_a) {
12
+ var FeatureToggleProvider = function (_a) {
8
13
  var children = _a.children, featureToggleService = _a.featureToggleService;
9
- set(featureToggleService);
10
- return (React.createElement(FeatureToggleContext.Provider, { value: { isOn: isOn, toggles: featureToggleService } }, children));
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
- export function useFeatureToggle() {
13
- var context = useContext(FeatureToggleContext);
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
- 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,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,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})});
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.1.0",
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,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,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';