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`); };