forked from microsoft/rushstack
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathIBuildConfig.ts
More file actions
144 lines (118 loc) · 3.31 KB
/
IBuildConfig.ts
File metadata and controls
144 lines (118 loc) · 3.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
// See LICENSE in the project root for license information.
import * as gulp from 'gulp';
import { GulpProxy } from './GulpProxy';
import { IExecutable } from './IExecutable';
/**
* @public
*/
export interface IBuildConfig {
/**
* The maximum amount of time the build can run before being terminated.
* Specified in milliseconds. By default, there is no timeout.
*
* If set to zero (0), the build will never time out.
*/
maxBuildTimeMs: number;
/**
* Proxy gulp instance.
*/
gulp: GulpProxy | gulp.Gulp;
/**
* Array of all unique tasks.
*/
uniqueTasks?: IExecutable[];
/**
* Full physical path to the root path directory.
*/
rootPath: string;
/**
* Package output folder in which publishable output should be dropped.
* Defaults to package.json directories/packagePath value.
*/
packageFolder: string;
/**
* Source folder name where source is included.
*/
srcFolder: string;
/**
* Unbundled commonjs modules folder, which will be referenced by other node projects.
*/
libFolder: string;
/**
* Unbundled amd modules folder, which can be optionally set to cause build tasks to
* output AMD modules if required for legacy reasons.
*/
libAMDFolder?: string;
/**
* Unbundled es6 modules folder, which can be optionally set to cause build tasks to output es6 modules.
*/
libES6Folder?: string;
/**
* Unbundled esnext modules folder, which can be optionally set to cause build tasks to output esnext modules.
*/
libESNextFolder?: string;
/**
* Dist folder, which includes all bundled resources which would be copied to a CDN for the project.
*/
distFolder: string;
/**
* Temp folder for storing temporary files.
*/
tempFolder: string;
/**
* Re-log known issues after the build is complete.
*/
relogIssues?: boolean;
/**
* Show toast on build failures and recoveries.
*/
showToast?: boolean;
/**
* Path to icon shown in toast on a successful build recovery.
*/
buildSuccessIconPath?: string;
/**
* Path to icon shown in toast on a build error.
*/
buildErrorIconPath?: string;
/**
* Use verbose logging.
*/
verbose: boolean;
/**
* Build a full production build.
*/
production: boolean;
/**
* Should warnings be written to STDERR and cause build to return non-zero exit code
*/
shouldWarningsFailBuild: boolean;
/**
* Arguments passed in.
*/
args: { [name: string]: string | boolean };
/**
* Arbitrary property bag for a task to store environment values in.
*/
// eslint-disable-next-line @typescript-eslint/no-explicit-any
properties?: { [key: string]: any };
/**
* Optional callback to be executed when a task starts.
*/
onTaskStart?: (taskName: string) => void;
/**
* Optional callback to be executed when a task ends.
*/
// eslint-disable-next-line @typescript-eslint/no-explicit-any
onTaskEnd?: (taskName: string, duration: number[], error?: any) => void;
/**
* Flag used to indicate if the build is redundant and should be exited prematurely.
*/
isRedundantBuild?: boolean;
/**
* Flag to indicate whether Jest is enabled.
* If Jest is enabled, mocha and Karma are disabled.
*/
jestEnabled?: boolean;
}