iterative/vscode-dvc

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

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
import { env, ProviderResult, Uri, window } from 'vscode'

export const openUrl = (url: string) => env.openExternal(Uri.parse(url))

export const getCallBackUrl = async (path: string) => {
  const uri = await env.asExternalUri(
    Uri.parse(`${env.uriScheme}://iterative.dvc${path}`)
  )

  return uri.toString()
}

export const waitForUriResponse = (path: string, onResponse: () => unknown) =>
  window.registerUriHandler({
    handleUri(uri: Uri): ProviderResult<void> {
      if (uri.path === path) {
        onResponse()
      }
    }
  })