Skip to content

Commit e0a5502

Browse files
author
nickpape-msft
authored
Merge pull request microsoft#93 from Microsoft/nickpape/warnings-should-be-errors-in-production
Warnings should be treated as errors in production
2 parents a1f1cdf + 5798e0f commit e0a5502

7 files changed

Lines changed: 100 additions & 3 deletions

File tree

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"changes": [
3+
{
4+
"packageName": "@microsoft/web-library-build",
5+
"comment": "Treat warnings as errors in production. Treat tslint errors as warnings.",
6+
"type": "minor"
7+
},
8+
{
9+
"packageName": "@microsoft/node-library-build",
10+
"comment": "Treat warnings as errors in production. Treat tsli nt errors as warnings.",
11+
"type": "minor"
12+
}
13+
],
14+
"email": "nickpape@users.noreply.github.com"
15+
}

common/reviews/api/node-library-build.api.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
export declare function addSuppression(str: string): void;
22

33
class ApiExtractorTask extends GulpTask<IApiExtractorTaskConfig> {
4+
// (undocumented)
45
executeTask(gulp: gulp.Gulp, completeCallback: (error?: string) => void): NodeJS.ReadWriteStream;
6+
// (undocumented)
57
loadSchema(): Object;
8+
// (undocumented)
69
name: string;
10+
// (undocumented)
711
taskConfig: IApiExtractorTaskConfig;
812
}
913

@@ -70,6 +74,7 @@ class GulpTask<TASK_CONFIG> implements IExecutable {
7074
taskConfig: TASK_CONFIG;
7175
}
7276

