iterative/vscode-dvc

View on GitHub
extension/src/vscode/modal.ts

Summary

Maintainability
A
0 mins
Test Coverage
B
80%
import { window } from 'vscode'
import { Response } from './response'

enum Level {
  ERROR = 'Error',
  INFORMATION = 'Information',
  WARNING = 'Warning'
}

export class Modal {
  public static showInformation(text: string, ...items: Response[]) {
    return Modal.show(Level.INFORMATION, text, ...items)
  }

  public static warnOfConsequences(text: string, ...items: Response[]) {
    return Modal.show(Level.WARNING, text, ...items)
  }

  public static errorWithOptions(text: string, ...items: Response[]) {
    return Modal.show(Level.ERROR, text, ...items)
  }

  private static show(
    level: Level,
    message: string,
    ...items: Response[]
  ): Thenable<Response | undefined> {
    return window[`show${level}Message`](message, { modal: true }, ...items)
  }
}