nixos-configs/modules/ags/config/js/utils.js
matt1432 0a60fa42a4
All checks were successful
Discord / discord commits (push) Has been skipped
feat(nix): try to make building faster and more verbose
2024-02-14 14:50:51 -05:00

47 lines
1.2 KiB
JavaScript

const { execAsync, monitorFile } = Utils;
/** @param {string} host */
const watchAndCompileSass = (host) => {
const reloadCss = () => {
const scss = `${App.configDir}/scss/${host}.scss`;
const css = `/tmp/ags-${host}/style.css`;
execAsync(`sassc ${scss} ${css}`).then(() => {
App.resetCss();
App.applyCss(css);
}).catch(print);
};
monitorFile(
`${App.configDir}/scss`,
reloadCss,
);
reloadCss();
};
/** @param {string} host */
export const transpileTypeScript = async(host) => {
const outPath = `/tmp/ags-${host}/index.js`;
await execAsync([
'bash', '-c',
// Create the dir if it doesn't exist
`mkdir -p /tmp/ags-${host}; ` +
`bun build ${App.configDir}/${host}.ts ` +
'--external resource:///* ' +
'--external gi://* ' +
'--external cairo ' +
'--external */fzf.es.js ' +
// Since bun wants to right in cwd, we just redirect stdin instead
`> ${outPath}`,
]).catch(print);
if (host !== 'greeter') {
watchAndCompileSass(host);
}
return await import(`file://${outPath}`);
};