From 54f6e8e61a11807c0cf16cc98bb27745ba67fc44 Mon Sep 17 00:00:00 2001 From: Oj Date: Fri, 12 Feb 2021 17:06:15 +0000 Subject: [PATCH] [Update Module] Controlfreak707/GM-Comfy-Theme --- src/modules/goosemod.js | 2 +- src/preprocessors/pcTheme.js | 43 ++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 src/preprocessors/pcTheme.js diff --git a/src/modules/goosemod.js b/src/modules/goosemod.js index c370b16..68f1c1c 100644 --- a/src/modules/goosemod.js +++ b/src/modules/goosemod.js @@ -7,7 +7,7 @@ export default ['Controlfreak707/GM-Send-Button', '0c326a4c0968a527fbbc776682b730a83b27e628'], ['Controlfreak707/GM-Relaunch', '75c838c352743becdef0d68a954cb5d4f43bce5b'], - ['Controlfreak707/GM-Comfy-Theme', 'd65acddb1a9c59a7f1942883261f3966c73e1f6f'], + ['Controlfreak707/GM-Comfy-Theme', '27102741d21f94896a9c7ce42614a68612132b8b'], ['TechnoJo4/GM-MessageClickActions', '9af8d898c23b9b762b87e0fc612a6af0021e383c'], diff --git a/src/preprocessors/pcTheme.js b/src/preprocessors/pcTheme.js new file mode 100644 index 0000000..b08f236 --- /dev/null +++ b/src/preprocessors/pcTheme.js @@ -0,0 +1,43 @@ +import { readFileSync, writeFileSync, mkdirSync, rmSync } from 'fs'; + +export default (manifestPath, repo) => { + const pcManifest = JSON.parse(readFileSync(manifestPath)); + + const manifest = { + main: 'index.js', + tags: ['theme', 'port'], + + name: pcManifest.name, + description: pcManifest.description, + + version: pcManifest.version, + authors: [ pcManifest.author ] + }; + + rmSync(themePath); + mkdirSync(themePath); + + const jsCode = `// Generated by MS2Builder - pcTheme preprocessor / porter +let style; + +export default { + goosemodHandlers: { + onImport: async () => { + style = document.createElement("style"); + document.head.appendChild(style); + style.appendChild( + document.createTextNode( + \`${content}\` + ) + ); + }, + + onRemove: async () => { + style.remove(); + }, + } +};`; + + writeFileSync(`${themePath}/goosemodModule.json`, JSON.stringify(manifest)); + writeFileSync(`${themePath}/index.js`, jsCode); +};