better config typings... made it way better XD
This commit is contained in:
parent
30ad4ac355
commit
b50e8882cc
|
@ -177,10 +177,10 @@ export default defineIntegration({
|
|||
|
||||
// Setup GhostCMS Theme Provider
|
||||
localIntegration(
|
||||
!options.ThemeProvider?.disableThemeProvider,
|
||||
!options.ThemeProvider.disableThemeProvider,
|
||||
"Theme Provider",
|
||||
ghostThemeProvider({
|
||||
theme: options.ThemeProvider?.theme,
|
||||
theme: options.ThemeProvider.theme,
|
||||
verbose,
|
||||
})
|
||||
);
|
||||
|
|
|
@ -6,7 +6,7 @@ import c from "picocolors";
|
|||
export default defineIntegration({
|
||||
name: "@matthiesenxyz/astro-ghostcms-rss",
|
||||
optionsSchema: z.object({
|
||||
verbose: z.boolean().optional().default(false),
|
||||
verbose: z.coerce.boolean().optional(),
|
||||
}),
|
||||
plugins: [...corePlugins],
|
||||
setup({ options }) {
|
||||
|
|
|
@ -6,7 +6,7 @@ import c from "picocolors";
|
|||
export default defineIntegration({
|
||||
name: "@matthiesenxyz/astro-ghostcms-satoriog",
|
||||
optionsSchema: z.object({
|
||||
verbose: z.boolean().optional().default(false),
|
||||
verbose: z.coerce.boolean().optional(),
|
||||
}),
|
||||
plugins: [...corePlugins],
|
||||
setup({ options }) {
|
||||
|
|
|
@ -6,16 +6,15 @@ import c from "picocolors";
|
|||
export default defineIntegration({
|
||||
name: "@matthiesenxyz/astro-ghostcms-themeprovider",
|
||||
optionsSchema: z.object({
|
||||
theme: z
|
||||
.string()
|
||||
.optional()
|
||||
.default("@matthiesenxyz/astro-ghostcms-theme-default"),
|
||||
verbose: z.boolean().optional().default(false),
|
||||
theme: z.string(),
|
||||
verbose: z.coerce.boolean().optional(),
|
||||
}),
|
||||
plugins: [...corePlugins],
|
||||
setup({ options }) {
|
||||
const { resolve } = createResolver(import.meta.url);
|
||||
|
||||
const DEFAULT_THEME = "@matthiesenxyz/astro-ghostcms-theme-default";
|
||||
|
||||
return {
|
||||
"astro:config:setup": ({ watchIntegration, injectRoute, logger }) => {
|
||||
watchIntegration(resolve());
|
||||
|
@ -37,7 +36,7 @@ export default defineIntegration({
|
|||
);
|
||||
|
||||
|
||||
if (options.theme === "@matthiesenxyz/astro-ghostcms-theme-default") {
|
||||
if (options.theme === DEFAULT_THEME) {
|
||||
verboseLogsInfo(
|
||||
c.blue("No theme is set, injecting default theme"),
|
||||
);
|
||||
|
|
|
@ -13,6 +13,7 @@ describe("GhostUserConfigSchema", () => {
|
|||
enableRSSFeed: true,
|
||||
enableOGImages: true,
|
||||
verbose: false,
|
||||
Integrations: {},
|
||||
};
|
||||
|
||||
const result = GhostUserConfigSchema.safeParse(validConfig);
|
||||
|
|
|
@ -13,34 +13,38 @@ export const GhostUserConfigSchema = z.object({
|
|||
* })
|
||||
* ],
|
||||
* }); */
|
||||
ghostURL: z.string().url().optional(),
|
||||
ghostURL: z.coerce.string().url("Must be a URL").optional(),
|
||||
/** OPTIONAL - Configure the Theme Provider
|
||||
* @ This option allows the user to configure the Theme Provider
|
||||
*/
|
||||
ThemeProvider: z
|
||||
.object({
|
||||
/** OPTIONAL - Disable the theme provider
|
||||
* @default false
|
||||
*/
|
||||
disableThemeProvider: z.boolean().optional().default(false),
|
||||
disableThemeProvider: z.coerce.boolean(),
|
||||
/** OPTIONAL - Set the theme you want to use
|
||||
* @default "@matthiesenxyz/astro-ghostcms-theme-default"
|
||||
*/
|
||||
theme: z
|
||||
.string()
|
||||
.optional()
|
||||
.default("@matthiesenxyz/astro-ghostcms-theme-default"),
|
||||
theme: z.string(),
|
||||
})
|
||||
.optional(),
|
||||
.optional()
|
||||
.default({
|
||||
disableThemeProvider: false,
|
||||
theme: "@matthiesenxyz/astro-ghostcms-theme-default"
|
||||
}),
|
||||
/** Allows the user to disable the provided 404 page */
|
||||
disableDefault404: z.boolean().optional().default(false),
|
||||
disableDefault404: z.coerce.boolean().optional(),
|
||||
/** Allows the user to disable the provided RSS Feed */
|
||||
enableRSSFeed: z.boolean().optional().default(true),
|
||||
enableRSSFeed: z.coerce.boolean().optional().default(true),
|
||||
/** Allows the user to Enable or Disable the default Satori OG Image Generation
|
||||
* @default true
|
||||
*/
|
||||
enableOGImages: z.boolean().optional().default(true),
|
||||
enableOGImages: z.coerce.boolean().optional().default(true),
|
||||
/** Allows the user to turn on/off Full Console Logs
|
||||
* @default true
|
||||
*/
|
||||
verbose: z.boolean().optional().default(false),
|
||||
verbose: z.coerce.boolean().optional(),
|
||||
/** OPTIONAL - Integrations Configuration
|
||||
* This option allows the user to configure the included integrations
|
||||
* Options shown are the availble options
|
||||
|
@ -60,7 +64,7 @@ export const GhostUserConfigSchema = z.object({
|
|||
*/
|
||||
sitemap: z.custom<SitemapOptions>().optional(),
|
||||
})
|
||||
.optional(),
|
||||
.optional().default({}),
|
||||
});
|
||||
|
||||
/** USER CONFIGURATION SCHEMA */
|
||||
|
|
|
@ -14,7 +14,7 @@ export default defineConfig({
|
|||
ThemeProvider: {
|
||||
theme: "@matthiesenxyz/astro-ghostcms-brutalbyelian",
|
||||
},
|
||||
verbose: false,
|
||||
verbose: true,
|
||||
}),
|
||||
],
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue