Merge pull request #27443 from Microsoft/errorMessageLogger

Default logger for projectService has assert on exceptions being logged in tsserver
This commit is contained in:
Sheetal Nandi 2018-10-01 15:04:03 -07:00 committed by GitHub
commit 29dd67ec40
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 7 deletions

View file

@ -36,7 +36,7 @@ namespace ts.projectSystem {
typingsInstaller: typingsInstaller || server.nullTypingsInstaller, typingsInstaller: typingsInstaller || server.nullTypingsInstaller,
byteLength: Utils.byteLength, byteLength: Utils.byteLength,
hrtime: process.hrtime, hrtime: process.hrtime,
logger: nullLogger, logger: createHasErrorMessageLogger().logger,
canUseEvents: false canUseEvents: false
}; };
return new server.Session(opts); return new server.Session(opts);

View file

@ -502,7 +502,7 @@ namespace ts.server {
typingsInstaller: undefined!, // TODO: GH#18217 typingsInstaller: undefined!, // TODO: GH#18217
byteLength: Utils.byteLength, byteLength: Utils.byteLength,
hrtime: process.hrtime, hrtime: process.hrtime,
logger: projectSystem.nullLogger, logger: projectSystem.createHasErrorMessageLogger().logger,
canUseEvents: true canUseEvents: true
}); });
this.addProtocolHandler(this.customHandler, () => { this.addProtocolHandler(this.customHandler, () => {
@ -570,7 +570,7 @@ namespace ts.server {
typingsInstaller: undefined!, // TODO: GH#18217 typingsInstaller: undefined!, // TODO: GH#18217
byteLength: Utils.byteLength, byteLength: Utils.byteLength,
hrtime: process.hrtime, hrtime: process.hrtime,
logger: projectSystem.nullLogger, logger: projectSystem.createHasErrorMessageLogger().logger,
canUseEvents: true canUseEvents: true
}); });
this.addProtocolHandler("echo", (req: protocol.Request) => ({ this.addProtocolHandler("echo", (req: protocol.Request) => ({

View file

@ -58,12 +58,13 @@ namespace ts.projectSystem {
getLogFileName: () => undefined, getLogFileName: () => undefined,
}; };
function createHasErrorMessageLogger() { export function createHasErrorMessageLogger() {
let hasErrorMsg = false; let hasErrorMsg = false;
const { close, hasLevel, loggingEnabled, startGroup, endGroup, info, getLogFileName, perftrc } = nullLogger; const { close, hasLevel, loggingEnabled, startGroup, endGroup, info, getLogFileName, perftrc } = nullLogger;
const logger: server.Logger = { const logger: server.Logger = {
close, hasLevel, loggingEnabled, startGroup, endGroup, info, getLogFileName, perftrc, close, hasLevel, loggingEnabled, startGroup, endGroup, info, getLogFileName, perftrc,
msg: () => { msg: (s, type) => {
Debug.fail(`Error: ${s}, type: ${type}`);
hasErrorMsg = true; hasErrorMsg = true;
} }
}; };
@ -322,7 +323,7 @@ namespace ts.projectSystem {
typingsInstaller: undefined!, // TODO: GH#18217 typingsInstaller: undefined!, // TODO: GH#18217
byteLength: Utils.byteLength, byteLength: Utils.byteLength,
hrtime: process.hrtime, hrtime: process.hrtime,
logger: opts.logger || nullLogger, logger: opts.logger || createHasErrorMessageLogger().logger,
canUseEvents: false canUseEvents: false
}; };
@ -359,7 +360,7 @@ namespace ts.projectSystem {
} }
export function createProjectService(host: server.ServerHost, parameters: CreateProjectServiceParameters = {}, options?: Partial<server.ProjectServiceOptions>) { export function createProjectService(host: server.ServerHost, parameters: CreateProjectServiceParameters = {}, options?: Partial<server.ProjectServiceOptions>) {
const cancellationToken = parameters.cancellationToken || server.nullCancellationToken; const cancellationToken = parameters.cancellationToken || server.nullCancellationToken;
const logger = parameters.logger || nullLogger; const logger = parameters.logger || createHasErrorMessageLogger().logger;
const useSingleInferredProject = parameters.useSingleInferredProject !== undefined ? parameters.useSingleInferredProject : false; const useSingleInferredProject = parameters.useSingleInferredProject !== undefined ? parameters.useSingleInferredProject : false;
return new TestProjectService(host, logger, cancellationToken, useSingleInferredProject, parameters.typingsInstaller!, parameters.eventHandler!, options); // TODO: GH#18217 return new TestProjectService(host, logger, cancellationToken, useSingleInferredProject, parameters.typingsInstaller!, parameters.eventHandler!, options); // TODO: GH#18217
} }