| 6dd74de | | | 1 | import type { MermaidConfig } from 'mermaid'; |
| 6dd74de | | | 2 | |
| 6dd74de | | | 3 | const warning = (s: string) => { |
| 6dd74de | | | 4 | // Todo remove debug code |
| 6dd74de | | | 5 | // eslint-disable-next-line no-console |
| 6dd74de | | | 6 | console.error('Log function was called before initialization', s); |
| 6dd74de | | | 7 | }; |
| 6dd74de | | | 8 | |
| 6dd74de | | | 9 | export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal'; |
| 6dd74de | | | 10 | |
| 6dd74de | | | 11 | export const LEVELS: Record<LogLevel, number> = { |
| 6dd74de | | | 12 | trace: 0, |
| 6dd74de | | | 13 | debug: 1, |
| 6dd74de | | | 14 | info: 2, |
| 6dd74de | | | 15 | warn: 3, |
| 6dd74de | | | 16 | error: 4, |
| 6dd74de | | | 17 | fatal: 5, |
| 6dd74de | | | 18 | }; |
| 6dd74de | | | 19 | |
| 6dd74de | | | 20 | export const log: Record<keyof typeof LEVELS, typeof console.log> = { |
| 6dd74de | | | 21 | trace: warning, |
| 6dd74de | | | 22 | debug: warning, |
| 6dd74de | | | 23 | info: warning, |
| 6dd74de | | | 24 | warn: warning, |
| 6dd74de | | | 25 | error: warning, |
| 6dd74de | | | 26 | fatal: warning, |
| 6dd74de | | | 27 | }; |
| 6dd74de | | | 28 | |
| 6dd74de | | | 29 | export let setLogLevel: (level: keyof typeof LEVELS | number) => void; |
| 6dd74de | | | 30 | export let getConfig: () => MermaidConfig; |
| 6dd74de | | | 31 | export let sanitizeText: (str: string) => string; |
| 6dd74de | | | 32 | // eslint-disable @typescript-eslint/no-explicit-any |
| 6dd74de | | | 33 | export let setupGraphViewbox: ( |
| 6dd74de | | | 34 | graph: any, |
| 6dd74de | | | 35 | svgElem: any, |
| 6dd74de | | | 36 | padding: any, |
| 6dd74de | | | 37 | useMaxWidth: boolean |
| 6dd74de | | | 38 | ) => void; |
| 6dd74de | | | 39 | |
| 6dd74de | | | 40 | export const injectUtils = ( |
| 6dd74de | | | 41 | _log: Record<keyof typeof LEVELS, typeof console.log>, |
| 6dd74de | | | 42 | _setLogLevel: any, |
| 6dd74de | | | 43 | _getConfig: any, |
| 6dd74de | | | 44 | _sanitizeText: any, |
| 6dd74de | | | 45 | _setupGraphViewbox: any |
| 6dd74de | | | 46 | ) => { |
| 6dd74de | | | 47 | _log.info('Mermaid utils injected'); |
| 6dd74de | | | 48 | log.trace = _log.trace; |
| 6dd74de | | | 49 | log.debug = _log.debug; |
| 6dd74de | | | 50 | log.info = _log.info; |
| 6dd74de | | | 51 | log.warn = _log.warn; |
| 6dd74de | | | 52 | log.error = _log.error; |
| 6dd74de | | | 53 | log.fatal = _log.fatal; |
| 6dd74de | | | 54 | setLogLevel = _setLogLevel; |
| 6dd74de | | | 55 | getConfig = _getConfig; |
| 6dd74de | | | 56 | sanitizeText = _sanitizeText; |
| 6dd74de | | | 57 | setupGraphViewbox = _setupGraphViewbox; |
| 6dd74de | | | 58 | }; |