Skip to content
This repository was archived by the owner on Feb 2, 2021. It is now read-only.

Commit 82e4ead

Browse files
Merge pull request #312 from telerik/vladimirov/fix-typescript-warnings
Prevent doubling of typescript definitions
2 parents 465ff63 + 5777ee7 commit 82e4ead

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

declarations.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ interface IHook {
231231
}
232232

233233
interface ITypeScriptCompilationService {
234-
initialize(typeScriptFiles: string[]): void;
234+
initialize(typeScriptFiles: string[], definitionFiles?: string[]): void;
235235
compileAllFiles(): IFuture<void>;
236236
}
237237

services/typescript-compilation-service.ts

+11-6
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,16 @@ interface ITypeScriptCompilerMessages {
1717

1818
export class TypeScriptCompilationService implements ITypeScriptCompilationService {
1919
private typeScriptFiles: string[];
20+
private definitionFiles: string[];
2021

2122
constructor(private $childProcess: IChildProcess,
2223
private $fs: IFileSystem,
2324
private $logger: ILogger,
2425
private $config: Config.IConfig) { }
2526

26-
public initialize(typeScriptFiles: string[]): void {
27+
public initialize(typeScriptFiles: string[], definitionFiles?: string[]): void {
2728
this.typeScriptFiles = typeScriptFiles;
29+
this.definitionFiles = definitionFiles || [];
2830
}
2931

3032
public compileAllFiles(): IFuture<void> {
@@ -194,11 +196,14 @@ export class TypeScriptCompilationService implements ITypeScriptCompilationServi
194196

195197
private getTypeScriptDefinitionsFiles(): IFuture<string[]> {
196198
return (() => {
197-
var typeScriptDefinitionsFilesPath = path.join(__dirname, "../../../resources/typescript-definitions-files");
198-
var definitionsFiles = this.$fs.readDirectory(typeScriptDefinitionsFilesPath).wait();
199-
return _.map(definitionsFiles, (definitionFilePath: string) => {
200-
return path.join(typeScriptDefinitionsFilesPath, definitionFilePath);
201-
});
199+
var defaultTypeScriptDefinitionsFilesPath = path.join(__dirname, "../../../resources/typescript-definitions-files");
200+
var defaultDefinitionsFiles = this.$fs.readDirectory(defaultTypeScriptDefinitionsFilesPath).wait();
201+
202+
// Exclude definition files from default path, which are already part of the project (check only the name of the file)
203+
var remainingDefaultDefinitionFiles = _.filter(defaultDefinitionsFiles, defFile => !_.any(this.definitionFiles, f => path.basename(f) === defFile));
204+
return _.map(remainingDefaultDefinitionFiles,(definitionFilePath: string) => {
205+
return path.join(defaultTypeScriptDefinitionsFilesPath, definitionFilePath);
206+
}).concat(this.definitionFiles);
202207
}).future<string[]>()();
203208
}
204209
}

0 commit comments

Comments
 (0)