import { parseArgs } from 'node:util' import { compileAll, compileWebSnippet } from './compiler/index.js' import chokidar from 'chokidar' const { values } = parseArgs({ options: { watch: { type: 'boolean', short: 'w' }, help: { type: 'boolean' }, suffix: { type: 'string', default: '' }, 'web-snippet': { type: 'boolean' } } }) if (values.help) { console.log('Usage: node compile.js [flags]') console.log('Options:') console.log( ' --watch, -w Watch src/ directory for changes and recompile' ) console.log( ' --suffix, -s Suffix to add to the output file name. Used for testing script size changes' ) console.log( ' --help Show this help message' ) console.log( ' --web-snippet Compile and output the web snippet' ) process.exit(0) } if (values['web-snippet']) { console.log(compileWebSnippet()) process.exit(0) } const compileOptions = { suffix: values.suffix } await compileAll(compileOptions) if (values.watch) { console.log('Watching src/ directory for changes...') chokidar.watch('./src').on('change', async (_event, path) => { if (path) { console.log(`\nFile changed: ${path}`) console.log('Recompiling...') await compileAll(compileOptions) console.log('Done. Watching for changes...') } }) }