@salutejs/jazz-sdk-electron
Version:
Jazz SDK Electron
45 lines (44 loc) • 1.49 kB
TypeScript
import { Container, Module, ModuleDeclaration } from 'ditox';
type LogMetadata = Readonly<Record<string, string>>;
type LogFunction = (...data: unknown[]) => void;
type Logger = {
/**
* Returns a nested logger
*/
getLogger: typeof getLogger;
withMeta: (meta: LogMetadata) => Logger;
debug: LogFunction;
log: LogFunction;
info: LogFunction;
warn: LogFunction;
error: LogFunction;
};
declare function getLogger(tag: string, meta?: LogMetadata): Logger;
/**
* Jazz SDK Plugin provides additional features.
*/
type JazzSdkPreloadPlugin<T extends Module<AnyObject> = Module<AnyObject>> =
() => {
key: string | undefined;
module: JazzSdkPreloadModuleDeclaration<T>;
};
type JazzSdkPreloadModuleDeclaration<
T extends JazzSdkPreloadModule<AnyObject> = JazzSdkPreloadModule<AnyObject>,
> = ModuleDeclaration<T>;
type JazzSdkPreloadModule<T extends AnyObject = AnyObject> = Module<T>;
type JazzSdkPreloadAdditionalPlugins = ReadonlyArray<JazzSdkPreloadPlugin>;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
type AnyObject = Record<string, any>;
type JazzSdkElectronPreloadOptions = {
container?: Container;
plugins?: JazzSdkPreloadAdditionalPlugins;
};
type JazzSdkElectronPreload = {
destroy: () => void;
container: Container;
};
declare const createJazzSdkElectronPreload: (
options?: JazzSdkElectronPreloadOptions,
) => JazzSdkElectronPreload;
export { createJazzSdkElectronPreload };
export type { JazzSdkElectronPreloadOptions };