launchdarkly-react-client-sdk
Advanced tools
Comparing version
@@ -1,2 +0,2 @@ | ||
"use strict";var e=require("react"),t=require("launchdarkly-js-client-sdk"),r=require("lodash.camelcase"),n=require("hoist-non-react-statics");function o(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=o(e);const i=()=>e.createContext({flags:{},flagKeyMap:{},ldClient:void 0}),a=i(),{Provider:l,Consumer:c}=a,u={useCamelCaseFlagKeys:!0,sendEventsOnFlagRead:!0,reactContext:a},p=e=>{var t;return null!=(t=e.context)?t:e.user},f=e=>{const t={};for(const n in e)0!==n.indexOf("$")&&(t[r(n)]=e[n]);return t},d=(e,t)=>{const r={};for(const n in e)t&&void 0===t[n]||(r[n]=e[n].current);return r},y=(e,t)=>{const r=e.allFlags();return t?Object.keys(t).reduce(((e,n)=>(e[n]=Object.prototype.hasOwnProperty.call(r,n)?r[n]:t[n],e)),{}):r};function h(e,t,n=u,o){const s=function(e,t){if(void 0===t)return e;return Object.keys(t).reduce(((t,r)=>(O(e,r)&&(t[r]=e[r]),t)),{})}(t,o),{useCamelCaseFlagKeys:i=!0}=n,[a,l={}]=i?function(e){const t={},n={};for(const o in e){if(0===o.indexOf("$"))continue;const s=r(o);t[s]=e[o],n[s]=o}return[t,n]}(s):[s];return{flags:n.sendEventsOnFlagRead?g(e,a,l,i):a,flagKeyMap:l}}function O(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function g(e,t,r,n){return new Proxy(t,{get(t,o,s){const i=Reflect.get(t,o,s),a=n&&O(r,o)||O(t,o);if("symbol"==typeof o||!a)return i;if(void 0===i)return;const l=n?r[o]:o;return e.variation(l,i)}})}f.camelCaseKeys=f;const b={wrapperName:"react-client-sdk",wrapperVersion:"3.7.0-beta.1",sendEventsOnlyForVariation:!0};var v=Object.defineProperty,x=Object.defineProperties,m=Object.getOwnPropertyDescriptors,C=Object.getOwnPropertySymbols,j=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable,w=(e,t,r)=>t in e?v(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,F=(e,t)=>{for(var r in t||(t={}))j.call(t,r)&&w(e,r,t[r]);if(C)for(var r of C(t))P.call(t,r)&&w(e,r,t[r]);return e},E=(e,t)=>x(e,m(t)),D=(e,t,r)=>new Promise(((n,o)=>{var s=e=>{try{a(r.next(e))}catch(e){o(e)}},i=e=>{try{a(r.throw(e))}catch(e){o(e)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(s,i);a((r=r.apply(e,t)).next())}));class S extends e.Component{constructor(e){super(e),this.getReactOptions=()=>F(F({},u),this.props.reactOptions),this.subscribeToChanges=e=>{const{flags:t}=this.props;e.on("change",(r=>{const n=this.getReactOptions(),o=d(r,t),s=F(F({},this.state.unproxiedFlags),o);Object.keys(o).length>0&&this.setState((r=>F(E(F({},r),{unproxiedFlags:s}),h(e,s,n,t))))}))},this.onFailed=(e,t)=>{this.setState((e=>E(F({},e),{error:t})))},this.onReady=(e,t,r)=>{const n=y(e,r);this.setState((o=>F(E(F({},o),{unproxiedFlags:n}),h(e,n,t,r))))},this.prepareLDClient=()=>D(this,null,(function*(){var e;const{clientSideID:r,flags:n,options:o}=this.props;let s=yield this.props.ldClient;const i=this.getReactOptions();let a,l=this.state.unproxiedFlags;if(s)l=y(s,n);else{const c=null!=(e=p(this.props))?e:{anonymous:!0,kind:"user"};s=t.initialize(r,c,F(F({},b),o));try{yield s.waitForInitialization(this.props.timeout),l=y(s,n)}catch(e){a=e,(null==a?void 0:a.name.toLowerCase().includes("timeout"))&&(s.on("failed",this.onFailed),s.on("ready",(()=>{this.onReady(s,i,n)})))}}this.setState((e=>E(F(E(F({},e),{unproxiedFlags:l}),h(s,l,i,n)),{ldClient:s,error:a}))),this.subscribeToChanges(s)}));const{options:r}=e;if(this.state={flags:{},unproxiedFlags:{},flagKeyMap:{}},r){const{bootstrap:e}=r;if(e&&"localStorage"!==e){const{useCamelCaseFlagKeys:t}=this.getReactOptions();this.state={flags:t?f(e):e,unproxiedFlags:e,flagKeyMap:{}}}}}componentDidMount(){return D(this,null,(function*(){const{deferInitialization:e}=this.props;e&&!p(this.props)||(yield this.prepareLDClient())}))}componentDidUpdate(e){return D(this,null,(function*(){const{deferInitialization:t}=this.props,r=!p(e)&&p(this.props);t&&r&&(yield this.prepareLDClient())}))}render(){const{flags:t,flagKeyMap:r,ldClient:n,error:o}=this.state,{reactContext:s}=this.getReactOptions();return e.createElement(s.Provider,{value:{flags:t,flagKeyMap:r,ldClient:n,error:o}},this.props.children)}}var k=Object.defineProperty,K=Object.defineProperties,L=Object.getOwnPropertyDescriptors,R=Object.getOwnPropertySymbols,I=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable,M=(e,t,r)=>t in e?k(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,q=(e,t)=>{for(var r in t||(t={}))I.call(t,r)&&M(e,r,t[r]);if(R)for(var r of R(t))z.call(t,r)&&M(e,r,t[r]);return e};var T=Object.defineProperty,V=Object.defineProperties,$=Object.getOwnPropertyDescriptors,N=Object.getOwnPropertySymbols,U=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable,A=(e,t,r)=>t in e?T(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,B=(e,t)=>{for(var r in t||(t={}))U.call(t,r)&&A(e,r,t[r]);if(N)for(var r of N(t))W.call(t,r)&&A(e,r,t[r]);return e},G=(e,t)=>V(e,$(t));var H=Object.defineProperty,J=Object.getOwnPropertySymbols,Q=Object.prototype.hasOwnProperty,X=Object.prototype.propertyIsEnumerable,Y=(e,t,r)=>t in e?H(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Z=(e,t)=>{for(var r in t||(t={}))Q.call(t,r)&&Y(e,r,t[r]);if(J)for(var r of J(t))X.call(t,r)&&Y(e,r,t[r]);return e};exports.LDProvider=S,exports.asyncWithLDProvider=function(r){return n=this,o=null,s=function*(){var n,o;const{clientSideID:s,flags:i,options:a,reactOptions:l}=r,c=B(B({},u),l),f=null!=(n=p(r))?n:{anonymous:!0,kind:"user"};let O,g={};const v=null!=(o=yield r.ldClient)?o:t.initialize(s,f,B(B({},b),a));try{yield v.waitForInitialization(r.timeout),g=y(v,i)}catch(e){O=e}const x=(null==a?void 0:a.bootstrap)&&"localStorage"!==a.bootstrap?a.bootstrap:g;return({children:t})=>{const[r,n]=e.useState((()=>G(B({unproxiedFlags:x},h(v,x,c,i)),{ldClient:v,error:O})));e.useEffect((()=>{function e(e){const t=d(e,i);Object.keys(t).length>0&&n((e=>{const r=B(B({},e.unproxiedFlags),t);return B(G(B({},e),{unproxiedFlags:r}),h(v,r,c,i))}))}function t(){const e=y(v,i);n((t=>B(G(B({},t),{unproxiedFlags:e}),h(v,e,c,i))))}function r(e){n((t=>G(B({},t),{error:e})))}return v.on("change",e),(null==O?void 0:O.name.toLowerCase().includes("timeout"))&&(v.on("failed",r),v.on("ready",t)),function(){v.off("change",e),v.off("failed",r),v.off("ready",t)}}),[]);const o=r,{unproxiedFlags:s}=o,a=((e,t)=>{var r={};for(var n in e)U.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&N)for(var n of N(e))t.indexOf(n)<0&&W.call(e,n)&&(r[n]=e[n]);return r})(o,["unproxiedFlags"]),{reactContext:l}=c;return e.createElement(l.Provider,{value:a},t)}},new Promise(((e,t)=>{var r=e=>{try{a(s.next(e))}catch(e){t(e)}},i=e=>{try{a(s.throw(e))}catch(e){t(e)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(r,i);a((s=s.apply(n,o)).next())}));var n,o,s},exports.camelCaseKeys=f,exports.defaultReactOptions=u,exports.reactSdkContextFactory=i,exports.useFlags=t=>{const{flags:r}=e.useContext(null!=t?t:u.reactContext);return r},exports.useLDClient=t=>{const{ldClient:r}=e.useContext(null!=t?t:u.reactContext);return r},exports.useLDClientError=function(t){const{error:r}=e.useContext(null!=t?t:u.reactContext);return r},exports.withLDConsumer=function(e={clientOnly:!1}){return function(t){var r;const n=null!=(r=e.reactContext)?r:u.reactContext;return r=>s.createElement(n.Consumer,null,(({flags:n,ldClient:o})=>e.clientOnly?s.createElement(t,Z({ldClient:o},r)):s.createElement(t,Z({flags:n,ldClient:o},r))))}},exports.withLDProvider=function(e){return function(t){const{reactOptions:r}=e,o=q(q({},u),r),i=(a=q({},e),K(a,L({reactOptions:o})));var a;function l(e){return s.createElement(S,q({},i),s.createElement(t,q({},e)))}return n(l,t),l}},Object.keys(t).forEach((function(e){"default"===e||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return t[e]}})})); | ||
"use strict";var e=require("react"),t=require("launchdarkly-js-client-sdk"),r=require("lodash.camelcase"),n=require("hoist-non-react-statics");function o(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=o(e);const i=()=>e.createContext({flags:{},flagKeyMap:{},ldClient:void 0}),a=i(),{Provider:l,Consumer:c}=a,u={useCamelCaseFlagKeys:!0,sendEventsOnFlagRead:!0,reactContext:a},p=e=>{var t;return null!=(t=e.context)?t:e.user},f=e=>{const t={};for(const n in e)0!==n.indexOf("$")&&(t[r(n)]=e[n]);return t},d=(e,t)=>{const r={};for(const n in e)t&&void 0===t[n]||(r[n]=e[n].current);return r},y=(e,t)=>{const r=e.allFlags();return t?Object.keys(t).reduce(((e,n)=>(e[n]=Object.prototype.hasOwnProperty.call(r,n)?r[n]:t[n],e)),{}):r};function h(e,t,n=u,o){const s=function(e,t){if(void 0===t)return e;return Object.keys(t).reduce(((t,r)=>(O(e,r)&&(t[r]=e[r]),t)),{})}(t,o),{useCamelCaseFlagKeys:i=!0}=n,[a,l={}]=i?function(e){const t={},n={};for(const o in e){if(0===o.indexOf("$"))continue;const s=r(o);t[s]=e[o],n[s]=o}return[t,n]}(s):[s];return{flags:n.sendEventsOnFlagRead?g(e,a,l,i):a,flagKeyMap:l}}function O(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function g(e,t,r,n){return new Proxy(t,{get(t,o,s){const i=Reflect.get(t,o,s),a=n&&O(r,o)||O(t,o);if("symbol"==typeof o||!a)return i;if(void 0===i)return;const l=n?r[o]:o;return e.variation(l,i)}})}f.camelCaseKeys=f;const b={wrapperName:"react-client-sdk",wrapperVersion:"3.7.0-beta.2",sendEventsOnlyForVariation:!0};var v=Object.defineProperty,x=Object.defineProperties,m=Object.getOwnPropertyDescriptors,C=Object.getOwnPropertySymbols,j=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable,w=(e,t,r)=>t in e?v(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,F=(e,t)=>{for(var r in t||(t={}))j.call(t,r)&&w(e,r,t[r]);if(C)for(var r of C(t))P.call(t,r)&&w(e,r,t[r]);return e},E=(e,t)=>x(e,m(t)),D=(e,t,r)=>new Promise(((n,o)=>{var s=e=>{try{a(r.next(e))}catch(e){o(e)}},i=e=>{try{a(r.throw(e))}catch(e){o(e)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(s,i);a((r=r.apply(e,t)).next())}));class S extends e.Component{constructor(e){super(e),this.getReactOptions=()=>F(F({},u),this.props.reactOptions),this.subscribeToChanges=e=>{const{flags:t}=this.props;e.on("change",(r=>{const n=this.getReactOptions(),o=d(r,t),s=F(F({},this.state.unproxiedFlags),o);Object.keys(o).length>0&&this.setState((r=>F(E(F({},r),{unproxiedFlags:s}),h(e,s,n,t))))}))},this.onFailed=(e,t)=>{this.setState((e=>E(F({},e),{error:t})))},this.onReady=(e,t,r)=>{const n=y(e,r);this.setState((o=>F(E(F({},o),{unproxiedFlags:n}),h(e,n,t,r))))},this.prepareLDClient=()=>D(this,null,(function*(){var e;const{clientSideID:r,flags:n,options:o}=this.props;let s=yield this.props.ldClient;const i=this.getReactOptions();let a,l=this.state.unproxiedFlags;if(s)l=y(s,n);else{const c=null!=(e=p(this.props))?e:{anonymous:!0,kind:"user"};s=t.initialize(r,c,F(F({},b),o));try{yield s.waitForInitialization(this.props.timeout),l=y(s,n)}catch(e){a=e,(null==a?void 0:a.name.toLowerCase().includes("timeout"))&&(s.on("failed",this.onFailed),s.on("ready",(()=>{this.onReady(s,i,n)})))}}this.setState((e=>E(F(E(F({},e),{unproxiedFlags:l}),h(s,l,i,n)),{ldClient:s,error:a}))),this.subscribeToChanges(s)}));const{options:r}=e;if(this.state={flags:{},unproxiedFlags:{},flagKeyMap:{}},r){const{bootstrap:e}=r;if(e&&"localStorage"!==e){const{useCamelCaseFlagKeys:t}=this.getReactOptions();this.state={flags:t?f(e):e,unproxiedFlags:e,flagKeyMap:{}}}}}componentDidMount(){return D(this,null,(function*(){const{deferInitialization:e}=this.props;e&&!p(this.props)||(yield this.prepareLDClient())}))}componentDidUpdate(e){return D(this,null,(function*(){const{deferInitialization:t}=this.props,r=!p(e)&&p(this.props);t&&r&&(yield this.prepareLDClient())}))}render(){const{flags:t,flagKeyMap:r,ldClient:n,error:o}=this.state,{reactContext:s}=this.getReactOptions();return e.createElement(s.Provider,{value:{flags:t,flagKeyMap:r,ldClient:n,error:o}},this.props.children)}}var k=Object.defineProperty,K=Object.defineProperties,L=Object.getOwnPropertyDescriptors,R=Object.getOwnPropertySymbols,I=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable,M=(e,t,r)=>t in e?k(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,q=(e,t)=>{for(var r in t||(t={}))I.call(t,r)&&M(e,r,t[r]);if(R)for(var r of R(t))z.call(t,r)&&M(e,r,t[r]);return e};var T=Object.defineProperty,V=Object.defineProperties,$=Object.getOwnPropertyDescriptors,N=Object.getOwnPropertySymbols,U=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable,A=(e,t,r)=>t in e?T(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,B=(e,t)=>{for(var r in t||(t={}))U.call(t,r)&&A(e,r,t[r]);if(N)for(var r of N(t))W.call(t,r)&&A(e,r,t[r]);return e},G=(e,t)=>V(e,$(t));var H=Object.defineProperty,J=Object.getOwnPropertySymbols,Q=Object.prototype.hasOwnProperty,X=Object.prototype.propertyIsEnumerable,Y=(e,t,r)=>t in e?H(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Z=(e,t)=>{for(var r in t||(t={}))Q.call(t,r)&&Y(e,r,t[r]);if(J)for(var r of J(t))X.call(t,r)&&Y(e,r,t[r]);return e};exports.LDProvider=S,exports.asyncWithLDProvider=function(r){return n=this,o=null,s=function*(){var n,o;const{clientSideID:s,flags:i,options:a,reactOptions:l}=r,c=B(B({},u),l),f=null!=(n=p(r))?n:{anonymous:!0,kind:"user"};let O,g={};const v=null!=(o=yield r.ldClient)?o:t.initialize(s,f,B(B({},b),a));try{yield v.waitForInitialization(r.timeout),g=y(v,i)}catch(e){O=e}const x=(null==a?void 0:a.bootstrap)&&"localStorage"!==a.bootstrap?a.bootstrap:g;return({children:t})=>{const[r,n]=e.useState((()=>G(B({unproxiedFlags:x},h(v,x,c,i)),{ldClient:v,error:O})));e.useEffect((()=>{function e(e){const t=d(e,i);Object.keys(t).length>0&&n((e=>{const r=B(B({},e.unproxiedFlags),t);return B(G(B({},e),{unproxiedFlags:r}),h(v,r,c,i))}))}function t(){const e=y(v,i);n((t=>B(G(B({},t),{unproxiedFlags:e}),h(v,e,c,i))))}function r(e){n((t=>G(B({},t),{error:e})))}return v.on("change",e),(null==O?void 0:O.name.toLowerCase().includes("timeout"))&&(v.on("failed",r),v.on("ready",t)),function(){v.off("change",e),v.off("failed",r),v.off("ready",t)}}),[]);const o=r,{unproxiedFlags:s}=o,a=((e,t)=>{var r={};for(var n in e)U.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&N)for(var n of N(e))t.indexOf(n)<0&&W.call(e,n)&&(r[n]=e[n]);return r})(o,["unproxiedFlags"]),{reactContext:l}=c;return e.createElement(l.Provider,{value:a},t)}},new Promise(((e,t)=>{var r=e=>{try{a(s.next(e))}catch(e){t(e)}},i=e=>{try{a(s.throw(e))}catch(e){t(e)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(r,i);a((s=s.apply(n,o)).next())}));var n,o,s},exports.camelCaseKeys=f,exports.defaultReactOptions=u,exports.reactSdkContextFactory=i,exports.useFlags=t=>{const{flags:r}=e.useContext(null!=t?t:u.reactContext);return r},exports.useLDClient=t=>{const{ldClient:r}=e.useContext(null!=t?t:u.reactContext);return r},exports.useLDClientError=function(t){const{error:r}=e.useContext(null!=t?t:u.reactContext);return r},exports.withLDConsumer=function(e={clientOnly:!1}){return function(t){var r;const n=null!=(r=e.reactContext)?r:u.reactContext;return r=>s.createElement(n.Consumer,null,(({flags:n,ldClient:o})=>e.clientOnly?s.createElement(t,Z({ldClient:o},r)):s.createElement(t,Z({flags:n,ldClient:o},r))))}},exports.withLDProvider=function(e){return function(t){const{reactOptions:r}=e,o=q(q({},u),r),i=(a=q({},e),K(a,L({reactOptions:o})));var a;function l(e){return s.createElement(S,q({},i),s.createElement(t,q({},e)))}return n(l,t),l}},Object.keys(t).forEach((function(e){"default"===e||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return t[e]}})})); | ||
//# sourceMappingURL=index.js.map |
@@ -1,2 +0,2 @@ | ||
import*as e from"react";import t,{createContext as r,Component as n,useState as o,useEffect as a,useContext as i}from"react";import{initialize as s}from"launchdarkly-js-client-sdk";export*from"launchdarkly-js-client-sdk";import l from"lodash.camelcase";import c from"hoist-non-react-statics";const p=()=>r({flags:{},flagKeyMap:{},ldClient:void 0}),u=p(),{Provider:f,Consumer:d}=u,y={useCamelCaseFlagKeys:!0,sendEventsOnFlagRead:!0,reactContext:u},h=e=>{var t;return null!=(t=e.context)?t:e.user},g=e=>{const t={};for(const r in e)0!==r.indexOf("$")&&(t[l(r)]=e[r]);return t},O=(e,t)=>{const r={};for(const n in e)t&&void 0===t[n]||(r[n]=e[n].current);return r},b=(e,t)=>{const r=e.allFlags();return t?Object.keys(t).reduce(((e,n)=>(e[n]=Object.prototype.hasOwnProperty.call(r,n)?r[n]:t[n],e)),{}):r};function m(e,t,r=y,n){const o=function(e,t){if(void 0===t)return e;return Object.keys(t).reduce(((t,r)=>(v(e,r)&&(t[r]=e[r]),t)),{})}(t,n),{useCamelCaseFlagKeys:a=!0}=r,[i,s={}]=a?function(e){const t={},r={};for(const n in e){if(0===n.indexOf("$"))continue;const o=l(n);t[o]=e[n],r[o]=n}return[t,r]}(o):[o];return{flags:r.sendEventsOnFlagRead?C(e,i,s,a):i,flagKeyMap:s}}function v(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function C(e,t,r,n){return new Proxy(t,{get(t,o,a){const i=Reflect.get(t,o,a),s=n&&v(r,o)||v(t,o);if("symbol"==typeof o||!s)return i;if(void 0===i)return;const l=n?r[o]:o;return e.variation(l,i)}})}g.camelCaseKeys=g;const x={wrapperName:"react-client-sdk",wrapperVersion:"3.7.0-beta.1",sendEventsOnlyForVariation:!0};var j=Object.defineProperty,w=Object.defineProperties,P=Object.getOwnPropertyDescriptors,F=Object.getOwnPropertySymbols,E=Object.prototype.hasOwnProperty,S=Object.prototype.propertyIsEnumerable,k=(e,t,r)=>t in e?j(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,D=(e,t)=>{for(var r in t||(t={}))E.call(t,r)&&k(e,r,t[r]);if(F)for(var r of F(t))S.call(t,r)&&k(e,r,t[r]);return e},I=(e,t)=>w(e,P(t)),K=(e,t,r)=>new Promise(((n,o)=>{var a=e=>{try{s(r.next(e))}catch(e){o(e)}},i=e=>{try{s(r.throw(e))}catch(e){o(e)}},s=e=>e.done?n(e.value):Promise.resolve(e.value).then(a,i);s((r=r.apply(e,t)).next())}));class R extends n{constructor(e){super(e),this.getReactOptions=()=>D(D({},y),this.props.reactOptions),this.subscribeToChanges=e=>{const{flags:t}=this.props;e.on("change",(r=>{const n=this.getReactOptions(),o=O(r,t),a=D(D({},this.state.unproxiedFlags),o);Object.keys(o).length>0&&this.setState((r=>D(I(D({},r),{unproxiedFlags:a}),m(e,a,n,t))))}))},this.onFailed=(e,t)=>{this.setState((e=>I(D({},e),{error:t})))},this.onReady=(e,t,r)=>{const n=b(e,r);this.setState((o=>D(I(D({},o),{unproxiedFlags:n}),m(e,n,t,r))))},this.prepareLDClient=()=>K(this,null,(function*(){var e;const{clientSideID:t,flags:r,options:n}=this.props;let o=yield this.props.ldClient;const a=this.getReactOptions();let i,l=this.state.unproxiedFlags;if(o)l=b(o,r);else{const c=null!=(e=h(this.props))?e:{anonymous:!0,kind:"user"};o=s(t,c,D(D({},x),n));try{yield o.waitForInitialization(this.props.timeout),l=b(o,r)}catch(e){i=e,(null==i?void 0:i.name.toLowerCase().includes("timeout"))&&(o.on("failed",this.onFailed),o.on("ready",(()=>{this.onReady(o,a,r)})))}}this.setState((e=>I(D(I(D({},e),{unproxiedFlags:l}),m(o,l,a,r)),{ldClient:o,error:i}))),this.subscribeToChanges(o)}));const{options:t}=e;if(this.state={flags:{},unproxiedFlags:{},flagKeyMap:{}},t){const{bootstrap:e}=t;if(e&&"localStorage"!==e){const{useCamelCaseFlagKeys:t}=this.getReactOptions();this.state={flags:t?g(e):e,unproxiedFlags:e,flagKeyMap:{}}}}}componentDidMount(){return K(this,null,(function*(){const{deferInitialization:e}=this.props;e&&!h(this.props)||(yield this.prepareLDClient())}))}componentDidUpdate(e){return K(this,null,(function*(){const{deferInitialization:t}=this.props,r=!h(e)&&h(this.props);t&&r&&(yield this.prepareLDClient())}))}render(){const{flags:e,flagKeyMap:r,ldClient:n,error:o}=this.state,{reactContext:a}=this.getReactOptions();return t.createElement(a.Provider,{value:{flags:e,flagKeyMap:r,ldClient:n,error:o}},this.props.children)}}var M=Object.defineProperty,L=Object.defineProperties,z=Object.getOwnPropertyDescriptors,T=Object.getOwnPropertySymbols,V=Object.prototype.hasOwnProperty,$=Object.prototype.propertyIsEnumerable,N=(e,t,r)=>t in e?M(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,U=(e,t)=>{for(var r in t||(t={}))V.call(t,r)&&N(e,r,t[r]);if(T)for(var r of T(t))$.call(t,r)&&N(e,r,t[r]);return e};function q(t){return function(r){const{reactOptions:n}=t,o=U(U({},y),n),a=(i=U({},t),L(i,z({reactOptions:o})));var i;function s(t){return e.createElement(R,U({},a),e.createElement(r,U({},t)))}return c(s,r),s}}var A=Object.defineProperty,B=Object.defineProperties,G=Object.getOwnPropertyDescriptors,H=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,Q=Object.prototype.propertyIsEnumerable,W=(e,t,r)=>t in e?A(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,X=(e,t)=>{for(var r in t||(t={}))J.call(t,r)&&W(e,r,t[r]);if(H)for(var r of H(t))Q.call(t,r)&&W(e,r,t[r]);return e},Y=(e,t)=>B(e,G(t));function Z(e){return r=this,n=null,i=function*(){var r,n;const{clientSideID:i,flags:l,options:c,reactOptions:p}=e,u=X(X({},y),p),f=null!=(r=h(e))?r:{anonymous:!0,kind:"user"};let d,g={};const v=null!=(n=yield e.ldClient)?n:s(i,f,X(X({},x),c));try{yield v.waitForInitialization(e.timeout),g=b(v,l)}catch(e){d=e}const C=(null==c?void 0:c.bootstrap)&&"localStorage"!==c.bootstrap?c.bootstrap:g;return({children:e})=>{const[r,n]=o((()=>Y(X({unproxiedFlags:C},m(v,C,u,l)),{ldClient:v,error:d})));a((()=>{function e(e){const t=O(e,l);Object.keys(t).length>0&&n((e=>{const r=X(X({},e.unproxiedFlags),t);return X(Y(X({},e),{unproxiedFlags:r}),m(v,r,u,l))}))}function t(){const e=b(v,l);n((t=>X(Y(X({},t),{unproxiedFlags:e}),m(v,e,u,l))))}function r(e){n((t=>Y(X({},t),{error:e})))}return v.on("change",e),(null==d?void 0:d.name.toLowerCase().includes("timeout"))&&(v.on("failed",r),v.on("ready",t)),function(){v.off("change",e),v.off("failed",r),v.off("ready",t)}}),[]);const i=r,{unproxiedFlags:s}=i,c=((e,t)=>{var r={};for(var n in e)J.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&H)for(var n of H(e))t.indexOf(n)<0&&Q.call(e,n)&&(r[n]=e[n]);return r})(i,["unproxiedFlags"]),{reactContext:p}=u;return t.createElement(p.Provider,{value:c},e)}},new Promise(((e,t)=>{var o=e=>{try{s(i.next(e))}catch(e){t(e)}},a=e=>{try{s(i.throw(e))}catch(e){t(e)}},s=t=>t.done?e(t.value):Promise.resolve(t.value).then(o,a);s((i=i.apply(r,n)).next())}));var r,n,i}var _=Object.defineProperty,ee=Object.getOwnPropertySymbols,te=Object.prototype.hasOwnProperty,re=Object.prototype.propertyIsEnumerable,ne=(e,t,r)=>t in e?_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,oe=(e,t)=>{for(var r in t||(t={}))te.call(t,r)&&ne(e,r,t[r]);if(ee)for(var r of ee(t))re.call(t,r)&&ne(e,r,t[r]);return e};function ae(t={clientOnly:!1}){return function(r){var n;const o=null!=(n=t.reactContext)?n:y.reactContext;return n=>e.createElement(o.Consumer,null,(({flags:o,ldClient:a})=>t.clientOnly?e.createElement(r,oe({ldClient:a},n)):e.createElement(r,oe({flags:o,ldClient:a},n))))}}const ie=e=>{const{flags:t}=i(null!=e?e:y.reactContext);return t},se=e=>{const{ldClient:t}=i(null!=e?e:y.reactContext);return t};function le(e){const{error:t}=i(null!=e?e:y.reactContext);return t}export{R as LDProvider,Z as asyncWithLDProvider,g as camelCaseKeys,y as defaultReactOptions,p as reactSdkContextFactory,ie as useFlags,se as useLDClient,le as useLDClientError,ae as withLDConsumer,q as withLDProvider}; | ||
import*as e from"react";import t,{createContext as r,Component as n,useState as o,useEffect as a,useContext as i}from"react";import{initialize as s}from"launchdarkly-js-client-sdk";export*from"launchdarkly-js-client-sdk";import l from"lodash.camelcase";import c from"hoist-non-react-statics";const p=()=>r({flags:{},flagKeyMap:{},ldClient:void 0}),u=p(),{Provider:f,Consumer:d}=u,y={useCamelCaseFlagKeys:!0,sendEventsOnFlagRead:!0,reactContext:u},h=e=>{var t;return null!=(t=e.context)?t:e.user},g=e=>{const t={};for(const r in e)0!==r.indexOf("$")&&(t[l(r)]=e[r]);return t},O=(e,t)=>{const r={};for(const n in e)t&&void 0===t[n]||(r[n]=e[n].current);return r},b=(e,t)=>{const r=e.allFlags();return t?Object.keys(t).reduce(((e,n)=>(e[n]=Object.prototype.hasOwnProperty.call(r,n)?r[n]:t[n],e)),{}):r};function m(e,t,r=y,n){const o=function(e,t){if(void 0===t)return e;return Object.keys(t).reduce(((t,r)=>(v(e,r)&&(t[r]=e[r]),t)),{})}(t,n),{useCamelCaseFlagKeys:a=!0}=r,[i,s={}]=a?function(e){const t={},r={};for(const n in e){if(0===n.indexOf("$"))continue;const o=l(n);t[o]=e[n],r[o]=n}return[t,r]}(o):[o];return{flags:r.sendEventsOnFlagRead?C(e,i,s,a):i,flagKeyMap:s}}function v(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function C(e,t,r,n){return new Proxy(t,{get(t,o,a){const i=Reflect.get(t,o,a),s=n&&v(r,o)||v(t,o);if("symbol"==typeof o||!s)return i;if(void 0===i)return;const l=n?r[o]:o;return e.variation(l,i)}})}g.camelCaseKeys=g;const x={wrapperName:"react-client-sdk",wrapperVersion:"3.7.0-beta.2",sendEventsOnlyForVariation:!0};var j=Object.defineProperty,w=Object.defineProperties,P=Object.getOwnPropertyDescriptors,F=Object.getOwnPropertySymbols,E=Object.prototype.hasOwnProperty,S=Object.prototype.propertyIsEnumerable,k=(e,t,r)=>t in e?j(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,D=(e,t)=>{for(var r in t||(t={}))E.call(t,r)&&k(e,r,t[r]);if(F)for(var r of F(t))S.call(t,r)&&k(e,r,t[r]);return e},I=(e,t)=>w(e,P(t)),K=(e,t,r)=>new Promise(((n,o)=>{var a=e=>{try{s(r.next(e))}catch(e){o(e)}},i=e=>{try{s(r.throw(e))}catch(e){o(e)}},s=e=>e.done?n(e.value):Promise.resolve(e.value).then(a,i);s((r=r.apply(e,t)).next())}));class R extends n{constructor(e){super(e),this.getReactOptions=()=>D(D({},y),this.props.reactOptions),this.subscribeToChanges=e=>{const{flags:t}=this.props;e.on("change",(r=>{const n=this.getReactOptions(),o=O(r,t),a=D(D({},this.state.unproxiedFlags),o);Object.keys(o).length>0&&this.setState((r=>D(I(D({},r),{unproxiedFlags:a}),m(e,a,n,t))))}))},this.onFailed=(e,t)=>{this.setState((e=>I(D({},e),{error:t})))},this.onReady=(e,t,r)=>{const n=b(e,r);this.setState((o=>D(I(D({},o),{unproxiedFlags:n}),m(e,n,t,r))))},this.prepareLDClient=()=>K(this,null,(function*(){var e;const{clientSideID:t,flags:r,options:n}=this.props;let o=yield this.props.ldClient;const a=this.getReactOptions();let i,l=this.state.unproxiedFlags;if(o)l=b(o,r);else{const c=null!=(e=h(this.props))?e:{anonymous:!0,kind:"user"};o=s(t,c,D(D({},x),n));try{yield o.waitForInitialization(this.props.timeout),l=b(o,r)}catch(e){i=e,(null==i?void 0:i.name.toLowerCase().includes("timeout"))&&(o.on("failed",this.onFailed),o.on("ready",(()=>{this.onReady(o,a,r)})))}}this.setState((e=>I(D(I(D({},e),{unproxiedFlags:l}),m(o,l,a,r)),{ldClient:o,error:i}))),this.subscribeToChanges(o)}));const{options:t}=e;if(this.state={flags:{},unproxiedFlags:{},flagKeyMap:{}},t){const{bootstrap:e}=t;if(e&&"localStorage"!==e){const{useCamelCaseFlagKeys:t}=this.getReactOptions();this.state={flags:t?g(e):e,unproxiedFlags:e,flagKeyMap:{}}}}}componentDidMount(){return K(this,null,(function*(){const{deferInitialization:e}=this.props;e&&!h(this.props)||(yield this.prepareLDClient())}))}componentDidUpdate(e){return K(this,null,(function*(){const{deferInitialization:t}=this.props,r=!h(e)&&h(this.props);t&&r&&(yield this.prepareLDClient())}))}render(){const{flags:e,flagKeyMap:r,ldClient:n,error:o}=this.state,{reactContext:a}=this.getReactOptions();return t.createElement(a.Provider,{value:{flags:e,flagKeyMap:r,ldClient:n,error:o}},this.props.children)}}var M=Object.defineProperty,L=Object.defineProperties,z=Object.getOwnPropertyDescriptors,T=Object.getOwnPropertySymbols,V=Object.prototype.hasOwnProperty,$=Object.prototype.propertyIsEnumerable,N=(e,t,r)=>t in e?M(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,U=(e,t)=>{for(var r in t||(t={}))V.call(t,r)&&N(e,r,t[r]);if(T)for(var r of T(t))$.call(t,r)&&N(e,r,t[r]);return e};function q(t){return function(r){const{reactOptions:n}=t,o=U(U({},y),n),a=(i=U({},t),L(i,z({reactOptions:o})));var i;function s(t){return e.createElement(R,U({},a),e.createElement(r,U({},t)))}return c(s,r),s}}var A=Object.defineProperty,B=Object.defineProperties,G=Object.getOwnPropertyDescriptors,H=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,Q=Object.prototype.propertyIsEnumerable,W=(e,t,r)=>t in e?A(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,X=(e,t)=>{for(var r in t||(t={}))J.call(t,r)&&W(e,r,t[r]);if(H)for(var r of H(t))Q.call(t,r)&&W(e,r,t[r]);return e},Y=(e,t)=>B(e,G(t));function Z(e){return r=this,n=null,i=function*(){var r,n;const{clientSideID:i,flags:l,options:c,reactOptions:p}=e,u=X(X({},y),p),f=null!=(r=h(e))?r:{anonymous:!0,kind:"user"};let d,g={};const v=null!=(n=yield e.ldClient)?n:s(i,f,X(X({},x),c));try{yield v.waitForInitialization(e.timeout),g=b(v,l)}catch(e){d=e}const C=(null==c?void 0:c.bootstrap)&&"localStorage"!==c.bootstrap?c.bootstrap:g;return({children:e})=>{const[r,n]=o((()=>Y(X({unproxiedFlags:C},m(v,C,u,l)),{ldClient:v,error:d})));a((()=>{function e(e){const t=O(e,l);Object.keys(t).length>0&&n((e=>{const r=X(X({},e.unproxiedFlags),t);return X(Y(X({},e),{unproxiedFlags:r}),m(v,r,u,l))}))}function t(){const e=b(v,l);n((t=>X(Y(X({},t),{unproxiedFlags:e}),m(v,e,u,l))))}function r(e){n((t=>Y(X({},t),{error:e})))}return v.on("change",e),(null==d?void 0:d.name.toLowerCase().includes("timeout"))&&(v.on("failed",r),v.on("ready",t)),function(){v.off("change",e),v.off("failed",r),v.off("ready",t)}}),[]);const i=r,{unproxiedFlags:s}=i,c=((e,t)=>{var r={};for(var n in e)J.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&H)for(var n of H(e))t.indexOf(n)<0&&Q.call(e,n)&&(r[n]=e[n]);return r})(i,["unproxiedFlags"]),{reactContext:p}=u;return t.createElement(p.Provider,{value:c},e)}},new Promise(((e,t)=>{var o=e=>{try{s(i.next(e))}catch(e){t(e)}},a=e=>{try{s(i.throw(e))}catch(e){t(e)}},s=t=>t.done?e(t.value):Promise.resolve(t.value).then(o,a);s((i=i.apply(r,n)).next())}));var r,n,i}var _=Object.defineProperty,ee=Object.getOwnPropertySymbols,te=Object.prototype.hasOwnProperty,re=Object.prototype.propertyIsEnumerable,ne=(e,t,r)=>t in e?_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,oe=(e,t)=>{for(var r in t||(t={}))te.call(t,r)&&ne(e,r,t[r]);if(ee)for(var r of ee(t))re.call(t,r)&&ne(e,r,t[r]);return e};function ae(t={clientOnly:!1}){return function(r){var n;const o=null!=(n=t.reactContext)?n:y.reactContext;return n=>e.createElement(o.Consumer,null,(({flags:o,ldClient:a})=>t.clientOnly?e.createElement(r,oe({ldClient:a},n)):e.createElement(r,oe({flags:o,ldClient:a},n))))}}const ie=e=>{const{flags:t}=i(null!=e?e:y.reactContext);return t},se=e=>{const{ldClient:t}=i(null!=e?e:y.reactContext);return t};function le(e){const{error:t}=i(null!=e?e:y.reactContext);return t}export{R as LDProvider,Z as asyncWithLDProvider,g as camelCaseKeys,y as defaultReactOptions,p as reactSdkContextFactory,ie as useFlags,se as useLDClient,le as useLDClientError,ae as withLDConsumer,q as withLDProvider}; | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "launchdarkly-react-client-sdk", | ||
"version": "3.7.0-beta.1", | ||
"version": "3.7.0-beta.2", | ||
"description": "LaunchDarkly SDK for React", | ||
@@ -88,3 +88,3 @@ "author": "LaunchDarkly <team@launchdarkly.com>", | ||
"hoist-non-react-statics": "^3.3.2", | ||
"launchdarkly-js-client-sdk": "3.6.0-beta.3", | ||
"launchdarkly-js-client-sdk": "^3.7.0", | ||
"lodash.camelcase": "^4.3.0" | ||
@@ -91,0 +91,0 @@ }, |
150062
0+ Added
+ Added
- Removed
- Removed