utils.ts 1.2 KB
Newer Older
1
import * as os from 'os'
E
Eugene Pankov 已提交
2
import { NgZone } from '@angular/core'
3 4 5

export const WIN_BUILD_CONPTY_SUPPORTED = 17692
export const WIN_BUILD_CONPTY_STABLE = 18309
6
export const WIN_BUILD_WSL_EXE_DISTRO_FLAG = 17763
7
export const WIN_BUILD_FLUENT_BG_SUPPORTED = 17063
8 9 10 11

export function isWindowsBuild (build: number): boolean {
    return process.platform === 'win32' && parseFloat(os.release()) >= 10 && parseInt(os.release().split('.')[2]) >= build
}
12

E
lint  
Eugene Pankov 已提交
13
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
E
Eugene Pankov 已提交
14
export function getCSSFontFamily (config: any): string {
E
Eugene Pankov 已提交
15
    let fonts: string[] = config.terminal.font.split(',').map(x => x.trim().replace(/"/g, ''))
E
Eugene Pankov 已提交
16 17 18
    if (config.terminal.fallbackFont) {
        fonts.push(config.terminal.fallbackFont)
    }
19 20 21 22 23
    fonts.push('monospace-fallback')
    fonts.push('monospace')
    fonts = fonts.map(x => `"${x}"`)
    return fonts.join(', ')
}
E
Eugene Pankov 已提交
24 25 26 27 28 29 30 31 32 33

export function wrapPromise <T> (zone: NgZone, promise: Promise<T>): Promise<T> {
    return new Promise((resolve, reject) => {
        promise.then(result => {
            zone.run(() => resolve(result))
        }).catch(error => {
            zone.run(() => reject(error))
        })
    })
}