From bb67204aca396a214cf5b7c2a679bc1aefdb7f87 Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Wed, 14 Feb 2024 10:36:21 +0000 Subject: [PATCH] fix: support string as plugin option in custom postcss plugin config In certain cases, the plugin option may be a string value, as shown in the example below: ```json { "plugins": { "tailwindcss/nesting": "postcss-nesting" } } ``` --- src/lib/styles/postcss-configuration.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/lib/styles/postcss-configuration.ts b/src/lib/styles/postcss-configuration.ts index 5da64e85d..d81022b46 100644 --- a/src/lib/styles/postcss-configuration.ts +++ b/src/lib/styles/postcss-configuration.ts @@ -2,11 +2,11 @@ import { readFile, readdir } from 'node:fs/promises'; import { join } from 'node:path'; export interface PostcssConfiguration { - plugins: [name: string, options?: object][]; + plugins: [name: string, options?: object | string][]; } interface RawPostcssConfiguration { - plugins?: Record | (string | [string, object])[]; + plugins?: Record | (string | [string, object])[]; } const postcssConfigurationFiles: string[] = ['postcss.config.json', '.postcssrc.json']; @@ -46,9 +46,7 @@ async function readPostcssConfiguration(configurationFile: string): Promise { +export async function loadPostcssConfiguration(projectRoot: string): Promise { // A configuration file can exist in the project or workspace root const searchDirectories = await generateSearchDirectories([projectRoot]); @@ -90,7 +88,7 @@ export async function loadPostcssConfiguration( const config: PostcssConfiguration = { plugins: [] }; for (const [name, options] of entries) { - if (!options || typeof options !== 'object') { + if (!options || (typeof options !== 'object' && typeof options !== 'string')) { continue; }