From d5f5ef9b4cfb3f5c9ccc7c1c11452cd40a4ee543 Mon Sep 17 00:00:00 2001 From: Alysson Barrera Date: Sat, 27 Jun 2026 16:24:40 -0300 Subject: [PATCH] fix(editor): rename reserved keyword methods in MarkdownManager MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `export` and `import` are reserved JavaScript keywords. Using them as method names in a class causes a SyntaxError in Safari when Vite pre-bundles the file with esbuild, because esbuild keeps the literal method names and Safari's parser rejects them. Rename `MarkdownManager#export` → `toMarkdown` and `MarkdownManager#import` → `fromMarkdown` to fix cross-browser compatibility without changing any public API. Fixes #20 --- .../editor/src/extensions/export/MarkdownExtension.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/editor/src/extensions/export/MarkdownExtension.tsx b/packages/editor/src/extensions/export/MarkdownExtension.tsx index 6b963fa..b020498 100644 --- a/packages/editor/src/extensions/export/MarkdownExtension.tsx +++ b/packages/editor/src/extensions/export/MarkdownExtension.tsx @@ -55,13 +55,13 @@ class MarkdownManager { return [...this.extraTransformers, ...TRANSFORMERS]; } - export(): string { + toMarkdown(): string { return this.editor.getEditorState().read(() => { return $convertToMarkdownString(this.getAllTransformers()); }); } - import(markdown: string, onComplete?: () => void, preventFocus?: boolean) { + fromMarkdown(markdown: string, onComplete?: () => void, preventFocus?: boolean) { this.editor.update( () => { const root = $getRoot(); @@ -139,7 +139,7 @@ export class MarkdownExtension extends BaseExtension< exportToMarkdown: () => { if (!this.manager) return ''; try { - return this.manager.export(); + return this.manager.toMarkdown(); } catch (e) { console.error('[MarkdownExtension] export failed', e); return ''; @@ -155,7 +155,7 @@ export class MarkdownExtension extends BaseExtension< const delay = immediate ? 0 : this.config.importDebounce || 0; if (this.importTimer) clearTimeout(this.importTimer); const run = () => { - this.manager?.import(markdown, () => { + this.manager?.fromMarkdown(markdown, () => { resolve(); }, preventFocus); };