[PCCompat] Rewrite plugin.loadStylesheet

This commit is contained in:
Ducko 2021-04-22 20:45:28 +01:00 committed by Lexi Sother
parent eb9bfa949b
commit 27847ca0b6
No known key found for this signature in database
GPG Key ID: 355968D14144B739
2 changed files with 21 additions and 6 deletions

View File

@ -5,12 +5,10 @@ export class Plugin {
this.stylesheets = [];
}
loadStylesheet(path) {
const url = `https://raw.githubusercontent.com/${this.github.repo}/HEAD/${path}`; // HEAD essentially means default branch
loadStylesheet(css) {
const el = document.createElement('style');
el.appendChild(document.createTextNode(`@import url(${url})`)); // Load the stylesheet via style element w/ CSS @import
el.appendChild(document.createTextNode(css)); // Load the stylesheet via style element w/ CSS text
document.head.appendChild(el);

View File

@ -17,9 +17,26 @@ export default (manifestPath, repo) => {
rmSync(manifestPath);
mkdirSync(manifestPath);
const content = readFileSync(pcManifest.main || 'index.js', 'utf8');//.replace(/\\/g, '\\\\').replace(/`/g, '\\`');
let content = readFileSync(pcManifest.main || 'index.js', 'utf8');//.replace(/\\/g, '\\\\').replace(/`/g, '\\`');
const jsCode = `import powercord from '_powercord/global';\n` + content.replace(`module.exports = class`, `export default new class`);
content = content.replace(`module.exports = class`, `export default new class`);
content = content.replace(/this\.loadStylesheet\(['"`](.*)['"`]\)/g, (_, relative) => {
const path = manifestPath.split('/').slice(0, -1).join('/') + relative;
let css;
if (path.split('.').pop() === 'scss') {
css = (sass.renderSync({ file: path })).css;
} else {
css = readFileSync(sync);
}
css = css.replace(/\\/g, '\\\\').replace(/\`/g, '\`'); // Escape backticks
return `this.loadStyleSheet(\`${css}\`)`;
});
const jsCode = `import powercord from '_powercord/global';\n` + content;
writeFileSync(`${manifestPath}/goosemodModule.json`, JSON.stringify(manifest));
writeFileSync(`${manifestPath}/../index.js`, jsCode);