aboutsummaryrefslogtreecommitdiffstats
path: root/app/builder/processCss.ts
diff options
context:
space:
mode:
authorLeonardo Bishop <me@leonardobishop.com>2023-08-28 22:47:13 +0100
committerLeonardo Bishop <me@leonardobishop.com>2023-08-28 22:47:13 +0100
commitd5802a34218a56357a7ae88eff1d3cfa86d41bc7 (patch)
tree8b11b7e490c33513d7581fa95b828c4064d17ecd /app/builder/processCss.ts
parent7c9abacf956c0e135c1094e38087e018dd572965 (diff)
Add SCSS support
Diffstat (limited to 'app/builder/processCss.ts')
-rw-r--r--app/builder/processCss.ts22
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;
+}