UNPKG

hypertune

Version:

[Hypertune](https://www.hypertune.com/) is the most flexible platform for feature flags, A/B testing, analytics and app configuration. Built with full end-to-end type-safety, Git-style version control and local, synchronous, in-memory flag evaluation. Opt

22 lines (18 loc) 572 B
import { ObjectValue } from "../shared/types"; export default function decodeFlagValues< FlagValues extends ObjectValue, Flag extends keyof FlagValues & string, >({ flagPaths, encodedValues, }: { flagPaths: Flag[]; encodedValues: string; }): Pick<FlagValues, Flag> { const flagValues = JSON.parse(atob(encodedValues)) as Pick<FlagValues, Flag>; const missingFlags = flagPaths.filter((flag) => !(flag in flagValues)); if (missingFlags.length > 0) { throw new Error(`Missing flag values for: ${missingFlags.join(", ")}`); } return flagValues; }