1
0
silverbullet/plugos/types.ts
Zef Hemel 561aa6891f
Migrate to Deno (#86)
Big bang migration to Deno 🤯
2022-10-10 14:50:21 +02:00

29 lines
629 B
TypeScript

import { AssetBundle } from "../plugos/asset_bundle_reader.ts";
import { System } from "./system.ts";
export interface Manifest<HookT> {
name: string;
requiredPermissions?: string[];
assets?: string[] | AssetBundle;
dependencies?: {
[key: string]: string;
};
functions: {
[key: string]: FunctionDef<HookT>;
};
}
export type FunctionDef<HookT> = {
path?: string;
code?: string;
env?: RuntimeEnvironment;
} & HookT;
export type RuntimeEnvironment = "client" | "server";
export interface Hook<HookT> {
validateManifest(manifest: Manifest<HookT>): string[];
apply(system: System<HookT>): void;
}