@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
65 lines (64 loc) • 2.51 kB
TypeScript
import type { PluginConstructor } from './Plugin';
export interface UMDLocPluginDefinition {
umdLoc: {
uri: string;
baseUri?: string;
};
name: string;
}
export interface UMDUrlPluginDefinition {
umdUrl: string;
name: string;
}
export interface LegacyUMDPluginDefinition {
url: string;
name: string;
}
type UMDPluginDefinition = UMDLocPluginDefinition | UMDUrlPluginDefinition;
export declare function isUMDPluginDefinition(def: PluginDefinition): def is UMDPluginDefinition | LegacyUMDPluginDefinition;
export interface ESMLocPluginDefinition {
esmLoc: {
uri: string;
baseUri?: string;
};
}
export interface ESMUrlPluginDefinition {
esmUrl: string;
}
export type ESMPluginDefinition = ESMLocPluginDefinition | ESMUrlPluginDefinition;
export declare function isESMPluginDefinition(def: PluginDefinition): def is ESMPluginDefinition;
export interface CJSPluginDefinition {
cjsUrl: string;
}
export declare function isCJSPluginDefinition(def: PluginDefinition): def is CJSPluginDefinition;
export type PluginDefinition = UMDUrlPluginDefinition | UMDLocPluginDefinition | LegacyUMDPluginDefinition | ESMLocPluginDefinition | ESMUrlPluginDefinition | CJSPluginDefinition;
export interface PluginRecord {
plugin: PluginConstructor;
definition: PluginDefinition;
}
export interface LoadedPlugin {
default: PluginConstructor;
}
export declare function pluginDescriptionString(d: PluginDefinition): string;
export declare function pluginUrl(d: PluginDefinition): any;
export default class PluginLoader {
definitions: PluginDefinition[];
fetchESM?: (url: string) => Promise<LoadedPlugin>;
fetchCJS?: (url: string) => Promise<LoadedPlugin>;
constructor(defs?: PluginDefinition[], args?: {
fetchESM?: (url: string) => Promise<LoadedPlugin>;
fetchCJS?: (url: string) => Promise<LoadedPlugin>;
});
loadCJSPlugin(def: CJSPluginDefinition, baseUri?: string): Promise<LoadedPlugin>;
loadESMPlugin(def: ESMPluginDefinition, baseUri?: string): Promise<LoadedPlugin>;
loadUMDPlugin(def: UMDPluginDefinition | LegacyUMDPluginDefinition, baseUri?: string): Promise<{
default: PluginConstructor;
}>;
loadPlugin(def: PluginDefinition, baseUri?: string): Promise<PluginConstructor>;
installGlobalReExports(target: WindowOrWorkerGlobalScope): this;
load(baseUri?: string): Promise<{
plugin: PluginConstructor;
definition: PluginDefinition;
}[]>;
}
export {};