Skip to content

Commit a4fde6f

Browse files
authored
Add more specific error for TS web server (microsoft#187752)
This should help us better understand why the access failed
1 parent 14b9b06 commit a4fde6f

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

extensions/typescript-language-features/web/webServer.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,15 @@ function toTsWatcherKind(event: 'create' | 'change' | 'delete') {
7676
throw new Error(`Unknown event: ${event}`);
7777
}
7878

79+
class AccessOutsideOfRootError extends Error {
80+
constructor(
81+
public readonly filepath: string,
82+
public readonly projectRootPaths: readonly string[]
83+
) {
84+
super(`Could not read file outside of project root ${filepath}`);
85+
}
86+
}
87+
7988
type ServerHostWithImport = ts.server.ServerHost & { importPlugin(root: string, moduleName: string): Promise<ts.server.ModuleImportResult> };
8089

8190
function createServerHost(extensionUri: URI, logger: ts.server.Logger, apiClient: ApiClient | undefined, args: string[], fsWatcher: MessagePort): ServerHostWithImport {
@@ -455,7 +464,7 @@ function createServerHost(extensionUri: URI, logger: ts.server.Logger, apiClient
455464
}
456465

457466
if (allowRead === 'block') {
458-
throw new Error(`Could not read file outside of project root ${filepath}`);
467+
throw new AccessOutsideOfRootError(filepath, Array.from(projectRootPaths.keys()));
459468
}
460469

461470
return uri;

0 commit comments

Comments
 (0)