Upgraded '@makerkit/data-loader-supabase-nextjs' to version 1.1.0 and replaced 'autoprefixer' with a newer version. Added new scripts to 'packages.json' and '.env.test' file for test environment. The changes also include removal of unnecessary 'eslint' dependencies and modifications for 'postcss' related dependencies.
71 lines
1.8 KiB
TypeScript
71 lines
1.8 KiB
TypeScript
import { z } from 'zod';
|
|
|
|
const production = process.env.NODE_ENV === 'production';
|
|
|
|
const AppConfigSchema = z
|
|
.object({
|
|
name: z
|
|
.string({
|
|
description: `This is the name of your SaaS. Ex. "Makerkit"`,
|
|
})
|
|
.min(1),
|
|
title: z
|
|
.string({
|
|
description: `This is the default title tag of your SaaS.`,
|
|
})
|
|
.min(1),
|
|
description: z.string({
|
|
description: `This is the default description of your SaaS.`,
|
|
}),
|
|
url: z.string().url({
|
|
message: `Please provide a valid URL. Example: 'https://example.com'`,
|
|
}),
|
|
locale: z
|
|
.string({
|
|
description: `This is the default locale of your SaaS.`,
|
|
})
|
|
.default('en'),
|
|
theme: z.enum(['light', 'dark', 'system']),
|
|
production: z.boolean(),
|
|
themeColor: z.string(),
|
|
themeColorDark: z.string(),
|
|
})
|
|
.refine(
|
|
(schema) => {
|
|
const isCI = process.env.NEXT_PUBLIC_CI;
|
|
|
|
if (isCI ?? !schema.production) {
|
|
return true;
|
|
}
|
|
|
|
return !schema.url.startsWith('http:');
|
|
},
|
|
{
|
|
message: `Please use a valid HTTPS URL in production.`,
|
|
path: ['url'],
|
|
},
|
|
)
|
|
.refine(
|
|
(schema) => {
|
|
return schema.themeColor !== schema.themeColorDark;
|
|
},
|
|
{
|
|
message: `Please provide different theme colors for light and dark themes.`,
|
|
path: ['themeColor'],
|
|
},
|
|
);
|
|
|
|
const appConfig = AppConfigSchema.parse({
|
|
name: process.env.NEXT_PUBLIC_PRODUCT_NAME,
|
|
title: process.env.NEXT_PUBLIC_SITE_TITLE,
|
|
description: process.env.NEXT_PUBLIC_SITE_DESCRIPTION,
|
|
url: process.env.NEXT_PUBLIC_SITE_URL,
|
|
locale: process.env.NEXT_PUBLIC_DEFAULT_LOCALE,
|
|
theme: process.env.NEXT_PUBLIC_DEFAULT_THEME_MODE,
|
|
themeColor: process.env.NEXT_PUBLIC_THEME_COLOR,
|
|
themeColorDark: process.env.NEXT_PUBLIC_THEME_COLOR_DARK,
|
|
production,
|
|
});
|
|
|
|
export default appConfig;
|