import type { GatsbyConfig } from "gatsby";

import { resolveComponentsPath } from "@griddo/cx";

/**
 * Este process.env.SPAWN_ASSET_PREFIX_WITH_DOMAIN se lee porque
 * se ha introducido en el spawnSync del la función gatsbyBuild.
 *
 *	...
 *	env: {
 *		...process.env,
 *		SPAWN_ASSET_PREFIX_WITH_DOMAIN: assetPrefixWithDomain, <--------------
 *		NODE_OPTIONS: undefined,
 *	},
 */
const griddoAssetPrefixWithDomain = process.env.SPAWN_ASSET_PREFIX_WITH_DOMAIN || undefined;

if (process.env.GRIDDO_SSG_VERBOSE_LOGS === "1") {
	console.log(`set config.assetPrefix=${griddoAssetPrefixWithDomain}`);
}

// Gatsby configuration file from client
const { plugins, ...gatsbyConfig } = require(resolveComponentsPath("builder.config.js"));

const config: GatsbyConfig = {
	// Client config
	...gatsbyConfig,
	plugins: [
		// Client plugins
		...plugins,

		// Defaults plugins
		{
			resolve: "gatsby-plugin-svgr-loader",
			options: {
				rule: {
					options: {
						titleProp: true,
						descProp: true,
						ref: true,
					},
				},
			},
		},
	],
};

if (griddoAssetPrefixWithDomain) {
	config.assetPrefix = griddoAssetPrefixWithDomain;
	// @ts-expect-error Must be null to exist, but must be different from assetPrefix
	config.pathPrefix = null;
}

export default config;
