fix: Types
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
}
|
||||
const svgString = svg.outerHTML
|
||||
.replaceAll('<br>', '<br/>')
|
||||
.replaceAll(/<img([^>]*)>/g, (m, g) => `<img ${g} />`);
|
||||
.replaceAll(/<img([^>]*)>/g, (m, g: string) => `<img ${g} />`);
|
||||
return toBase64(svgString);
|
||||
};
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
canvas.toBlob((blob) => {
|
||||
try {
|
||||
// @ts-ignore: https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1004/files
|
||||
navigator.clipboard.write([
|
||||
void navigator.clipboard.write([
|
||||
/* eslint-disable no-undef */
|
||||
// @ts-ignore: https://github.com/microsoft/TypeScript/issues/43821
|
||||
new ClipboardItem({
|
||||
|
||||
+4
-2
@@ -1,2 +1,4 @@
|
||||
export const rendererUrl = import.meta.env.MERMAID_RENDERER_URL ?? 'https://mermaid.ink';
|
||||
export const krokiRendererUrl = import.meta.env.MERMAID_KROKI_RENDERER_URL ?? 'https://kroki.io';
|
||||
export const rendererUrl: string =
|
||||
(import.meta.env.MERMAID_RENDERER_URL as string) ?? 'https://mermaid.ink';
|
||||
export const krokiRendererUrl: string =
|
||||
(import.meta.env.MERMAID_KROKI_RENDERER_URL as string) ?? 'https://kroki.io';
|
||||
|
||||
+19
-15
@@ -7,11 +7,6 @@ interface Serde {
|
||||
deserialize: (state: string) => string;
|
||||
}
|
||||
|
||||
enum SerdeType {
|
||||
Base64 = 'base64',
|
||||
Pako = 'pako'
|
||||
}
|
||||
|
||||
const base64Serde: Serde = {
|
||||
serialize: (state: string): string => {
|
||||
return toBase64(state, true);
|
||||
@@ -32,26 +27,35 @@ export const pakoSerde: Serde = {
|
||||
return inflate(data, { to: 'string' });
|
||||
}
|
||||
};
|
||||
const serdes: Map<string, Serde> = new Map([
|
||||
[SerdeType.Base64, base64Serde],
|
||||
[SerdeType.Pako, pakoSerde]
|
||||
]);
|
||||
|
||||
const serdes: { [key: string]: Serde } = {
|
||||
base64: base64Serde,
|
||||
pako: pakoSerde
|
||||
};
|
||||
|
||||
type SerdeType = keyof typeof serdes;
|
||||
|
||||
export const serializeState = (state: State): string => {
|
||||
const json = JSON.stringify(state);
|
||||
const defaultSerde = SerdeType.Pako;
|
||||
const serialized = serdes.get(defaultSerde).serialize(json);
|
||||
const defaultSerde: SerdeType = 'pako';
|
||||
const serialized = serdes[defaultSerde].serialize(json);
|
||||
return `${defaultSerde}:${serialized}`;
|
||||
};
|
||||
|
||||
export const deserializeState = (state: string): State => {
|
||||
let type: string, serialized: string;
|
||||
let type: SerdeType, serialized: string;
|
||||
if (state.includes(':')) {
|
||||
[type, serialized] = state.split(':');
|
||||
let tempType: string;
|
||||
[tempType, serialized] = state.split(':');
|
||||
if (tempType in serdes) {
|
||||
type = tempType;
|
||||
} else {
|
||||
throw new Error(`Unknown serde type: ${tempType}`);
|
||||
}
|
||||
} else {
|
||||
type = SerdeType.Base64;
|
||||
type = 'base64';
|
||||
serialized = state;
|
||||
}
|
||||
const json = serdes.get(type).deserialize(serialized);
|
||||
const json = serdes[type].deserialize(serialized);
|
||||
return JSON.parse(json) as State;
|
||||
};
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
startLineNumber: e.hash.loc.first_line,
|
||||
startColumn: e.hash.loc.first_column,
|
||||
endLineNumber: e.hash.loc.last_line,
|
||||
endColumn: e.hash.loc.last_column + 1,
|
||||
endColumn: (e.hash.loc.last_column as number) + 1,
|
||||
message: e.str
|
||||
};
|
||||
errorMarkers.push(marker);
|
||||
|
||||
Reference in New Issue
Block a user