UNPKG

@carto/react-core

Version:
36 lines (30 loc) 790 B
export const Flags = Object.freeze({ REMOTE_WIDGETS: '2023-remote-widgets' }); // Default flags let featureFlags = [Flags.REMOTE_WIDGETS]; export function setFlags(flags) { const isValidFlag = (f) => typeof f === 'string' && f; if (Array.isArray(flags) && flags.every(isValidFlag)) { featureFlags = flags; } else if ( !Array.isArray(flags) && typeof flags === 'object' && Object.keys(flags).every(isValidFlag) ) { featureFlags = []; for (const [flag, value] of Object.entries(flags)) { if (value) { featureFlags.push(flag); } } } else { throw new Error(`Invalid feature flags: ${flags}`); } } export function clearFlags() { featureFlags = []; } export function hasFlag(flag) { return featureFlags.includes(flag); }