(moduleText: string, oldProgram?: ts.Program)
| 110 | } |
| 111 | |
| 112 | function createProgramFromModuleText(moduleText: string, oldProgram?: ts.Program) { |
| 113 | const fileMap = new Map([ |
| 114 | createFileMapEntry("/lib.d.ts", libText), |
| 115 | createFileMapEntry("/schema.ts", schema), |
| 116 | createFileMapEntry("/json.ts", moduleText) |
| 117 | ]); |
| 118 | const host: ts.CompilerHost = { |
| 119 | getSourceFile: fileName => fileMap.get(fileName), |
| 120 | getDefaultLibFileName: () => "lib.d.ts", |
| 121 | writeFile: () => {}, |
| 122 | getCurrentDirectory: () => "/", |
| 123 | getCanonicalFileName: fileName => fileName, |
| 124 | useCaseSensitiveFileNames: () => true, |
| 125 | getNewLine: () => "\n", |
| 126 | fileExists: fileName => fileMap.has(fileName), |
| 127 | readFile: fileName => "", |
| 128 | }; |
| 129 | return ts.createProgram(Array.from(fileMap.keys()), options, host, oldProgram); |
| 130 | } |
| 131 | |
| 132 | function createFileMapEntry(filePath: string, fileText: string): [string, ts.SourceFile] { |
| 133 | return [filePath, ts.createSourceFile(filePath, fileText, ts.ScriptTarget.Latest)]; |
no test coverage detected