@@ -12,7 +12,7 @@ import {
12
12
copy ,
13
13
} from './helpers/io.mjs' ;
14
14
import { stat , rename , chmod } from 'node:fs/promises' ;
15
- import { runTask , runTaskPrefixOutput } from './helpers/proc.mjs' ;
15
+ import { runMultipleTasks , runTask } from './helpers/proc.mjs' ;
16
16
17
17
const PARALLEL_BUILD = ( process . env [ 'PARALLEL_BUILD' ] ?? 'true' ) === 'true' ;
18
18
const KEEP_DEPS = process . argv . slice ( 2 ) . includes ( '--keep-deps' ) ;
@@ -24,39 +24,28 @@ const packages = [
24
24
const builddir = join ( basedir , 'build' ) ;
25
25
const staticdir = join ( builddir , 'static' ) ;
26
26
27
- try {
28
- await runTask ( 'diff' , [
27
+ await runTask ( {
28
+ command : 'diff' ,
29
+ args : [
29
30
join ( basedir , 'frontend' , 'src' , 'shared' , 'api-entities.ts' ) ,
30
31
join ( basedir , 'backend' , 'src' , 'shared' , 'api-entities.ts' ) ,
31
- ] ) ;
32
- } catch {
33
- log ( 'Shared api-entities.ts files do not match.' ) ;
34
- process . exit ( 1 ) ;
35
- }
32
+ ] ,
33
+ outputMode : 'fail_atomic' ,
34
+ failureMessage : 'Shared api-entities.ts files do not match.' ,
35
+ } ) ;
36
36
37
- async function buildPackage ( { dir, format } ) {
38
- log ( `Building ${ dir } ...` ) ;
39
- await runTaskPrefixOutput ( {
37
+ await runMultipleTasks (
38
+ packages . map ( ( { dir, format } ) => ( {
40
39
command : 'npm' ,
41
40
args : [ 'run' , 'build' , '--quiet' ] ,
42
41
cwd : join ( basedir , dir ) ,
42
+ beginMessage : `Building ${ dir } ...` ,
43
+ failureMessage : `Failed to build ${ dir } .` ,
43
44
outputPrefix : dir ,
44
45
prefixFormat : format ,
45
- } ) ;
46
- }
47
-
48
- try {
49
- if ( PARALLEL_BUILD ) {
50
- await Promise . all ( packages . map ( buildPackage ) ) ;
51
- } else {
52
- for ( const pkg of packages ) {
53
- await buildPackage ( pkg ) ;
54
- }
55
- }
56
- } catch {
57
- log ( 'Build failed.' ) ;
58
- process . exit ( 1 ) ;
59
- }
46
+ } ) ) ,
47
+ { parallel : PARALLEL_BUILD } ,
48
+ ) ;
60
49
61
50
let preserveBuildModules = false ;
62
51
const buildModules = join ( builddir , 'node_modules' ) ;
0 commit comments