1const { boolish } = require('getenv'); 2const process = require('process'); 3 4export async function bin(task, opts) { 5 await task 6 .source(opts.src || 'bin/*') 7 .swc('cli', { stripExtension: true, dev: opts.dev }) 8 .target('build/bin', { mode: '0755' }); 9} 10 11export async function cli(task, opts) { 12 await task 13 .source('src/**/*.+(js|ts)', { 14 ignore: ['**/__tests__/**', '**/__mocks__/**'], 15 }) 16 .swc('cli', { dev: opts.dev }) 17 .target('build/src'); 18} 19 20export async function build(task, opts) { 21 await task.parallel(['cli', 'bin'], opts); 22} 23 24export async function src(task, opts) { 25 await task 26 .source(opts.src || 'src/**/*.+(js|ts|tsx)', { 27 ignore: ['**/__tests__/**', '**/__mocks__/**'], 28 }) 29 .swc('sdk', { dev: opts.dev }) 30 .target('build'); 31} 32 33export default async function (task) { 34 const opts = { dev: true }; 35 await task.clear('build'); 36 await task.start('build', opts); 37 if (process.stdout.isTTY && !boolish('CI', false) && !boolish('EXPO_NONINTERACTIVE', false)) { 38 await task.watch('bin/*', 'bin', opts); 39 await task.watch('src/**/*.+(js|ts)', 'src', opts); 40 } 41} 42 43export async function release(task) { 44 await task.clear('build').start('build'); 45} 46