@flag-engine/core 0.0.7 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("murmurhash-js");const t=e=>"string"==typeof e,r=e=>null==e,n=(e,a)=>0===e.length||e.every((e=>{if("inSegment"in e)return n(e.inSegment.rules,a);switch(e.operator){case"equals":return a[e.field]===e.value;case"not_equals":return a[e.field]!==e.value;case"greater_than":{const t=a[e.field];return!r(t)&&!r(e.value)&&t>e.value}case"less_than":{const t=a[e.field];return!r(t)&&!r(e.value)&&t<e.value}case"contains":{const r=a[e.field];return t(r)&&t(e.value)&&r.includes(e.value)}case"not_contains":{const r=a[e.field];return t(r)&&t(e.value)&&!r.includes(e.value)}case"in":{const t=a[e.field];return Array.isArray(e.value)&&-1!==e.value.indexOf(t)}case"not_in":{const t=a[e.field];return Array.isArray(e.value)&&-1===e.value.indexOf(t)}default:return!1}})),a=Math.pow(2,32),s=(t,r)=>{if(0===t.strategies.length)return!0;const s=((e,t)=>e.strategies.find((e=>n(e.rules,t))))(t,r);if(!s)return!1;if(0===s.variants.length)return!0;const u=((t,r)=>{t.variants.sort(((e,t)=>e.percent-t.percent));let n=0;const s=`${t.name}-${r}`,u=t.variants.find((
|
|
1
|
+
"use strict";var e=require("murmurhash-js");const t=e=>"string"==typeof e,r=e=>null==e,n=(e,a)=>0===e.length||e.every((e=>{if("inSegment"in e)return n(e.inSegment.rules,a);switch(e.operator){case"equals":return a[e.field]===e.value;case"not_equals":return a[e.field]!==e.value;case"greater_than":{const t=a[e.field];return!r(t)&&!r(e.value)&&t>e.value}case"less_than":{const t=a[e.field];return!r(t)&&!r(e.value)&&t<e.value}case"contains":{const r=a[e.field];return t(r)&&t(e.value)&&r.includes(e.value)}case"not_contains":{const r=a[e.field];return t(r)&&t(e.value)&&!r.includes(e.value)}case"in":{const t=a[e.field];return Array.isArray(e.value)&&-1!==e.value.indexOf(t)}case"not_in":{const t=a[e.field];return Array.isArray(e.value)&&-1===e.value.indexOf(t)}default:return!1}})),a=Math.pow(2,32),s=(t,r)=>{if(0===t.strategies.length)return!0;const s=((e,t)=>e.strategies.find((e=>n(e.rules,t))))(t,r);if(!s)return!1;if(0===s.variants.length)return!0;const u=((t,r)=>{t.variants.sort(((e,t)=>e.percent-t.percent));let n=0;const s=`${t.name}-${r}`,u=e.murmur3(s),l=t.variants.find((e=>{const t=u/a*100;if(n+=e.percent,t<=n)return e}));return l||!1})(s,r.__id);return!!u&&u.name};exports.createFlagEngine=e=>({createUserContext:t=>((e,t)=>{let r=t;return{evaluateAll:()=>{const t={};for(const n of e)t[n.key]="enabled"===n.status&&s(n,r);return t},evaluate:t=>{const n=e.find((e=>e.key===t));return!!n&&"disabled"!==n.status&&s(n,r)},setUserConfiguration:e=>{r=e}}})(e,t)});
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{murmur3 as e}from"murmurhash-js";const t=e=>"string"==typeof e,n=e=>null==e,r=(e,a)=>0===e.length||e.every((e=>{if("inSegment"in e)return r(e.inSegment.rules,a);switch(e.operator){case"equals":return a[e.field]===e.value;case"not_equals":return a[e.field]!==e.value;case"greater_than":{const t=a[e.field];return!n(t)&&!n(e.value)&&t>e.value}case"less_than":{const t=a[e.field];return!n(t)&&!n(e.value)&&t<e.value}case"contains":{const n=a[e.field];return t(n)&&t(e.value)&&n.includes(e.value)}case"not_contains":{const n=a[e.field];return t(n)&&t(e.value)&&!n.includes(e.value)}case"in":{const t=a[e.field];return Array.isArray(e.value)&&-1!==e.value.indexOf(t)}case"not_in":{const t=a[e.field];return Array.isArray(e.value)&&-1===e.value.indexOf(t)}default:return!1}})),a=Math.pow(2,32),s=(t,n)=>{if(0===t.strategies.length)return!0;const s=((e,t)=>e.strategies.find((e=>r(e.rules,t))))(t,n);if(!s)return!1;if(0===s.variants.length)return!0;const u=((t,n)=>{t.variants.sort(((e,t)=>e.percent-t.percent));let r=0;const s=`${t.name}-${n}`,u=t.variants.find((
|
|
1
|
+
import{murmur3 as e}from"murmurhash-js";const t=e=>"string"==typeof e,n=e=>null==e,r=(e,a)=>0===e.length||e.every((e=>{if("inSegment"in e)return r(e.inSegment.rules,a);switch(e.operator){case"equals":return a[e.field]===e.value;case"not_equals":return a[e.field]!==e.value;case"greater_than":{const t=a[e.field];return!n(t)&&!n(e.value)&&t>e.value}case"less_than":{const t=a[e.field];return!n(t)&&!n(e.value)&&t<e.value}case"contains":{const n=a[e.field];return t(n)&&t(e.value)&&n.includes(e.value)}case"not_contains":{const n=a[e.field];return t(n)&&t(e.value)&&!n.includes(e.value)}case"in":{const t=a[e.field];return Array.isArray(e.value)&&-1!==e.value.indexOf(t)}case"not_in":{const t=a[e.field];return Array.isArray(e.value)&&-1===e.value.indexOf(t)}default:return!1}})),a=Math.pow(2,32),s=(t,n)=>{if(0===t.strategies.length)return!0;const s=((e,t)=>e.strategies.find((e=>r(e.rules,t))))(t,n);if(!s)return!1;if(0===s.variants.length)return!0;const u=((t,n)=>{t.variants.sort(((e,t)=>e.percent-t.percent));let r=0;const s=`${t.name}-${n}`,u=e(s),l=t.variants.find((e=>{const t=u/a*100;if(r+=e.percent,t<=r)return e}));return l||!1})(s,n.__id);return!!u&&u.name},u=e=>({createUserContext:t=>((e,t)=>{let n=t;return{evaluateAll:()=>{const t={};for(const r of e)t[r.key]="enabled"===r.status&&s(r,n);return t},evaluate:t=>{const r=e.find((e=>e.key===t));return!!r&&"disabled"!==r.status&&s(r,n)},setUserConfiguration:e=>{n=e}}})(e,t)});export{u as createFlagEngine};
|