webamp/scripts/compileSkin.js
2019-12-06 06:20:11 -08:00

40 lines
1,009 B
JavaScript

const puppeteer = require("puppeteer");
// const DATA_URI = /url\([^)]+\)/g;
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
// TODO: allow the skin to be passed in via the CLI.
try {
await page.goto(
'http://localhost:8080/#{"skinUrl":"/skins/base-2.91.wsz"}'
);
} catch (e) {
console.error(
"Error connecting to localhost:8080. Are you running the dev server?",
"\n\n",
e
);
await browser.close();
return;
}
// TODO: Wait for node to be ready
await new Promise(resolve => setTimeout(resolve, 500));
try {
const css = await page.evaluate(
() => document.getElementById("webamp-skin").innerText
);
console.log(css);
} catch (e) {
console.error("Hit an error, putting a screenshot in ./error.png");
page.screenshot({ path: "./error.png" });
throw e;
} finally {
await browser.close();
}
// TODO: Extract non-CSS stuff
// TODO: Write to stdout
})();