1afdff7f6SEvan Baconconst { boolish } = require('getenv'); 22dbbbc15SJames Ideconst process = require('process'); 3afdff7f6SEvan Bacon 48d307f52SEvan Baconexport async function bin(task, opts) { 58d307f52SEvan Bacon await task 68d307f52SEvan Bacon .source(opts.src || 'bin/*') 78d307f52SEvan Bacon .swc('cli', { stripExtension: true, dev: opts.dev }) 88d307f52SEvan Bacon .target('build/bin', { mode: '0755' }); 98d307f52SEvan Bacon} 108d307f52SEvan Bacon 118d307f52SEvan Baconexport async function cli(task, opts) { 128d307f52SEvan Bacon await task 138d307f52SEvan Bacon .source('src/**/*.+(js|ts)', { 148d307f52SEvan Bacon ignore: ['**/__tests__/**', '**/__mocks__/**'], 158d307f52SEvan Bacon }) 168d307f52SEvan Bacon .swc('cli', { dev: opts.dev }) 178d307f52SEvan Bacon .target('build/src'); 188d307f52SEvan Bacon} 198d307f52SEvan Bacon 208d307f52SEvan Baconexport async function build(task, opts) { 218d307f52SEvan Bacon await task.parallel(['cli', 'bin'], opts); 228d307f52SEvan Bacon} 238d307f52SEvan Bacon 248d307f52SEvan Baconexport default async function (task) { 258d307f52SEvan Bacon const opts = { dev: true }; 268d307f52SEvan Bacon await task.clear('build'); 278d307f52SEvan Bacon await task.start('build', opts); 282dbbbc15SJames Ide if (process.stdout.isTTY && !boolish('CI', false) && !boolish('EXPO_NONINTERACTIVE', false)) { 298d307f52SEvan Bacon await task.watch('bin/*', 'bin', opts); 30*99ef0afaSEvan Bacon await task.watch('src/**/*.+(js|ts)', 'cli', opts); 318d307f52SEvan Bacon } 32afdff7f6SEvan Bacon} 338d307f52SEvan Bacon 348d307f52SEvan Baconexport async function release(task) { 358d307f52SEvan Bacon await task.clear('build').start('build'); 368d307f52SEvan Bacon} 37