Skip to content

Commit da0f553

Browse files
rafaelss95mgechev
authored andcommitted
chore: enable strict (#631)
1 parent eaed2d5 commit da0f553

File tree

79 files changed

+923
-1036
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+923
-1036
lines changed

build/buildDocs.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ import * as path from 'path';
3939

4040
import { IFormatterMetadata, IRuleMetadata } from 'tslint';
4141

42-
type Metadata = IRuleMetadata | IFormatterMetadata;
42+
type Metadata = IRuleMetadata | IFormatterMetadata | undefined;
4343

4444
interface Documented {
4545
metadata: Metadata;

docs/src/app-linter/html-formatter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export class HtmlFormatter implements Formatter {
1414
}
1515

1616
private linkify(inputText: string) {
17-
let replacedText: string, replacePattern1: RegExp, replacePattern2: RegExp, replacePattern3: RegExp;
17+
let replacedText: string, replacePattern1: RegExp, replacePattern2: RegExp;
1818

1919
// URLs starting with http://, https://, or ftp://
2020
replacePattern1 = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim;

docs/src/app-linter/linter.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
import { Formatter } from './formatter-interface';
21
import { RichEditor } from './rich-editor-interface';
3-
import { Reporter } from './reporter-interface';
42

53
export interface LinterConfig {
64
textEditor: RichEditor;
@@ -9,8 +7,7 @@ export interface LinterConfig {
97
}
108

119
export class Linter {
12-
private worker: Worker;
13-
private widgets: any[] = [];
10+
private worker!: Worker;
1411
private errorId = 0;
1512

1613
constructor(private config: LinterConfig) {}

docs/src/app-linter/plain-reporter.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ export class PlainReporter implements Reporter {
2121
}
2222

2323
highlight(id: any) {
24-
document.getElementById(id).classList.add('error-highlight');
24+
document.getElementById(id)!.classList.add('error-highlight');
2525
}
2626

2727
dropHighlight(id: any) {
28-
document.getElementById(id).classList.remove('error-highlight');
28+
document.getElementById(id)!.classList.remove('error-highlight');
2929
}
3030
}

docs/src/app.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ const editor = new ErrorReportingEditor(
5757
theme: 'material',
5858
lineNumbers: true
5959
}) as Editor,
60-
new PlainReporter(new HtmlFormatter(), document.getElementById('warnings-header'), document.getElementById('warnings'))
60+
new PlainReporter(new HtmlFormatter(), document.getElementById('warnings-header')!, document.getElementById('warnings')!)
6161
);
6262

6363
let unlocked = true;

docs/src/worker/web-linter.ts

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import * as ts from 'typescript';
33
import * as Linter from 'tslint';
44
import { LintResult } from 'tslint';
55

6-
export function getSourceFile(fileName: string, source: string): ts.SourceFile {
6+
export function getSourceFile(fileName: string, source: string): ts.SourceFile | undefined {
77
const normalizedName = fileName;
88
const compilerOptions = createCompilerOptions();
99

@@ -15,14 +15,11 @@ export function getSourceFile(fileName: string, source: string): ts.SourceFile {
1515
getDirectories: (_path: string) => [],
1616
getNewLine: () => '\n',
1717
getSourceFile: (filenameToGet: string) => {
18-
if (filenameToGet === normalizedName) {
19-
return ts.createSourceFile(filenameToGet, source, compilerOptions.target, true);
20-
}
21-
return undefined;
18+
return filenameToGet === normalizedName ? ts.createSourceFile(filenameToGet, source, compilerOptions.target!, true) : undefined;
2219
},
23-
readFile: () => null,
20+
readFile: () => undefined,
2421
useCaseSensitiveFileNames: () => true,
25-
writeFile: () => null
22+
writeFile: () => undefined
2623
};
2724

2825
const program = ts.createProgram([normalizedName], compilerOptions, compilerHost);
@@ -40,7 +37,7 @@ export class WebLinter {
4037
private failures: Linter.RuleFailure[] = [];
4138

4239
public lint(fileName: string, source: string, enabledRules: any): void {
43-
let sourceFile: ts.SourceFile = getSourceFile(fileName, source);
40+
let sourceFile = getSourceFile(fileName, source);
4441

4542
if (sourceFile === undefined) {
4643
throw new Error(`Invalid source file: ${fileName}. Ensure that the files supplied to lint have a .ts or .tsx extension.`);

src/angular/config.ts

Lines changed: 33 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,44 @@
1-
import * as ts from 'typescript';
21
import { CodeWithSourceMap } from './metadata';
32

4-
export interface UrlResolver {
5-
(url: string, d: ts.Decorator): string;
3+
export interface StyleTransformer {
4+
(style: string, url?: string): CodeWithSourceMap;
65
}
76

87
export interface TemplateTransformer {
9-
(template: string, url: string, d: ts.Decorator): CodeWithSourceMap;
8+
(template: string, url?: string): CodeWithSourceMap;
109
}
1110

12-
export interface StyleTransformer {
13-
(style: string, url: string, d: ts.Decorator): CodeWithSourceMap;
11+
export interface UrlResolver {
12+
(url: string | null): string | null;
1413
}
1514

16-
export const LogLevel = {
17-
None: 0,
18-
Error: 0b001,
19-
Info: 0b011,
20-
Debug: 0b111
21-
};
15+
export const LogLevel = { Debug: 0b111, Error: 0b001, Info: 0b011, None: 0 };
2216

2317
export interface Config {
2418
interpolation: [string, string];
19+
logLevel: number;
20+
predefinedDirectives: DirectiveDeclaration[];
2521
resolveUrl: UrlResolver;
26-
transformTemplate: TemplateTransformer;
2722
transformStyle: StyleTransformer;
28-
predefinedDirectives: DirectiveDeclaration[];
29-
logLevel: number;
23+
transformTemplate: TemplateTransformer;
3024
}
3125

3226
export interface DirectiveDeclaration {
33-
selector: string;
3427
exportAs?: string;
35-
inputs?: string[];
36-
outputs?: string[];
37-
hostProperties?: string[];
3828
hostAttributes?: string[];
3929
hostListeners?: string[];
30+
hostProperties?: string[];
31+
inputs?: string[];
32+
outputs?: string[];
33+
selector: string;
4034
}
4135

4236
let BUILD_TYPE = '<%= BUILD_TYPE %>';
4337

4438
export const Config: Config = {
4539
interpolation: ['{{', '}}'],
4640

47-
resolveUrl(url: string, d: ts.Decorator) {
48-
return url;
49-
},
50-
51-
transformTemplate(code: string, url: string, d: ts.Decorator) {
52-
if (!url || url.endsWith('.html')) {
53-
return { code, url };
54-
}
55-
return { code: '', url };
56-
},
57-
58-
transformStyle(code: string, url: string, d: ts.Decorator) {
59-
if (!url || url.endsWith('.css')) {
60-
return { code, url };
61-
}
62-
return { code: '', url };
63-
},
41+
logLevel: BUILD_TYPE === 'dev' ? LogLevel.Debug : LogLevel.None,
6442

6543
predefinedDirectives: [
6644
{ selector: 'form:not([ngNoForm]):not([formGroup]), ngForm, [ngForm]', exportAs: 'ngForm' },
@@ -89,7 +67,25 @@ export const Config: Config = {
8967
{ selector: 'md-select', exportAs: 'mdSelect' }
9068
],
9169

92-
logLevel: BUILD_TYPE === 'dev' ? LogLevel.Debug : LogLevel.None
70+
resolveUrl(url: string | null) {
71+
return url;
72+
},
73+
74+
transformStyle(code: string, url?: string) {
75+
if (!url || url.endsWith('.css')) {
76+
return { code, url };
77+
}
78+
79+
return { code: '', url };
80+
},
81+
82+
transformTemplate(code: string, url?: string) {
83+
if (!url || url.endsWith('.html')) {
84+
return { code, url };
85+
}
86+
87+
return { code: '', url };
88+
}
9389
};
9490

9591
try {

src/angular/metadata.ts

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,30 @@ import { RawSourceMap } from 'source-map';
33

44
export interface CodeWithSourceMap {
55
code: string;
6-
source?: string;
76
map?: RawSourceMap;
7+
source?: string;
88
}
99

10-
export interface TemplateMetadata {
11-
template: CodeWithSourceMap;
12-
node: ts.Node;
13-
url: string;
10+
interface PropertyMetadata {
11+
node?: ts.Node;
12+
url?: string;
1413
}
1514

16-
export interface StyleMetadata {
15+
export interface StyleMetadata extends PropertyMetadata {
1716
style: CodeWithSourceMap;
18-
node: ts.Node;
19-
url: string;
2017
}
2118

22-
export interface StylesMetadata {
23-
[index: number]: StyleMetadata;
24-
length: number;
25-
push(e: StyleMetadata): number;
19+
export interface TemplateMetadata extends PropertyMetadata {
20+
template: CodeWithSourceMap;
2621
}
2722

2823
export class DirectiveMetadata {
29-
selector: string;
30-
controller: ts.ClassDeclaration;
31-
decorator: ts.Decorator;
24+
controller!: ts.ClassDeclaration;
25+
decorator!: ts.Decorator;
26+
selector!: string;
3227
}
3328

3429
export class ComponentMetadata extends DirectiveMetadata {
35-
template: TemplateMetadata;
36-
styles: StylesMetadata;
30+
styles!: StyleMetadata[];
31+
template!: TemplateMetadata;
3732
}

0 commit comments

Comments
 (0)