/*
 * This file takes in process environment config and returns an array of variable that
 * are prefixed with SPARTACUS_ in a JSON.stringify format
 * Inspired by Razzle build-time varaibles
 * https://github.com/jaredpalmer/razzle/blob/86a6057c240b496fdf372f142e108c12cf7250f8/packages/razzle/config/env.js#L56-L93
 */

const SPARTACUS = /^SPARTACUS_/i;

const getClientEnvVars = (envConfig = { parsed: {} }) => {
  const { parsed } = envConfig;
  const envVars = Object.keys(parsed);
  const clientEnvVars = {};

  const prefixedEnvVars = envVars.filter(key => SPARTACUS.test(key));

  prefixedEnvVars.forEach(variable => {
    clientEnvVars[variable] = JSON.stringify(parsed[variable]);
  });

  return clientEnvVars;
};

export default getClientEnvVars;
