From 529ce8009b1ecafc5617fe8380d01fcd9081c23b Mon Sep 17 00:00:00 2001 From: mdm317 Date: Sat, 10 May 2025 01:04:04 +0900 Subject: [PATCH 1/2] fix : add rootfile name when create program --- packages/website/src/components/linter/bridge.ts | 4 +++- packages/website/src/components/linter/createParser.ts | 2 +- packages/website/src/components/linter/types.ts | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/website/src/components/linter/bridge.ts b/packages/website/src/components/linter/bridge.ts index 414873484c1a..a4f6cd62f488 100644 --- a/packages/website/src/components/linter/bridge.ts +++ b/packages/website/src/components/linter/bridge.ts @@ -78,6 +78,8 @@ export function createFileSystem( const expPath = getPathRegExp(path); return [...files.keys()].filter(fileName => expPath.test(fileName)); }; - + system.getScriptFileNames = (): string[] => { + return [...files.keys()].filter(f => f.endsWith('.ts')); + }; return system; } diff --git a/packages/website/src/components/linter/createParser.ts b/packages/website/src/components/linter/createParser.ts index 89bc7a44735e..58511506fc5e 100644 --- a/packages/website/src/components/linter/createParser.ts +++ b/packages/website/src/components/linter/createParser.ts @@ -28,7 +28,7 @@ export function createParser( ): tsvfs.VirtualTypeScriptEnvironment => { return vfs.createVirtualTypeScriptEnvironment( system, - [...registeredFiles], + [...registeredFiles, ...system.getScriptFileNames()], window.ts, compilerOptions, ); diff --git a/packages/website/src/components/linter/types.ts b/packages/website/src/components/linter/types.ts index 6e8a046733b7..5da48b127074 100644 --- a/packages/website/src/components/linter/types.ts +++ b/packages/website/src/components/linter/types.ts @@ -30,6 +30,7 @@ export interface WebLinterModule { export type PlaygroundSystem = { removeFile: (fileName: string) => void; searchFiles: (path: string) => string[]; + getScriptFileNames: () => string[]; } & Required> & ts.System; From f5d9dfbd9a7a29b07abe46e30aa54d3450c32506 Mon Sep 17 00:00:00 2001 From: mdm317 Date: Mon, 19 May 2025 20:30:23 +0900 Subject: [PATCH 2/2] fix : not including lib file and fix error --- packages/website/src/components/linter/bridge.ts | 8 ++++++-- packages/website/src/components/linter/createParser.ts | 8 +++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/website/src/components/linter/bridge.ts b/packages/website/src/components/linter/bridge.ts index a4f6cd62f488..1f1dec771aa7 100644 --- a/packages/website/src/components/linter/bridge.ts +++ b/packages/website/src/components/linter/bridge.ts @@ -14,7 +14,9 @@ export function createFileSystem( const files = new Map(); files.set(`/.eslintrc`, config.eslintrc); files.set(`/tsconfig.json`, config.tsconfig); - files.set(`/input${config.fileType}`, config.code); + if (config.code !== '') { + files.set(`/input${config.fileType}`, config.code); + } const fileWatcherCallbacks = new Map>(); @@ -79,7 +81,9 @@ export function createFileSystem( return [...files.keys()].filter(fileName => expPath.test(fileName)); }; system.getScriptFileNames = (): string[] => { - return [...files.keys()].filter(f => f.endsWith('.ts')); + return [...files.keys()] + .filter(fileName => !fileName.startsWith('/lib.')) + .filter(f => !f.endsWith('/.eslintrc') && !f.endsWith('.json')); }; return system; } diff --git a/packages/website/src/components/linter/createParser.ts b/packages/website/src/components/linter/createParser.ts index 58511506fc5e..4327316ec07f 100644 --- a/packages/website/src/components/linter/createParser.ts +++ b/packages/website/src/components/linter/createParser.ts @@ -21,14 +21,12 @@ export function createParser( ): { updateConfig: (compilerOptions: ts.CompilerOptions) => void; } & Parser.ParserModule { - const registeredFiles = new Set(); - const createEnv = ( compilerOptions: ts.CompilerOptions, ): tsvfs.VirtualTypeScriptEnvironment => { return vfs.createVirtualTypeScriptEnvironment( system, - [...registeredFiles, ...system.getScriptFileNames()], + system.getScriptFileNames(), window.ts, compilerOptions, ); @@ -46,10 +44,10 @@ export function createParser( // if text is empty use empty line to avoid error const code = text || '\n'; - if (registeredFiles.has(filePath)) { + if (system.fileExists(filePath)) { compilerHost.updateFile(filePath, code); } else { - registeredFiles.add(filePath); + system.writeFile(filePath, code); compilerHost.createFile(filePath, code); }