EvoCalculator.Client2/next.config.js
vchikalkin a650f88d73 constants: add colors
env: add NEXT_PUBLIC_USE_DEV_COLORS
2022-12-26 16:46:38 +03:00

68 lines
1.8 KiB
JavaScript

/* eslint-disable operator-linebreak */
/* eslint-disable @typescript-eslint/no-var-requires */
const { withPlugins } = require('next-composed-plugins');
const withLess = require('next-with-less');
const withGraphQL = require('next-plugin-graphql');
const { COLORS_DEV, COLORS_PROD } = require('./constants/colors');
const envSchema = require('./config/schema/env');
const urls = require('./constants/urls');
const { devices } = require('./@packages/ui/screens');
const { publicRuntimeConfigSchema } = require('./config/schema/runtime-config');
const { serverRuntimeConfigSchema } = require('./config/schema/runtime-config');
const env = envSchema.parse(process.env);
/** @type {import('next').NextConfig} */
const nextConfig = {
basePath: process.env.NEXT_PUBLIC_BASE_PATH,
output: 'standalone',
swcMinify: true,
reactStrictMode: true,
eslint: {
ignoreDuringBuilds: true,
},
compiler: {
styledComponents: true,
},
images: {
deviceSizes: devices,
},
async rewrites() {
return [
{
source: urls.URL_CRM_GRAPHQL_PROXY,
destination: env.NEXT_PUBLIC_URL_CRM_GRAPHQL_DIRECT,
},
{
source: urls.URL_GET_USER_PROXY,
destination: env.NEXT_PUBLIC_URL_GET_USER_DIRECT,
},
{
source: urls.URL_CORE_FINGAP_PROXY,
destination: env.NEXT_PUBLIC_URL_CORE_FINGAP_DIRECT,
},
];
},
publicRuntimeConfig: publicRuntimeConfigSchema.parse(env),
serverRuntimeConfig: serverRuntimeConfigSchema.parse(env),
};
const plugins = [withLess, withGraphQL];
const colorPrimary = env.NEXT_PUBLIC_USE_DEV_COLORS
? COLORS_DEV.COLOR_PRIMARY
: COLORS_PROD.COLOR_PRIMARY;
const config = {
...nextConfig,
lessLoaderOptions: {
lessOptions: {
modifyVars: {
'primary-color': colorPrimary,
},
},
},
};
module.exports = withPlugins(config, plugins);