@salutejs/jazz-sdk-electron
Version:
Jazz SDK Electron
58 lines (57 loc) • 1.83 kB
TypeScript
import { Container, Module, ModuleDeclaration } from 'ditox';
type LogLevel = 'debug' | 'info' | 'warn' | 'error';
type LogMetadata = Readonly<Record<string, string>>;
type LogEvent = Readonly<{
timestamp: number;
level: LogLevel;
tag: string;
messages: ReadonlyArray<unknown>;
meta?: LogMetadata;
}>;
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;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
type AnyObject = Record<string, any>;
/**
* Jazz SDK Plugin provides additional features.
*/
type JazzSdkPlugin<T extends Module<AnyObject> = Module<AnyObject>> = Promise<
() => {
key: string | undefined;
module: JazzSdkModuleDeclaration<T>;
}
>;
type JazzSdkModuleDeclaration<
T extends JazzSdkModule<AnyObject> = JazzSdkModule<AnyObject>,
> = ModuleDeclaration<T>;
type JazzSdkModule<T extends AnyObject = AnyObject> = Module<T>;
type JazzSdkAdditionalPlugins = ReadonlyArray<JazzSdkPlugin>;
type PlatformLogEvent = LogEvent;
type PlatformLogLevel = LogLevel;
type LogLevel$0 = PlatformLogLevel;
type LogEvent$0 = PlatformLogEvent;
type JazzSdkElectronMainOptions = {
container?: Container;
plugins?: JazzSdkAdditionalPlugins;
};
type JazzSdkElectronMain = {
container: Container;
destroy: () => void;
};
declare const createJazzSdkElectronMain: (
options?: JazzSdkElectronMainOptions,
) => Promise<JazzSdkElectronMain>;
export { createJazzSdkElectronMain, JazzSdkElectronMainOptions };
export type { JazzSdkPlugin, LogEvent$0 as LogEvent, LogLevel$0 as LogLevel };