decord/alpha/source/utils/ExperimentUtils.tsx

139 lines
3.9 KiB
TypeScript
Raw Permalink Normal View History

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