next.js/examples/cms-sitecore-xmcloud/scripts/config/plugins/scjssconfig.ts
scjssconfig.ts30 lines815 B
import { ConfigPlugin, JssConfig } from "..";

/**
 * This plugin will set config props based on scjssconfig.json.
 * scjssconfig.json may not exist if you've never run `jss setup` (development)
 * or are depending on environment variables instead (production).
 */
class ScJssConfigPlugin implements ConfigPlugin {
  order = 1;

  async exec(config: JssConfig) {
    let scJssConfig;
    try {
      scJssConfig = require("scjssconfig.json");
    } catch (e) {
      return config;
    }

    if (!scJssConfig) return config;

    return Object.assign({}, config, {
      sitecoreApiKey: config.sitecoreApiKey || scJssConfig.sitecore?.apiKey,
      sitecoreApiHost:
        config.sitecoreApiHost || scJssConfig.sitecore?.layoutServiceHost,
    });
  }
}

export const scjssconfigPlugin = new ScJssConfigPlugin();
Quest for Codev2.0.0
/
SIGN IN