UNPKG

flagsmith-vue

Version:
1 lines 3.74 kB
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){if(k2===undefined)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:function(){return m[k]}}}Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===undefined)k2=k;o[k2]=m[k]});var __setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:true,value:v})}:function(o,v){o["default"]=v});var __importStar=this&&this.__importStar||function(){var ownKeys=function(o){ownKeys=Object.getOwnPropertyNames||function(o){var ar=[];for(var k in o)if(Object.prototype.hasOwnProperty.call(o,k))ar[ar.length]=k;return ar};return ownKeys(o)};return function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k=ownKeys(mod),i=0;i<k.length;i++)if(k[i]!=="default")__createBinding(result,mod,k[i]);__setModuleDefault(result,mod);return result}}();Object.defineProperty(exports,"__esModule",{value:true});exports.useFlagsmithInstance=exports.useFlagsmithLoading=exports.useTraits=exports.useFlags=exports.useFlagsmith=void 0;const flagsmith_1=__importStar(require("flagsmith"));const vue_1=require("vue");const FlagsmithInjectionKey=Symbol("FlagsmithInjectionKey");const injectHelper=flagsmithHelper=>{const helper=flagsmithHelper!==null&&flagsmithHelper!==void 0?flagsmithHelper:(0,vue_1.inject)(FlagsmithInjectionKey);if(helper===undefined){throw new TypeError(`Flagsmith vue: Helper should not be undefined.`)}return helper};const useFlagsmith=(options,flagsmithInstance=flagsmith_1.default,app)=>{const flags=(0,vue_1.ref)();const traits=(0,vue_1.ref)();const loadingState=(0,vue_1.ref)();void flagsmithInstance.init(options);flagsmithInstance._trigger=()=>{flags.value=flagsmithInstance.getAllFlags();traits.value=flagsmithInstance.getAllTraits()};flagsmithInstance._triggerLoadingState=()=>{loadingState.value=flagsmithInstance.loadingState};const helper={flags,traits,loadingState,flagsmithInstance};if(app){app.provide(FlagsmithInjectionKey,helper)}else{(0,vue_1.provide)(FlagsmithInjectionKey,helper)}return helper};exports.useFlagsmith=useFlagsmith;const useFlags=(flagsToUse,flagsmithHelper)=>{const{flags}=injectHelper(flagsmithHelper);return Object.fromEntries(flagsToUse.map(flag=>[flag,(0,vue_1.computed)(()=>{var _a;return(_a=flags.value)===null||_a===void 0?void 0:_a[flag]})]))};exports.useFlags=useFlags;const useTraits=(traitsToUse,flagsmithHelper)=>{const{traits}=injectHelper(flagsmithHelper);return Object.fromEntries(traitsToUse.map(trait=>[trait,(0,vue_1.computed)(()=>{var _a;return(_a=traits.value)===null||_a===void 0?void 0:_a[trait]})]))};exports.useTraits=useTraits;const useFlagsmithLoading=flagsmithHelper=>{const{loadingState}=injectHelper(flagsmithHelper);return{error:(0,vue_1.computed)(()=>{var _a,_b;return(_b=(_a=loadingState.value)===null||_a===void 0?void 0:_a.error)!==null&&_b!==void 0?_b:null}),isFetching:(0,vue_1.computed)(()=>{var _a;return Boolean((_a=loadingState.value)===null||_a===void 0?void 0:_a.isFetching)}),isLoading:(0,vue_1.computed)(()=>{var _a;return Boolean((_a=loadingState.value)===null||_a===void 0?void 0:_a.isLoading)}),source:(0,vue_1.computed)(()=>{var _a,_b;return(_b=(_a=loadingState.value)===null||_a===void 0?void 0:_a.source)!==null&&_b!==void 0?_b:flagsmith_1.FlagSource.NONE})}};exports.useFlagsmithLoading=useFlagsmithLoading;const useFlagsmithInstance=flagsmithHelper=>{const{flagsmithInstance}=injectHelper(flagsmithHelper);return flagsmithInstance};exports.useFlagsmithInstance=useFlagsmithInstance;exports.default=(app,options)=>{(0,exports.useFlagsmith)(options,flagsmith_1.default,app)};