xref: /expo/packages/@expo/cli/taskfile.js (revision 99ef0afa)
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