40 lines
1 KiB
JavaScript
40 lines
1 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/style.css';
|
|
|
|
execAsync(`sassc ${scss} ${css}`).then(() => {
|
|
App.resetCss();
|
|
App.applyCss(css);
|
|
}).catch(print);
|
|
};
|
|
|
|
monitorFile(
|
|
`${App.configDir}/scss`,
|
|
reloadCss,
|
|
'directory',
|
|
);
|
|
reloadCss();
|
|
};
|
|
|
|
/** @param {string} host */
|
|
export const transpileTypeScript = async(host) => {
|
|
await execAsync([
|
|
'bun', 'build', `${App.configDir}/${host}.ts`,
|
|
'--outdir', '/tmp/ags',
|
|
'--external', 'resource:///*',
|
|
'--external', 'gi://*',
|
|
'--external', 'cairo',
|
|
'--external', '*/fzf.es.js',
|
|
]).catch(print);
|
|
|
|
watchAndCompileSass(host);
|
|
|
|
// The file is going to be there after transpilation
|
|
// @ts-ignore
|
|
return await import(`file:///tmp/ags/${host}.js`);
|
|
};
|