All files / lib/typescript ide.state.ts

0% Statements 0/11
100% Branches 0/0
0% Functions 0/2
0% Lines 0/11

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 40 41 42 43 44 45 46 47                                                                                             
import { Common } from '..'
 
import { SourceCode } from '../common'
import { createDefaultMapFromCDN } from './vfs_default_map_cdn'
import { Observable } from 'rxjs'
import {
    createSystem,
    createVirtualTypeScriptEnvironment,
    VirtualTypeScriptEnvironment,
} from '@typescript/vfs'
import { map } from 'rxjs/operators'
import * as ts from 'typescript'
 
export const compilerOptions = {
    target: ts.ScriptTarget.ES2020,
    module: ts.ModuleKind.ES2020,
    esModuleInterop: true,
    noImplicitAny: false,
    baseUrl: '/',
}
 
export class IdeState extends Common.IdeState {
    public readonly environment$: Observable<VirtualTypeScriptEnvironment>
 
    constructor(params: { files: SourceCode[] }) {
        super({
            files: params.files,
            defaultFileSystem: createDefaultMapFromCDN(
                { target: ts.ScriptTarget.ES2020 },
                '4.7.4',
            ),
        })
 
        this.environment$ = this.fsMap$.pipe(
            map((fsMap) => {
                const system = createSystem(fsMap)
                return createVirtualTypeScriptEnvironment(
                    system,
                    ['index.ts'],
                    ts,
                    compilerOptions,
                )
            }),
        )
    }
}