From dab4635272933250d2a5f4c57090a408efaddd32 Mon Sep 17 00:00:00 2001 From: Damir Date: Mon, 30 Sep 2024 01:00:28 +0300 Subject: [PATCH] update types --- bun.lockb | Bin 162081 -> 164061 bytes package.json | 6 +- src/types/index.ts | 1 - src/types/widget.ts | 34 ----------- src/youtrack.ts | 5 +- tsconfig.json | 1 + types/hub-dashboard-addons/index.d.ts | 85 ++++++++++++++++++++++++++ 7 files changed, 93 insertions(+), 39 deletions(-) delete mode 100644 src/types/widget.ts create mode 100644 types/hub-dashboard-addons/index.d.ts diff --git a/bun.lockb b/bun.lockb index c5715030de9b43d4c67ca49c5a2ac52b5662b316..0e681bf2840a5cab299ea5da1fc19c406fa5057b 100755 GIT binary patch delta 27746 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 delta 26344 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
=Jzpzfo@eF<^Hl$oon%JtH)uVw9VDS#Ev( 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 diff --git a/package.json b/package.json index 56e487d..9089e42 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "youtrack-client", "description": "Client library for accessing the YouTrack REST and Widget API", - "version": "0.3.4", + "version": "0.3.5", "type": "module", "keywords": [ "youtrack", @@ -19,7 +19,8 @@ "browser": "dist/youtrack-client.min.js", "types": "dist/index.d.ts", "files": [ - "dist" + "dist", + "types" ], "exports": { ".": { @@ -48,6 +49,7 @@ "@rollup/plugin-typescript": "^12.1.0", "@types/jest": "^29.5.13", "axios": "^1.7.7", + "hub-dashboard-addons": "^1.0.2", "rimraf": "^6.0.1", "rollup": "^4.21.3", "rollup-plugin-filesize": "^10.0.0", diff --git a/src/types/index.ts b/src/types/index.ts index 5628331..e2fafb9 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -2,5 +2,4 @@ export * from "./fetch" export * from "./api" export * from "./entities" export * from "./utils" -export * from "./widget" export * from "./fields" diff --git a/src/types/widget.ts b/src/types/widget.ts deleted file mode 100644 index 074a3ce..0000000 --- a/src/types/widget.ts +++ /dev/null @@ -1,34 +0,0 @@ -export type WidgetApi = (props: WidgetApiProps) => void - -export type WidgetApiProps = { - onRefresh?(): Promise - onConfigure?(): Promise -} - -export type DashboardApi = { - setTitle(label: string, labelUri?: string): void - setLoadingAnimationEnabled(enabled: boolean): void - alert(message: string, type?: string, timeout?: number): string - enterConfigMode(): void - exitConfigMode(): void - storeCache(cache: object): Promise - readCache(): Promise - storeConfig(config: object): Promise - readConfig(): Promise - fetch(serviceID: string, url: string, fetchConfig?: object): Promise - fetchHub(url: string, fetchConfig?: object): Promise - loadServices(applicationName: string): Promise - removeWidget(): void -} - -export type Service = { - type: string - id: string - name: string - key: string - homeUrl: string - applicationName: string - vendor: string - version: string - trusted: boolean -} diff --git a/src/youtrack.ts b/src/youtrack.ts index 8e456e4..2290b9b 100644 --- a/src/youtrack.ts +++ b/src/youtrack.ts @@ -1,6 +1,7 @@ +import type { DashboardApi, HubService } from "hub-dashboard-addons" import type { Axios } from "axios" -import type { DashboardApi, FetchConfig, FetchFunc, Service } from "./types" +import type { FetchConfig, FetchFunc } from "./types" import { encodeBody, joinUrl } from "./utils" import * as ResourceApi from "./resources" @@ -78,7 +79,7 @@ export class YouTrack { } static async widget(api: DashboardApi) { - const { services } = await api.fetchHub<{ services: Service[] }>( + const { services } = await api.fetchHub<{ services: HubService[] }>( `api/rest/services?query=applicationName:${"YouTrack"}`, ) diff --git a/tsconfig.json b/tsconfig.json index 42d2e7b..b9d66f2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,6 +6,7 @@ "module": "ESNext", "allowJs": false, "skipLibCheck": true, + "typeRoots": ["types"], /* Bundler mode */ "moduleResolution": "bundler", diff --git a/types/hub-dashboard-addons/index.d.ts b/types/hub-dashboard-addons/index.d.ts new file mode 100644 index 0000000..0c5f792 --- /dev/null +++ b/types/hub-dashboard-addons/index.d.ts @@ -0,0 +1,85 @@ +declare module "hub-dashboard-addons" { + export type WidgetApi = (props: WidgetApiProps) => void + + export type WidgetApiProps = { + onRefresh?(): Promise + onConfigure?(): Promise + } + + export interface HubService { + id: string + applicationName: string + homeUrl: string + key: string + name: string + trusted: boolean + type: string + vendor: string + version: string + } + + type AlertType = "error" | "message" | "success" | "warning" | "loading" + + export type DashboardApi = { + setTitle(label: string, labelUri?: string): Promise + setLoadingAnimationEnabled(enabled: boolean): Promise + + alert(message: string, type?: AlertType, timeout?: number, options?: object): string | number + setError(e: Error): Promise + clearError(): Promise + + enterConfigMode(): Promise + exitConfigMode(): Promise + + readCache(): Promise + storeCache(cache: object): Promise + + readConfig(): Promise + storeConfig(config: object): Promise + + fetch(serviceID: string, url: string, fetchConfig?: object): Promise + fetchHub(url: string, fetchConfig?: object): Promise + downloadFile(serviceID: string, relativeURL: string, requestParams: unknown, fileName?: string): Promise + + loadServices(applicationName: string): Promise + removeWidget(): void + } + + const addon: { + locale: string + editable: boolean + registerWidget: (widget: (dashboardApi: DashboardApi, widgetApi: WidgetApi) => Promise) => void + } + + export default addon +} + +declare module "hub-dashboard-addons/dist/localization" { + interface Dictionary { + [key: string]: string | Record + } + + interface Translations { + [lang: string]: Dictionary + } + + export const i18n: { + ( + text: string, + interpolationObject?: Record, + numberForPlurals?: number, + context?: string, + ): string + plural( + count: number, + textForUnique: string, + textForPlural: string, + interpolationObject?: Record, + context?: string, + ): string + } + + export const i18nTimeIdentifiers: Record + + export function setLocale(lang: string, translations: Translations): void +}