UNPKG

@prefecthq/prefect-ui-library

Version:

This library is the Vue and Typescript component library for [Prefect 2](https://github.com/PrefectHQ/prefect) and [Prefect Cloud 2](https://www.prefect.io/cloud/). _The components and utilities in this project are not meant to be used independently_.

29 lines (22 loc) 904 B
import { CloudConfigMissingParamsError } from '@/models/CloudConfigMissingParamsError' import { Api, ApiBaseUrl, PrefectConfig } from '@/services/Api' export type CloudApiConfig = PrefectConfig & { accountId: string, workspaceId: string, } export type WorkspaceApiConfig = PrefectConfig | CloudApiConfig export function isCloudConfig(config: WorkspaceApiConfig): config is CloudApiConfig { return 'accountId' in config && 'workspaceId' in config && 'token' in config } const getWorkspaceBaseUrl: ApiBaseUrl = (config) => { if (!isCloudConfig(config)) { return config.baseUrl } if (config.accountId && config.workspaceId) { return `${config.baseUrl}/accounts/${config.accountId}/workspaces/${config.workspaceId}` } throw new CloudConfigMissingParamsError() } export class WorkspaceApi extends Api<WorkspaceApiConfig> { protected override apiBaseUrl = getWorkspaceBaseUrl }