11.26 修改K线图样式
This commit is contained in:
113
node_modules/@posthog/core/dist/featureFlagUtils.mjs
generated
vendored
Normal file
113
node_modules/@posthog/core/dist/featureFlagUtils.mjs
generated
vendored
Normal file
@@ -0,0 +1,113 @@
|
||||
const normalizeFlagsResponse = (flagsResponse)=>{
|
||||
if ('flags' in flagsResponse) {
|
||||
const featureFlags = getFlagValuesFromFlags(flagsResponse.flags);
|
||||
const featureFlagPayloads = getPayloadsFromFlags(flagsResponse.flags);
|
||||
return {
|
||||
...flagsResponse,
|
||||
featureFlags,
|
||||
featureFlagPayloads
|
||||
};
|
||||
}
|
||||
{
|
||||
const featureFlags = flagsResponse.featureFlags ?? {};
|
||||
const featureFlagPayloads = Object.fromEntries(Object.entries(flagsResponse.featureFlagPayloads || {}).map(([k, v])=>[
|
||||
k,
|
||||
parsePayload(v)
|
||||
]));
|
||||
const flags = Object.fromEntries(Object.entries(featureFlags).map(([key, value])=>[
|
||||
key,
|
||||
getFlagDetailFromFlagAndPayload(key, value, featureFlagPayloads[key])
|
||||
]));
|
||||
return {
|
||||
...flagsResponse,
|
||||
featureFlags,
|
||||
featureFlagPayloads,
|
||||
flags
|
||||
};
|
||||
}
|
||||
};
|
||||
function getFlagDetailFromFlagAndPayload(key, value, payload) {
|
||||
return {
|
||||
key: key,
|
||||
enabled: 'string' == typeof value ? true : value,
|
||||
variant: 'string' == typeof value ? value : void 0,
|
||||
reason: void 0,
|
||||
metadata: {
|
||||
id: void 0,
|
||||
version: void 0,
|
||||
payload: payload ? JSON.stringify(payload) : void 0,
|
||||
description: void 0
|
||||
}
|
||||
};
|
||||
}
|
||||
const getFlagValuesFromFlags = (flags)=>Object.fromEntries(Object.entries(flags ?? {}).map(([key, detail])=>[
|
||||
key,
|
||||
getFeatureFlagValue(detail)
|
||||
]).filter(([, value])=>void 0 !== value));
|
||||
const getPayloadsFromFlags = (flags)=>{
|
||||
const safeFlags = flags ?? {};
|
||||
return Object.fromEntries(Object.keys(safeFlags).filter((flag)=>{
|
||||
const details = safeFlags[flag];
|
||||
return details.enabled && details.metadata && void 0 !== details.metadata.payload;
|
||||
}).map((flag)=>{
|
||||
const payload = safeFlags[flag].metadata?.payload;
|
||||
return [
|
||||
flag,
|
||||
payload ? parsePayload(payload) : void 0
|
||||
];
|
||||
}));
|
||||
};
|
||||
const getFlagDetailsFromFlagsAndPayloads = (flagsResponse)=>{
|
||||
const flags = flagsResponse.featureFlags ?? {};
|
||||
const payloads = flagsResponse.featureFlagPayloads ?? {};
|
||||
return Object.fromEntries(Object.entries(flags).map(([key, value])=>[
|
||||
key,
|
||||
{
|
||||
key: key,
|
||||
enabled: 'string' == typeof value ? true : value,
|
||||
variant: 'string' == typeof value ? value : void 0,
|
||||
reason: void 0,
|
||||
metadata: {
|
||||
id: void 0,
|
||||
version: void 0,
|
||||
payload: payloads?.[key] ? JSON.stringify(payloads[key]) : void 0,
|
||||
description: void 0
|
||||
}
|
||||
}
|
||||
]));
|
||||
};
|
||||
const getFeatureFlagValue = (detail)=>void 0 === detail ? void 0 : detail.variant ?? detail.enabled;
|
||||
const parsePayload = (response)=>{
|
||||
if ('string' != typeof response) return response;
|
||||
try {
|
||||
return JSON.parse(response);
|
||||
} catch {
|
||||
return response;
|
||||
}
|
||||
};
|
||||
const createFlagsResponseFromFlagsAndPayloads = (featureFlags, featureFlagPayloads)=>{
|
||||
const allKeys = [
|
||||
...new Set([
|
||||
...Object.keys(featureFlags ?? {}),
|
||||
...Object.keys(featureFlagPayloads ?? {})
|
||||
])
|
||||
];
|
||||
const enabledFlags = allKeys.filter((flag)=>!!featureFlags[flag] || !!featureFlagPayloads[flag]).reduce((res, key)=>(res[key] = featureFlags[key] ?? true, res), {});
|
||||
const flagDetails = {
|
||||
featureFlags: enabledFlags,
|
||||
featureFlagPayloads: featureFlagPayloads ?? {}
|
||||
};
|
||||
return normalizeFlagsResponse(flagDetails);
|
||||
};
|
||||
const updateFlagValue = (flag, value)=>({
|
||||
...flag,
|
||||
enabled: getEnabledFromValue(value),
|
||||
variant: getVariantFromValue(value)
|
||||
});
|
||||
function getEnabledFromValue(value) {
|
||||
return 'string' == typeof value ? true : value;
|
||||
}
|
||||
function getVariantFromValue(value) {
|
||||
return 'string' == typeof value ? value : void 0;
|
||||
}
|
||||
export { createFlagsResponseFromFlagsAndPayloads, getFeatureFlagValue, getFlagDetailsFromFlagsAndPayloads, getFlagValuesFromFlags, getPayloadsFromFlags, normalizeFlagsResponse, parsePayload, updateFlagValue };
|
||||
Reference in New Issue
Block a user