react-native-reanimated
Version:
More powerful alternative to Animated library for React Native.
53 lines (50 loc) • 1.69 kB
JavaScript
;
import { logger } from "../common/index.js";
import { ReanimatedModule } from '../ReanimatedModule';
/** @knipIgnore */
export const DynamicFlags = {
EXAMPLE_DYNAMIC_FLAG: true,
init() {
Object.keys(DynamicFlags).forEach(key => {
if (key !== 'init' && key !== 'setFlag' && key !== 'getFlag') {
ReanimatedModule.setDynamicFeatureFlag(key, DynamicFlags[key]);
}
});
},
setFlag(name, value) {
if (name in DynamicFlags) {
DynamicFlags[name] = value;
ReanimatedModule.setDynamicFeatureFlag(name, value);
} else {
logger.warn(`The feature flag: '${name}' no longer exists, you can safely remove invocation of \`setDynamicFeatureFlag('${name}')\` from your code.`);
}
},
getFlag(name) {
if (name in DynamicFlags) {
return DynamicFlags[name];
} else {
logger.warn(`The feature flag: '${name}' no longer exists, you can safely remove invocation of \`getDynamicFeatureFlag('${name}')\` from your code.`);
return false;
}
}
};
// is-tree-shakable-suppress
DynamicFlags.init();
// Public API function to update a feature flag
export function setDynamicFeatureFlag(name, value) {
DynamicFlags.setFlag(name, value);
}
// Public API function to read a feature flag
export function getDynamicFeatureFlag(name) {
return DynamicFlags.getFlag(name);
}
const staticFeatureFlags = {};
export function getStaticFeatureFlag(name) {
if (name in staticFeatureFlags) {
return staticFeatureFlags[name];
}
const featureFlagValue = ReanimatedModule.getStaticFeatureFlag(name);
staticFeatureFlags[name] = featureFlagValue;
return featureFlagValue;
}
//# sourceMappingURL=index.js.map