From 145353538362edea242dca13286eae72bf1a39d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Mon, 2 Feb 2026 00:19:10 +0100 Subject: [PATCH] remove unused scripts --- scripts/buildHomebrew.js | 169 --------------------------------------- scripts/compileAssets.js | 87 -------------------- scripts/dev.js | 44 ---------- scripts/quick.js | 17 ---- 4 files changed, 317 deletions(-) delete mode 100644 scripts/buildHomebrew.js delete mode 100644 scripts/compileAssets.js delete mode 100644 scripts/dev.js delete mode 100644 scripts/quick.js diff --git a/scripts/buildHomebrew.js b/scripts/buildHomebrew.js deleted file mode 100644 index 4d55a4176..000000000 --- a/scripts/buildHomebrew.js +++ /dev/null @@ -1,169 +0,0 @@ -import fs from 'fs-extra'; -import zlib from 'zlib'; -import Proj from './project.json' with { type: 'json' }; -import vitreum from 'vitreum'; -const { pack, watchFile, livereload } = vitreum; - -import lessTransform from 'vitreum/transforms/less.js'; -import assetTransform from 'vitreum/transforms/asset.js'; -import babel from '@babel/core'; -import babelConfig from '../babel.config.json' with { type : 'json' }; -import less from 'less'; - -const isDev = !!process.argv.find((arg)=>arg === '--dev'); - -const babelify = async (code)=>(await babel.transformAsync(code, babelConfig)).code; - -const transforms = { - '.js' : (code, filename, opts)=>babelify(code), - '.jsx' : (code, filename, opts)=>babelify(code), - '.less' : lessTransform, - '*' : assetTransform('./build') -}; - -const build = async ({ bundle, render, ssr })=>{ - const css = await lessTransform.generate({ paths: './shared' }); - //css = `@layer bundle {\n${css}\n}`; - await fs.outputFile('./build/homebrew/bundle.css', css); - await fs.outputFile('./build/homebrew/bundle.js', bundle); - await fs.outputFile('./build/homebrew/ssr.cjs', ssr); - - await fs.copy('./client/homebrew/favicon.ico', './build/assets/favicon.ico'); - - //compress files in production - if(!isDev){ - await fs.outputFile('./build/homebrew/bundle.css.br', zlib.brotliCompressSync(css)); - await fs.outputFile('./build/homebrew/bundle.js.br', zlib.brotliCompressSync(bundle)); - await fs.outputFile('./build/homebrew/ssr.js.br', zlib.brotliCompressSync(ssr)); - } else { - await fs.remove('./build/homebrew/bundle.css.br'); - await fs.remove('./build/homebrew/bundle.js.br'); - await fs.remove('./build/homebrew/ssr.js.br'); - } -}; - -fs.emptyDirSync('./build'); - - -(async ()=>{ - - //v==----------------------------- COMPILE THEMES --------------------------------==v// - - // Update list of all Theme files - const themes = { Legacy: {}, V3: {} }; - - let themeFiles = fs.readdirSync('./themes/Legacy'); - for (const dir of themeFiles) { - const themeData = JSON.parse(fs.readFileSync(`./themes/Legacy/${dir}/settings.json`).toString()); - themeData.path = dir; - themes.Legacy[dir] = (themeData); - //fs.copy(`./themes/Legacy/${dir}/dropdownTexture.png`, `./build/themes/Legacy/${dir}/dropdownTexture.png`); - const src = `./themes/Legacy/${dir}/style.less`; - ((outputDirectory)=>{ - less.render(fs.readFileSync(src).toString(), { - compress : !isDev - }, function(e, output) { - fs.outputFile(outputDirectory, output.css); - }); - })(`./build/themes/Legacy/${dir}/style.css`); - - } - - themeFiles = fs.readdirSync('./themes/V3'); - for (const dir of themeFiles) { - const themeData = JSON.parse(fs.readFileSync(`./themes/V3/${dir}/settings.json`).toString()); - themeData.path = dir; - themes.V3[dir] = (themeData); - fs.copy(`./themes/V3/${dir}/dropdownTexture.png`, `./build/themes/V3/${dir}/dropdownTexture.png`); - fs.copy(`./themes/V3/${dir}/dropdownPreview.png`, `./build/themes/V3/${dir}/dropdownPreview.png`); - const src = `./themes/V3/${dir}/style.less`; - ((outputDirectory)=>{ - less.render(fs.readFileSync(src).toString(), { - compress : !isDev - }, function(e, output) { - fs.outputFile(outputDirectory, output.css); - }); - })(`./build/themes/V3/${dir}/style.css`); - } - - await fs.outputFile('./themes/themes.json', JSON.stringify(themes, null, 2)); - - // await less.render(lessCode, { - // compress : !dev, - // sourceMap : (dev ? { - // sourceMapFileInline: true, - // outputSourceFiles: true - // } : false), - // }) - - // Move assets - await fs.copy('./themes/fonts', './build/fonts'); - await fs.copy('./themes/assets', './build/assets'); - await fs.copy('./client/icons', './build/icons'); - - //v==---------------------------MOVE CM EDITOR THEMES -----------------------------==v// - - const editorThemesBuildDir = './build/homebrew/cm-themes'; - await fs.copy('./node_modules/codemirror/theme', editorThemesBuildDir); - await fs.copy('./themes/codeMirror/customThemes', editorThemesBuildDir); - const editorThemeFiles = fs.readdirSync(editorThemesBuildDir); - - const editorThemeFile = './themes/codeMirror/editorThemes.json'; - if(fs.existsSync(editorThemeFile)) fs.rmSync(editorThemeFile); - const stream = fs.createWriteStream(editorThemeFile, { flags: 'a' }); - stream.write('[\n"default"'); - - for (const themeFile of editorThemeFiles) { - stream.write(`,\n"${themeFile.slice(0, -4)}"`); - } - stream.write('\n]\n'); - stream.end(); - - - await fs.copy('./themes/codeMirror', './build/homebrew/codeMirror'); - - //v==----------------------------- BUNDLE PACKAGES --------------------------------==v// - - const bundles = await pack('./client/homebrew/homebrew.jsx', { - paths : ['./shared', './'], - libs : Proj.libs, - dev : isDev && build, - transforms - }); - build(bundles); - - // Possible method for generating separate bundles for theme snippets: factor-bundle first sending all common files to bundle.js, then again using default settings, keeping only snippet bundles - // await fs.outputFile('./build/junk.js', ''); - // await fs.outputFile('./build/themes/Legacy/5ePHB/snippets.js', ''); - // - // const files = ['./client/homebrew/homebrew.jsx','./themes/Legacy/5ePHB/snippets.js']; - // - // bundles = await pack(files, { - // dedupe: false, - // plugin : [['factor-bundle', { outputs: [ './build/junk.js','./build/themes/Legacy/5ePHB/snippets.js'], threshold : function(row, groups) { - // console.log(groups); - // if (groups.some(group => /.*homebrew.jsx$/.test(group))) { - // console.log("found homebrewery") - // return true; - // } - // return this._defaultThreshold(row, groups); - // }}]], - // paths : ['./shared','./','./build'], - // libs : Proj.libs, - // dev : isDev && build, - // transforms - // }); - // build(bundles); - // - - //In development, set up LiveReload (refreshes browser), and Nodemon (restarts server) - if(isDev){ - livereload('./build'); // Install the Chrome extension LiveReload to automatically refresh the browser - watchFile('./server.js', { // Restart server when change detected to this file or any nested directory from here - ignore : ['./build', './client', './themes'], // Ignore folders that are not running server code / avoids unneeded restarts - ext : 'js json' // Extensions to watch (only .js/.json by default) - //watch : ['./server', './themes'], // Watch additional folders if needed - }); - } - -})().catch(console.error); \ No newline at end of file diff --git a/scripts/compileAssets.js b/scripts/compileAssets.js deleted file mode 100644 index 0c2d2ef63..000000000 --- a/scripts/compileAssets.js +++ /dev/null @@ -1,87 +0,0 @@ -import fs from "fs-extra"; -import less from "less"; -const isDev = !!process.argv.find((arg) => arg === "--dev"); - -const compileAssets = async () => { - await fs.copy("./client/homebrew/favicon.ico", "./build/assets/favicon.ico"); - - let assets = fs.readdirSync("./shared/naturalcrit/styles"); - for (const file of assets) { - await fs.copy(`./shared/naturalcrit/styles/${file}`, `./build/fonts/${file}`); - } - - //v==----------------------------- COMPILE THEMES --------------------------------==v// - - // Update list of all Theme files - const themes = { Legacy: {}, V3: {} }; - - let themeFiles = fs.readdirSync("./themes/Legacy"); - for (const dir of themeFiles) { - const themeData = JSON.parse(fs.readFileSync(`./themes/Legacy/${dir}/settings.json`).toString()); - themeData.path = dir; - themes.Legacy[dir] = themeData; - //fs.copy(`./themes/Legacy/${dir}/dropdownTexture.png`, `./build/themes/Legacy/${dir}/dropdownTexture.png`); - const src = `./themes/Legacy/${dir}/style.less`; - ((outputDirectory) => { - less.render( - fs.readFileSync(src).toString(), - { - compress: !isDev, - }, - function (e, output) { - fs.outputFile(outputDirectory, output.css); - }, - ); - })(`./build/themes/Legacy/${dir}/style.css`); - } - - themeFiles = fs.readdirSync("./themes/V3"); - for (const dir of themeFiles) { - const themeData = JSON.parse(fs.readFileSync(`./themes/V3/${dir}/settings.json`).toString()); - themeData.path = dir; - themes.V3[dir] = themeData; - fs.copy(`./themes/V3/${dir}/dropdownTexture.png`, `./build/themes/V3/${dir}/dropdownTexture.png`); - fs.copy(`./themes/V3/${dir}/dropdownPreview.png`, `./build/themes/V3/${dir}/dropdownPreview.png`); - const src = `./themes/V3/${dir}/style.less`; - ((outputDirectory) => { - less.render( - fs.readFileSync(src).toString(), - { - compress: !isDev, - }, - function (e, output) { - fs.outputFile(outputDirectory, output.css); - }, - ); - })(`./build/themes/V3/${dir}/style.css`); - } - - await fs.outputFile("./themes/themes.json", JSON.stringify(themes, null, 2)); - - // Move assets - await fs.copy("./themes/fonts", "./build/fonts"); - await fs.copy("./themes/assets", "./build/assets"); - await fs.copy("./client/icons", "./build/icons"); - - //v==---------------------------MOVE CM EDITOR THEMES -----------------------------==v// - - const editorThemesBuildDir = "./build/homebrew/cm-themes"; - await fs.copy("./node_modules/codemirror/theme", editorThemesBuildDir); - await fs.copy("./themes/codeMirror/customThemes", editorThemesBuildDir); - const editorThemeFiles = fs.readdirSync(editorThemesBuildDir); - - const editorThemeFile = "./themes/codeMirror/editorThemes.json"; - if (fs.existsSync(editorThemeFile)) fs.rmSync(editorThemeFile); - const stream = fs.createWriteStream(editorThemeFile, { flags: "a" }); - stream.write('[\n"default"'); - - for (const themeFile of editorThemeFiles) { - stream.write(`,\n"${themeFile.slice(0, -4)}"`); - } - stream.write("\n]\n"); - stream.end(); - - await fs.copy("./themes/codeMirror", "./build/homebrew/codeMirror"); -}; - -compileAssets(); diff --git a/scripts/dev.js b/scripts/dev.js deleted file mode 100644 index a74afc117..000000000 --- a/scripts/dev.js +++ /dev/null @@ -1,44 +0,0 @@ -import express from "express"; -import { createServer as createViteServer } from "vite"; -import path from "path"; -import url from "url"; -import template from "../client/template.js"; - -const __dirname = path.dirname(url.fileURLToPath(import.meta.url)); -const app = express(); - -async function start() { - const vite = await createViteServer({ - server: { middlewareMode: true }, - root: __dirname, - appType: "custom", - }); - - app.use(vite.middlewares); - app.use("/assets", express.static(path.resolve(__dirname, "/client/assets"))); - - app.use(/(.*)/, async (req, res, next) => { - try { - const parsed = url.parse(req.url); - const pathname = parsed.pathname || "/"; - - // Ignore vite HMR or ping requests - if (pathname.startsWith("/__vite")) return next(); - - const entry = pathname.startsWith("/admin") ? "admin" : "homebrew"; - - const ssrModule = await vite.ssrLoadModule(`client/${entry}/${entry}.jsx`); - - const html = await template(entry, "", { path: pathname, ssrModule }); - res.status(200).set({ "Content-Type": "text/html" }).end(html); - } catch (e) { - vite.ssrFixStacktrace(e); - console.error(e); - res.status(500).end(e.message); - } - }); - - app.listen(8000, () => console.log("Dev server running on http://localhost:8000")); -} - -start(); diff --git a/scripts/quick.js b/scripts/quick.js deleted file mode 100644 index e763d85f7..000000000 --- a/scripts/quick.js +++ /dev/null @@ -1,17 +0,0 @@ -const label = 'quick'; -console.time(label); - -const jsx = require('vitreum/steps/jsx.js').partial; -const less = require('vitreum/steps/less.js').partial; -const server = require('vitreum/steps/server.watch.js').partial; - -const Proj = require('./project.json'); - -Promise.resolve() - .then(jsx('homebrew', './client/homebrew/homebrew.jsx', Proj.libs, ['./shared'])) - .then(less('homebrew', ['./shared'])) - .then(jsx('admin', './client/admin/admin.jsx', Proj.libs, ['./shared'])) - .then(less('admin', ['./shared'])) - .then(server('./server.js', ['server'])) - .then(console.timeEnd.bind(console, label)) - .catch(console.error); \ No newline at end of file