async function storeRuntimeData()

in src/js/background/background.js [139:190]


async function storeRuntimeData(opts={forceUpdate: false}) {  
  const existingPremiumAvailability = (await browser.storage.local.get("periodicalPremiumPlans")).periodicalPremiumPlans;
  // If we already fetched Premium availability in the past seven days,
  // don't fetch it again.
  const checkingRemainingDays = Date.now() - 7 * 24 * 60 * 60 * 1000;
  if (typeof existingPremiumAvailability === "object" && 
      existingPremiumAvailability.fetchedAt > checkingRemainingDays &&
      !opts.forceUpdate
      ) 
      {
    return;
  }

  const { relayApiSource } = await browser.storage.local.get("relayApiSource");
  if (!relayApiSource) {
    return;
  }
  const runtimeDataResponse = await fetch(
    `${relayApiSource}/runtime_data`,
    {
      headers: { Accept: "application/json" },
    },
  );
  const runtimeData = await runtimeDataResponse.json();
  
  browser.storage.local.set({
    waffleFlags: {
      WAFFLE_FLAGS: runtimeData.WAFFLE_FLAGS,
      fetchedAt: Date.now(),
    },
    fxaOrigin: {
      FXA_ORIGIN: runtimeData.FXA_ORIGIN,
      fetchedAt: Date.now(),
    },
    bundlePlans: {
      BUNDLE_PLANS: runtimeData.BUNDLE_PLANS,
      fetchedAt: Date.now(),
    },
    phonePlans: {
      PHONE_PLANS: runtimeData.PHONE_PLANS,
      fetchedAt: Date.now(),
    },
    periodicalPremiumPlans: {
      PERIODICAL_PREMIUM_PLANS: runtimeData.PERIODICAL_PREMIUM_PLANS,
      fetchedAt: Date.now(),
    },
    periodicalPremiumProductId: {
      PERIODICAL_PREMIUM_PRODUCT_ID: runtimeData.PERIODICAL_PREMIUM_PRODUCT_ID,
      fetchedAt: Date.now(),
    }
  })
}