Merge pull request #58 from Flow-Works/ThinLiquid-patch-1

[🔨] Organize types
This commit is contained in:
ThinLiquid 2023-11-23 12:57:29 +00:00 committed by GitHub
commit 165514635e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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<FlowWindow>
}
export interface Plugin {
meta: PluginMeta
run: (element: HTMLDivElement) => void | Promise<void>
}
/* MISC */
export interface FlowPlugin {
name: string
pkg: string
@ -23,12 +68,6 @@ export interface FlowPlugin {
loadTheme: (data: any) => void | Promise<void>
}
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<FlowWindow>
}
export interface Plugin {
meta: {
name: string
description: string
pkg: string
version: string
icon?: string
}
run: (element: HTMLDivElement) => void | Promise<void>
}
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
}