From 3b2e130ef54c137023d72c62c5daf8fae6f1a5da Mon Sep 17 00:00:00 2001 From: ThinLiquid Date: Thu, 23 Nov 2023 12:56:50 +0000 Subject: [PATCH] =?UTF-8?q?[=F0=9F=94=A8]=20Organize=20types?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/types.ts | 91 +++++++++++++++++++++++++++++----------------------- 1 file changed, 51 insertions(+), 40 deletions(-) diff --git a/src/types.ts b/src/types.ts index d6d4715..32ff649 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,7 +1,11 @@ import { FlowWindow } from './wm' -export interface PackageJSON { - version: string +/* EVENTS */ + +export interface AppClosedEvent extends CustomEvent { + detail: { + win: FlowWindow + } } export interface AppOpenedEvent extends CustomEvent { @@ -11,6 +15,47 @@ export interface AppOpenedEvent extends CustomEvent { } } +/* METADATA */ + +export interface BaseMeta { + name: string + description: string + pkg: string + version: string +} + +export interface AppMeta extends BaseMeta { + icon: string +} + +export interface PluginMeta extends BaseMeta { + icon?: string +} + +/* OBJECTS */ + +export interface Apps { + [key: string]: App +} + +export interface Plugins { + [key: string]: Plugin +} + +/* MAIN INTERFACES */ + +export interface App { + meta: AppMeta + open: (data: any) => Promise +} + +export interface Plugin { + meta: PluginMeta + run: (element: HTMLDivElement) => void | Promise +} + +/* MISC */ + export interface FlowPlugin { name: string pkg: string @@ -23,12 +68,6 @@ export interface FlowPlugin { loadTheme: (data: any) => void | Promise } -export interface AppClosedEvent extends CustomEvent { - detail: { - win: FlowWindow - } -} - export interface FlowWindowConfig { title: string icon: string @@ -42,38 +81,6 @@ export interface FlowWindowConfig { minHeight?: number } -export interface App { - meta: { - name: string - description: string - pkg: string - version: string - icon: string - } - - open: (data: any) => Promise -} - -export interface Plugin { - meta: { - name: string - description: string - pkg: string - version: string - icon?: string - } - - run: (element: HTMLDivElement) => void | Promise -} - -export interface Apps { - [key: string]: App -} - -export interface Plugins { - [key: string]: Plugin -} - export interface LoadedApp extends App { builtin: boolean } @@ -81,3 +88,7 @@ export interface LoadedApp extends App { export interface LoadedPlugin extends Plugin { builtin: boolean } + +export interface PackageJSON { + version: string +}