From d911da26d2582cfea56191f1ce508ccdfa1c23d5 Mon Sep 17 00:00:00 2001 From: Bilawal Hameed Date: Mon, 30 Mar 2020 11:18:18 +0200 Subject: [PATCH] [core/api] changed loading pattern to be a static factory method --- packages/core/src/api/app/FeatureFlags.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/core/src/api/app/FeatureFlags.tsx b/packages/core/src/api/app/FeatureFlags.tsx index fcde669bdd..f242683f63 100644 --- a/packages/core/src/api/app/FeatureFlags.tsx +++ b/packages/core/src/api/app/FeatureFlags.tsx @@ -60,15 +60,15 @@ export function validateFlagName(name: FeatureFlagName): void { * feature flags to the local browser for persisted storage. */ export class UserFlags extends Map { - constructor() { + static load(): UserFlags { validateBrowserCompat(); try { const jsonString = window.localStorage.getItem('featureFlags') as string; const json = JSON.parse(jsonString); - super(Object.entries(json)); + return new this(Object.entries(json)); } catch (err) { - super([]); + return new this([]); } } @@ -168,7 +168,7 @@ export class FeatureFlagsRegistry extends Array { */ export class FeatureFlags implements FeatureFlagsApi { public registeredFeatureFlags: FeatureFlagsRegistryItem[] = []; - private readonly userFlags: UserFlags = new UserFlags(); + private readonly userFlags: UserFlags = UserFlags.load(); getFlags(): UserFlags { return this.userFlags;