diff options
Diffstat (limited to 'web/source/lib/split-css.js')
-rw-r--r-- | web/source/lib/split-css.js | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/web/source/lib/split-css.js b/web/source/lib/split-css.js deleted file mode 100644 index 732223bb7..000000000 --- a/web/source/lib/split-css.js +++ /dev/null @@ -1,82 +0,0 @@ -/* - GoToSocial - Copyright (C) 2021-2022 GoToSocial Authors admin@gotosocial.org - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -"use strict"; - -const fs = require("fs"); -const path = require("path"); - -const {Writable} = require("stream"); -const out = require("./output-path"); - -const fromRegex = /\/\* from (.+?) \*\//; -module.exports = function splitCSS(outputEmitter) { - return function() { - let chunks = []; - return new Writable({ - write: function(chunk, encoding, next) { - chunks.push(chunk); - next(); - }, - - final: function() { - let stream = chunks.join(""); - let input; - let content = []; - - function write() { - if (content.length != 0) { - if (input == undefined) { - if (content[0].length != 0) { - throw new Error("Got CSS content without filename, can't output: ", content); - } - } else { - outputEmitter.emit("update", {type: "CSS", updates: [input]}); - fs.writeFileSync(out(input), content.join("\n")); - } - content = []; - } - } - - const cssDir = path.join(__dirname, "../css"); - - stream.split("\n").forEach((line) => { - if (line.startsWith("/* from")) { - let found = fromRegex.exec(line); - if (found != null) { - write(); - - let parts = path.parse(found[1]); - if (path.relative(cssDir, path.join(process.cwd(), parts.dir)) == "") { - input = parts.base; - } else { - // prefix filename with path - let relative = path.relative(path.join(__dirname, "../"), path.join(process.cwd(), found[1])); - input = relative.replace(/\//g, "-"); - } - } - } else { - content.push(line); - } - }); - - write(); - } - }); - }; -}; |