diff --git a/.vscode/settings.json b/.vscode/settings.json
index 1295ee63..cd3023f6 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,3 +1,4 @@
{
- "editor.formatOnSave": true
+ "editor.formatOnSave": true,
+ "cSpell.words": ["pako", "Serde", "serdes"]
}
diff --git a/src/lib/components/actions.svelte b/src/lib/components/actions.svelte
index 4b527d85..b3c411fa 100644
--- a/src/lib/components/actions.svelte
+++ b/src/lib/components/actions.svelte
@@ -18,7 +18,7 @@
}
const svgString = svg.outerHTML
.replaceAll('
', '
')
- .replaceAll(/
]*)>/g, (m, g) => `
`);
+ .replaceAll(/
]*)>/g, (m, g: string) => `
`);
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({
diff --git a/src/lib/util/env.ts b/src/lib/util/env.ts
index f5e22f30..128761f2 100644
--- a/src/lib/util/env.ts
+++ b/src/lib/util/env.ts
@@ -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';
diff --git a/src/lib/util/serde.ts b/src/lib/util/serde.ts
index 7f56ab25..1f7540fc 100644
--- a/src/lib/util/serde.ts
+++ b/src/lib/util/serde.ts
@@ -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 = 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;
};
diff --git a/src/routes/edit.svelte b/src/routes/edit.svelte
index aa21f82a..afdd0f9a 100644
--- a/src/routes/edit.svelte
+++ b/src/routes/edit.svelte
@@ -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);