mirror of
https://github.com/NovaGM/ModuleBuilder.git
synced 2024-08-15 00:23:33 +00:00
[PCCompat] Rewrite plugin.loadStylesheet
This commit is contained in:
parent
eb9bfa949b
commit
27847ca0b6
2 changed files with 21 additions and 6 deletions
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue