138 lines
3.9 KiB
TypeScript
138 lines
3.9 KiB
TypeScript
// Module ID: 8143
|
|
// Function ID: 8144
|
|
// Name: ExperimentUtils
|
|
// Dependencies: [32, 5016, 5017, 5021, 12, 2]
|
|
|
|
// Module 8143 (ExperimentUtils)
|
|
import _modDef12 from "module_12" /* 12 */;
|
|
import ExperimentManager from "ExperimentManager" /* 5021 */;
|
|
import _slicedToArray from "_slicedToArray" /* 32 */;
|
|
import ExperimentStore from "ExperimentStore" /* 5016 */;
|
|
import ExperimentConstants from "ExperimentConstants" /* 5017 */;
|
|
import size from "module_2" /* 2 */;
|
|
|
|
let hasOwnProperty;
|
|
let metroRequire;
|
|
function getFirstEligibleUserExperiment(arg0) {
|
|
const iter = arg0[Symbol.iterator]();
|
|
const nextResult = iter.next();
|
|
while (iter !== undefined) {
|
|
let tmp2 = nextResult;
|
|
let userExperimentDescriptor = ExperimentStore.getUserExperimentDescriptor(nextResult);
|
|
if (null != userExperimentDescriptor) {
|
|
let items = [tmp2, userExperimentDescriptor];
|
|
iter.return();
|
|
return items;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
({ ExperimentTypes: hasOwnProperty, ExperimentBuckets: metroRequire } = ExperimentConstants);
|
|
let obj = {
|
|
getFirstEligibleUserExperiment,
|
|
isInExperimentBucket(id, arg1) {
|
|
return ExperimentStore.getUserExperimentBucket(id) === arg1;
|
|
},
|
|
experimentDescriptorEquals(type, type2) {
|
|
if (null == type) {
|
|
if (null == type2) {
|
|
return true;
|
|
}
|
|
}
|
|
if (type === type2) {
|
|
return true;
|
|
} else {
|
|
if (null == type) {
|
|
if (null != type2) {
|
|
return false;
|
|
}
|
|
}
|
|
if (null != type) {
|
|
if (null == type2) {
|
|
return false;
|
|
}
|
|
}
|
|
if (null != type) {
|
|
if (null != type2) {
|
|
if (type.type !== type2.type) {
|
|
return false;
|
|
} else if (type.bucket !== type2.bucket) {
|
|
return false;
|
|
} else if (type.revision !== type2.revision) {
|
|
return false;
|
|
} else if (type.type === hasOwnProperty.USER) {
|
|
if (type2.type === tmp.USER) {
|
|
const obj = _modDef12;
|
|
return obj.isEqual(type.context, type2.context);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
},
|
|
trackExposureToFirstEligibleUserExperiment(arg0) {
|
|
const tmp = getFirstEligibleUserExperiment(arg0);
|
|
if (null != tmp) {
|
|
const tmp3 = _slicedToArray(tmp, 2);
|
|
const first = tmp3[0];
|
|
const obj = ExperimentManager;
|
|
const result = obj.trackExposureToExperiment(first, tmp5);
|
|
return tmp3[1];
|
|
}
|
|
},
|
|
getExperimentBucketName(bucket) {
|
|
let str = "Control";
|
|
if (bucket !== metroRequire.CONTROL) {
|
|
let str2 = "Not Eligible";
|
|
if (bucket !== metroRequire.NOT_ELIGIBLE) {
|
|
const _HermesInternal = HermesInternal;
|
|
str2 = "Treatment " + bucket;
|
|
}
|
|
str = str2;
|
|
}
|
|
return str;
|
|
},
|
|
getRecentExperimentBuckets(arg0, arg1) {
|
|
let closure_0 = arg1;
|
|
const entries = Object.entries(arg0);
|
|
return entries.reduce((acc, item) => {
|
|
let tmp;
|
|
let tmp2;
|
|
function isRecentExperiment(str, arg1) {
|
|
let tmp4;
|
|
let tmp5;
|
|
try {
|
|
[tmp4, tmp5] = closure_1_3(str.split("-"), 2);
|
|
closure_1_3(str.split("-"), 2);
|
|
const arr = tmp5;
|
|
if (null == tmp5) {
|
|
return false;
|
|
} else {
|
|
const _Date = Date;
|
|
const _HermesInternal = HermesInternal;
|
|
const self = this;
|
|
const self2 = this;
|
|
const date = new Date("" + tmp4 + "-" + arr.slice(0, 2) + "-01");
|
|
return date > arg1;
|
|
}
|
|
} catch (err) {
|
|
return false;
|
|
}
|
|
}
|
|
[tmp, tmp2] = item;
|
|
let tmp3 = isRecentExperiment(tmp, closure_0);
|
|
if (tmp3) {
|
|
const tmp4 = metroRequire;
|
|
tmp3 = tmp2 > metroRequire.CONTROL;
|
|
}
|
|
if (tmp3) {
|
|
acc[tmp] = tmp2;
|
|
}
|
|
return acc;
|
|
}, {});
|
|
}
|
|
};
|
|
let result = size.fileFinishedImporting("utils/ExperimentUtils.tsx");
|
|
|
|
export default obj;
|