1*cd9c29bcSEvan Baconconst { boolish } = require('getenv'); 2*cd9c29bcSEvan Baconconst process = require('process'); 3*cd9c29bcSEvan Bacon 4*cd9c29bcSEvan Baconexport async function build(task, opts) { 5*cd9c29bcSEvan Bacon // Process JS/TS files with SWC 6*cd9c29bcSEvan Bacon await task 7*cd9c29bcSEvan Bacon .source('src/**/*.+(js|ts)', { 8*cd9c29bcSEvan Bacon ignore: ['**/__tests__/**', '**/__mocks__/**'], 9*cd9c29bcSEvan Bacon }) 10*cd9c29bcSEvan Bacon .swc('cli', { dev: opts.dev }) 11*cd9c29bcSEvan Bacon .target('build'); 12*cd9c29bcSEvan Bacon 13*cd9c29bcSEvan Bacon // Copy over JSON files 14*cd9c29bcSEvan Bacon await task 15*cd9c29bcSEvan Bacon .source('src/**/*.+(json)', { 16*cd9c29bcSEvan Bacon ignore: ['**/__tests__/**', '**/__mocks__/**'], 17*cd9c29bcSEvan Bacon }) 18*cd9c29bcSEvan Bacon .target('build'); 19*cd9c29bcSEvan Bacon} 20*cd9c29bcSEvan Bacon 21*cd9c29bcSEvan Baconexport default async function (task) { 22*cd9c29bcSEvan Bacon await task.clear('build'); 23*cd9c29bcSEvan Bacon await task.start('build', { dev: true }); 24*cd9c29bcSEvan Bacon} 25*cd9c29bcSEvan Bacon 26*cd9c29bcSEvan Baconexport async function watch(task) { 27*cd9c29bcSEvan Bacon const opts = { dev: true }; 28*cd9c29bcSEvan Bacon await task.clear('build'); 29*cd9c29bcSEvan Bacon await task.start('build', opts); 30*cd9c29bcSEvan Bacon if (process.stdout.isTTY && !boolish('CI', false) && !boolish('EXPO_NONINTERACTIVE', false)) { 31*cd9c29bcSEvan Bacon // Watch source folder 32*cd9c29bcSEvan Bacon await task.watch('src/**/*.+(js|ts|json)', 'build', opts); 33*cd9c29bcSEvan Bacon } 34*cd9c29bcSEvan Bacon} 35*cd9c29bcSEvan Bacon 36*cd9c29bcSEvan Baconexport async function release(task) { 37*cd9c29bcSEvan Bacon await task.clear('build').start('build'); 38*cd9c29bcSEvan Bacon} 39