77+
// (undocumented)
7378
interface IBuildConfig {
7479
args?: {
7580
[ name: string ]: string | boolean;
@@ -106,9 +111,11 @@ interface ICopyConfig {
106111
}
107112

108113
interface ICustomGulpTask {
114+
// (undocumented)
109115
(gulp: gulp.Gulp | GulpProxy, buildConfig: IBuildConfig, done: (failure?: Object) => void): Promise<Object> | NodeJS.ReadWriteStream | void;
110116
}
111117

118+
// (undocumented)
112119
interface IExecutable {
113120
execute: (config: IBuildConfig) => Promise<void>;
114121
getCleanMatch?: (config: IBuildConfig, taskConfig?: any) => string[];
@@ -119,7 +126,9 @@ interface IExecutable {
119126

120127
export declare function initialize(gulp: gulp.Gulp): void;
121128

129+
// (undocumented)
122130
interface ITsConfigFile<T> {
131+
// (undocumented)
123132
compilerOptions: T;
124133
}
125134

@@ -137,8 +146,10 @@ export declare function replaceConfig(config: IBuildConfig): void;
137146
export declare function reset(): void;
138147

139148
class SchemaValidator {
149+
// (undocumented)
140150
static getFormattedErrorMessage(errors: Validator.SchemaErrorDetail[], dataFilePath?: string): string;
141151
static readAndValidateJson < TResult >(dataFilePath: string, schemaFilePath: string): TResult;
152+
// (undocumented)
142153
static readCommentedJsonFile < TResult >(filename: string): TResult;
143154
static validate(data: Object, schema: Object, dataFilePath?: string): void;
144155
}
@@ -152,25 +163,37 @@ export declare function subTask(taskName: string, fn: ICustomGulpTask): IExecuta
152163
export declare function task(taskName: string, task: IExecutable): IExecutable;
153164

154165
enum TestResultState {
166+
// (undocumented)
155167
Failed = 1,
168+
// (undocumented)
156169
FlakyFailed = 2,
170+
// (undocumented)
157171
Passed = 0,
172+
// (undocumented)
158173
Skipped = 3
159174
}
160175

176+
// (undocumented)
161177
class TypeScriptConfiguration {
162178
static getGulpTypescriptOptions(buildConfig: IBuildConfig): ITsConfigFile<ts.Settings>;
163179
static getTypescriptCompiler(): any;
180+
// (undocumented)
164181
static getTypescriptOptions(buildConfig: IBuildConfig): ITsConfigFile<typescript.CompilerOptions>;
165182
static setTypescriptCompiler(typescript: any): void;
166183
}
167184

185+
// (undocumented)
168186
class TypeScriptTask extends GulpTask<ITypeScriptTaskConfig> {
187+
// (undocumented)
169188
executeTask(gulp: gulpType.Gulp, completeCallback: (result?: string) => void): void;
189+
// (undocumented)
170190
getCleanMatch(buildConfig: IBuildConfig, taskConfig?: ITypeScriptTaskConfig): string[];
191+
// (undocumented)
171192
loadSchema(): Object;
172193
mergeConfig(config: ITypeScriptTaskConfig): void;
194+
// (undocumented)
173195
name: string;
196+
// (undocumented)
174197
taskConfig: ITypeScriptTaskConfig;
175198
}
176199

common/reviews/api/package-deps-hash.api.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
// (undocumented)
12
export function getPackageDeps(packagePath: string = process.cwd(), excludedPaths?: string[]): IPackageDeps;
23

4+
// (undocumented)
35
interface IPackageDeps {
6+
// (undocumented)
47
files: {
58
[ key: string ]: string
69
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1+
// (undocumented)
12
export function add(num1: number, num2: number): number;
23

4+
// (undocumented)
35
export function log(message: string): void;
46

7+
// (undocumented)
58
export function logClass(): void;
69

710
// (No packageDescription for this package)

common/reviews/api/web-library-build.api.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
export declare function addSuppression(str: string): void;
22

33
class ApiExtractorTask extends GulpTask<IApiExtractorTaskConfig> {
4+
// (undocumented)
45
executeTask(gulp: gulp.Gulp, completeCallback: (error?: string) => void): NodeJS.ReadWriteStream;
6+
// (undocumented)
57
loadSchema(): Object;
8+
// (undocumented)
69
name: string;
10+
// (undocumented)
711
taskConfig: IApiExtractorTaskConfig;
812
}
913

@@ -70,6 +74,7 @@ class GulpTask<TASK_CONFIG> implements IExecutable {
7074
taskConfig: TASK_CONFIG;
7175
}
7276

77+
// (undocumented)
7378
interface IBuildConfig {
7479
args?: {
7580
[ name: string ]: string | boolean;
@@ -106,9 +111,11 @@ interface ICopyConfig {
106111
}
107112

108113
interface ICustomGulpTask {
114+
// (undocumented)
109115
(gulp: gulp.Gulp | GulpProxy, buildConfig: IBuildConfig, done: (failure?: Object) => void): Promise<Object> | NodeJS.ReadWriteStream | void;
110116
}
111117

118+
// (undocumented)
112119
interface IExecutable {
113120
execute: (config: IBuildConfig) => Promise<void>;
114121
getCleanMatch?: (config: IBuildConfig, taskConfig?: any) => string[];
@@ -119,10 +126,13 @@ interface IExecutable {
119126

120127
export declare function initialize(gulp: gulp.Gulp): void;
121128

129+
// (undocumented)
122130
interface ITsConfigFile<T> {
131+
// (undocumented)
123132
compilerOptions: T;
124133
}
125134

135+
// (undocumented)
126136
interface IWebpackTaskConfig {
127137
config?: Webpack.Configuration;
128138
configPath: string;
@@ -144,8 +154,10 @@ export declare function replaceConfig(config: IBuildConfig): void;
144154
export declare function reset(): void;
145155

146156
class SchemaValidator {
157+
// (undocumented)
147158
static getFormattedErrorMessage(errors: Validator.SchemaErrorDetail[], dataFilePath?: string): string;
148159
static readAndValidateJson < TResult >(dataFilePath: string, schemaFilePath: string): TResult;
160+
// (undocumented)
149161
static readCommentedJsonFile < TResult >(filename: string): TResult;
150162
static validate(data: Object, schema: Object, dataFilePath?: string): void;
151163
}
@@ -159,25 +171,37 @@ export declare function subTask(taskName: string, fn: ICustomGulpTask): IExecuta
159171
export declare function task(taskName: string, task: IExecutable): IExecutable;
160172

161173
enum TestResultState {
174+
// (undocumented)
162175
Failed = 1,
176+
// (undocumented)
163177
FlakyFailed = 2,
178+
// (undocumented)
164179
Passed = 0,
180+
// (undocumented)
165181
Skipped = 3
166182
}
167183

184+
// (undocumented)
168185
class TypeScriptConfiguration {
169186
static getGulpTypescriptOptions(buildConfig: IBuildConfig): ITsConfigFile<ts.Settings>;
170187
static getTypescriptCompiler(): any;
188+
// (undocumented)
171189
static getTypescriptOptions(buildConfig: IBuildConfig): ITsConfigFile<typescript.CompilerOptions>;
172190
static setTypescriptCompiler(typescript: any): void;
173191
}
174192

193+
// (undocumented)
175194
class TypeScriptTask extends GulpTask<ITypeScriptTaskConfig> {
195+
// (undocumented)
176196
executeTask(gulp: gulpType.Gulp, completeCallback: (result?: string) => void): void;
197+
// (undocumented)
177198
getCleanMatch(buildConfig: IBuildConfig, taskConfig?: ITypeScriptTaskConfig): string[];
199+
// (undocumented)
178200
loadSchema(): Object;
179201
mergeConfig(config: ITypeScriptTaskConfig): void;
202+
// (undocumented)
180203
name: string;
204+
// (undocumented)
181205
taskConfig: ITypeScriptTaskConfig;
182206
}
183207

@@ -192,12 +216,19 @@ export declare function warn(...args: Array<string | Chalk.ChalkChain>): void;
192216

193217
export declare function watch(watchMatch: string | string[], task: IExecutable): IExecutable;
194218

219+
// (undocumented)
195220
class WebpackTask extends GulpTask<IWebpackTaskConfig> {
221+
// (undocumented)
196222
executeTask(gulp: gulp.Gulp, completeCallback: (result?: Object) => void): void;
223+
// (undocumented)
197224
isEnabled(buildConfig: IBuildConfig): boolean;
225+
// (undocumented)
198226
loadSchema(): Object;
227+
// (undocumented)
199228
name: string;
229+
// (undocumented)
200230
resources: Object;
231+
// (undocumented)
201232
taskConfig: IWebpackTaskConfig;
202233
}
203234

node-library-build/src/index.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { task, watch, serial, parallel, IExecutable } from '@microsoft/gulp-core-build';
1+
import { task, watch, serial, parallel, IExecutable, setConfig } from '@microsoft/gulp-core-build';
22
import { typescript, tslint, apiExtractor } from '@microsoft/gulp-core-build-typescript';
33
import { instrument, mocha } from '@microsoft/gulp-core-build-mocha';
44

@@ -7,8 +7,18 @@ export * from '@microsoft/gulp-core-build-typescript';
77
export * from '@microsoft/gulp-core-build-mocha';
88

99
// Define default task groups.
10-
const buildSubtask: IExecutable = serial(parallel(tslint, typescript), apiExtractor);
1110

11+
const PRODUCTION = process.argv.indexOf('--production') !== -1 || process.argv.indexOf('--ship') !== -1;
12+
setConfig({
13+
production: PRODUCTION,
14+
shouldWarningsFailBuild: PRODUCTION
15+
});
16+
17+
tslint.mergeConfig({
18+
displayAsWarning: true
19+
});
20+
21+
const buildSubtask: IExecutable = serial(parallel(tslint, typescript), apiExtractor);
1222
export const buildTasks: IExecutable = task('build', buildSubtask);
1323
export const testTasks: IExecutable = task('test', serial(buildSubtask, mocha));
1424
export const defaultTasks: IExecutable = task('default', serial(buildSubtask, instrument, mocha));

web-library-build/src/index.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ import {
66
parallel,
77
serial,
88
task,
9-
watch
9+
watch,
10+
setConfig,
11+
1012
} from '@microsoft/gulp-core-build';
1113
import { apiExtractor, typescript, tslint, text } from '@microsoft/gulp-core-build-typescript';
1214
import { sass } from '@microsoft/gulp-core-build-sass';
@@ -34,6 +36,16 @@ const sourceMatch: string[] = [
3436
'!src/**/*.scss.ts'
3537
];
3638

39+
const PRODUCTION = process.argv.indexOf('--production') !== -1 || process.argv.indexOf('--ship') !== -1;
40+
setConfig({
41+
production: PRODUCTION,
42+
shouldWarningsFailBuild: PRODUCTION
43+
});
44+
45+
tslint.mergeConfig({
46+
displayAsWarning: true
47+
});
48+
3749
// Define default task groups.
3850
export const compileTsTasks: IExecutable = parallel(typescript, text, apiExtractor);
3951
export const buildTasks: IExecutable = task('build', serial(preCopy, sass, compileTsTasks, postCopy));

0 commit comments

Comments
 (0)