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