All files / lib/typescript utils.ts

0% Statements 0/14
100% Branches 0/0
0% Functions 0/4
0% Lines 0/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39                                                                             
import * as ts from 'typescript'
import { compilerOptions } from './ide.state'
import {
    createSystem,
    createVirtualTypeScriptEnvironment,
} from '@typescript/vfs'
import { SrcHighlight } from '../common'
 
export function parseTypescript(tsSrc: string) {
    const transpiled = ts
        .transpileModule(tsSrc, {
            compilerOptions,
        })
        .outputText.replace('export {};', '')
 
    return {
        tsSrc: tsSrc,
        jsSrc: transpiled,
    }
}
 
export function getHighlights(fsMap, src) {
    fsMap.set('index.ts', `${src}`)
    const system = createSystem(fsMap)
    const env = createVirtualTypeScriptEnvironment(
        system,
        ['index.ts'],
        ts,
        compilerOptions,
    )
 
    return [
        ...env.languageService.getSyntacticDiagnostics('index.ts'),
        ...env.languageService.getSemanticDiagnostics('index.ts'),
    ]
        .map((d) => new SrcHighlight(d))
        .filter((highlight) => highlight.diagnostic.code != 1108)
}