Parse Angular compiler options in Angular language service. In View Engine, only TypeScript compiler options are read, Angular compiler options are not. With Ivy, there could be different modes of compilation, most notably how strict the templates should be checked. This commit makes the behavior of language service consistent with the Ivy compiler. PR Close #36922
32 lines
916 B
TypeScript
32 lines
916 B
TypeScript
/**
|
|
* @license
|
|
* Copyright Google Inc. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
* found in the LICENSE file at https://angular.io/license
|
|
*/
|
|
|
|
import * as ts from 'typescript/lib/tsserverlibrary';
|
|
import {LanguageService} from './language_service';
|
|
|
|
export function create(info: ts.server.PluginCreateInfo): ts.LanguageService {
|
|
const {project, languageService: tsLS, config} = info;
|
|
const angularOnly = config?.angularOnly === true;
|
|
|
|
const ngLS = new LanguageService(project, tsLS);
|
|
|
|
function getSemanticDiagnostics(fileName: string): ts.Diagnostic[] {
|
|
const diagnostics: ts.Diagnostic[] = [];
|
|
if (!angularOnly) {
|
|
diagnostics.push(...tsLS.getSemanticDiagnostics(fileName));
|
|
}
|
|
diagnostics.push(...ngLS.getSemanticDiagnostics(fileName));
|
|
return diagnostics;
|
|
}
|
|
|
|
return {
|
|
...tsLS,
|
|
getSemanticDiagnostics,
|
|
};
|
|
}
|