UNPKG

@croct/plug

Version:

A fully-featured devkit for building natively personalized applications.

42 lines (39 loc) 1.44 kB
import { TokenStore } from '@croct/sdk/token'; import { EvaluatorFacade } from '@croct/sdk/facade/evaluatorFacade'; import { TrackerFacade } from '@croct/sdk/facade/trackerFacade'; import { SdkEventManager } from './sdk/index.cjs'; import { UserFacade } from '@croct/sdk/facade/userFacade'; import { SessionFacade } from '@croct/sdk/facade/sessionFacade'; import { Tab } from '@croct/sdk/tab'; import { CidAssigner } from '@croct/sdk/cid'; import { Logger } from '@croct/sdk/logging'; import '@croct/sdk/eventManager'; import '@croct/sdk/sdkEvents'; interface PluginSdk { readonly version: string; readonly appId: string; readonly tracker: TrackerFacade; readonly evaluator: EvaluatorFacade; readonly user: UserFacade; readonly session: SessionFacade; readonly tab: Tab; readonly userTokenStore: TokenStore; readonly previewTokenStore: TokenStore; readonly cidAssigner: CidAssigner; readonly eventManager: SdkEventManager; getLogger(...namespace: string[]): Logger; getTabStorage(...namespace: string[]): Storage; getBrowserStorage(...namespace: string[]): Storage; } interface PluginArguments<T = any> { options: T; sdk: PluginSdk; } interface PluginFactory<T = any> { (args: PluginArguments<T>): Plugin; } interface Plugin { enable(): Promise<void> | void; disable?(): Promise<void> | void; } export type { Plugin, PluginArguments, PluginFactory, PluginSdk };