-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgenerateCss.ts
44 lines (41 loc) · 1.1 KB
/
generateCss.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import postcss from 'postcss';
import tailwindcss from 'tailwindcss';
import { TailwindConfig } from 'tailwindcss/tailwind-config';
export default async function generateCss(
plugin: Function,
config: TailwindConfig | { [key: string]: string } = {},
{
// layers
base = false,
components = false,
utilities = true,
}: {
base?: boolean;
components?: boolean;
utilities?: boolean;
} = {
base: false,
components: false,
utilities: true,
}
) {
const process = `
${base ? '@tailwind base;' : ''}
${components ? '@tailwind components;' : ''}
${utilities ? '@tailwind utilities;' : ''}
`;
const result = await postcss(
tailwindcss({
...config,
// @ts-ignore
corePlugins: config.corePlugins ?? [],
// @ts-ignore
plugins: [...(config.plugins ?? []), plugin],
// @ts-ignore
variants: config.variants ?? {},
})
).process(process, {
from: undefined,
});
return result.css;
}