@@ -97,19 +97,30 @@ export interface TranspileStringResult {
9797}
9898
9999export function transpileString (
100- input : string | Record < string , string > ,
100+ input : string ,
101101 options : CompilerOptions = { }
102102) : TranspileStringResult {
103- const programFiles = typeof input === "object" ? input : { "main.ts" : input } ;
104- const mainFileName =
105- typeof input === "string"
106- ? "main.ts"
107- : Object . keys ( input ) . find ( x => / \b m a i n \. [ a - z ] + $ / . test ( x ) ) ;
108- if ( mainFileName === undefined ) throw new Error ( 'Input should have a file named "main"' ) ;
109-
110- const program = createVirtualProgram ( programFiles , options ) ;
103+ const program = createVirtualProgram ( { "main.ts" : input } , options ) ;
111104 const { diagnostics, transpiledFiles } = getTranspileOutput ( { program, options } ) ;
105+ const allDiagnostics = ts . sortAndDeduplicateDiagnostics ( [
106+ ...ts . getPreEmitDiagnostics ( program ) ,
107+ ...diagnostics ,
108+ ] ) ;
109+
110+ return { file : transpiledFiles . get ( "main.ts" ) , diagnostics : [ ...allDiagnostics ] } ;
111+ }
112112
113+ export function transpileVirtualProgram (
114+ input : Record < string , string > ,
115+ options : CompilerOptions = { }
116+ ) : TranspileStringResult {
117+ const mainFileName = Object . keys ( input ) . find ( x => / \b m a i n \. [ a - z ] + $ / . test ( x ) ) ;
118+ if ( mainFileName === undefined ) {
119+ throw new Error ( 'Virtual program should have a file named "main"' ) ;
120+ }
121+
122+ const program = createVirtualProgram ( input , options ) ;
123+ const { diagnostics, transpiledFiles } = getTranspileOutput ( { program, options } ) ;
113124 const allDiagnostics = ts . sortAndDeduplicateDiagnostics ( [
114125 ...ts . getPreEmitDiagnostics ( program ) ,
115126 ...diagnostics ,
0 commit comments