diff options
| author | Leonardo Bishop <me@leonardobishop.com> | 2023-08-28 22:47:13 +0100 |
|---|---|---|
| committer | Leonardo Bishop <me@leonardobishop.com> | 2023-08-28 22:47:13 +0100 |
| commit | d5802a34218a56357a7ae88eff1d3cfa86d41bc7 (patch) | |
| tree | 8b11b7e490c33513d7581fa95b828c4064d17ecd /app/builder/processCss.ts | |
| parent | 7c9abacf956c0e135c1094e38087e018dd572965 (diff) | |
Add SCSS support
Diffstat (limited to 'app/builder/processCss.ts')
| -rw-r--r-- | app/builder/processCss.ts | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/app/builder/processCss.ts b/app/builder/processCss.ts new file mode 100644 index 0000000..24aa3cf --- /dev/null +++ b/app/builder/processCss.ts @@ -0,0 +1,22 @@ +import fs from 'fs'; +import * as sass from 'sass'; +import CleanCSS from 'clean-css'; + +const cleanCss = new CleanCSS({ returnPromise: true }); + +export async function process(file: string): Promise<string> { + const scss = file.endsWith('.scss'); + + const content = fs.readFileSync(file, 'utf-8').toString(); + + let css: string; + if (scss) { + css = sass.compileString(content).css; + } else { + css = content; + } + + const minified = (await cleanCss.minify(css)).styles; + + return minified; +} |
