From 2325d7513cf36c490097c3e1661560cdc7646682 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Tue, 17 Feb 2026 14:14:59 +0400 Subject: [PATCH] Add callback types to parser --- packages/core/src/editor/types.ts | 5 ++++- packages/core/src/parser/types.ts | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/packages/core/src/editor/types.ts b/packages/core/src/editor/types.ts index 81af3ae52..73f4b417b 100644 --- a/packages/core/src/editor/types.ts +++ b/packages/core/src/editor/types.ts @@ -11,6 +11,7 @@ import { KeymapEvent, KeymapsEventCallback } from '../keymaps/types'; import { ModalEvent, ModalEventCallback } from '../modal_dialog/types'; import { LayerEvent, LayerEventCallback } from '../navigator/types'; import { PageEvent, PagesEventCallback } from '../pages/types'; +import { ParserEvent, ParserEventCallback } from '../parser/types'; import { RichTextEditorEvent } from '../rich_text_editor'; import { SelectorEvent } from '../selector_manager'; import { StyleManagerEvent } from '../style_manager'; @@ -29,6 +30,7 @@ type EditorBuiltInEvents = | KeymapEvent | LayerEvent | PageEvent + | ParserEvent | StyleManagerEvent | StorageEvent | CanvasEvent @@ -55,7 +57,8 @@ export interface EditorEventCallbacks KeymapsEventCallback, LayerEventCallback, ModalEventCallback, - PagesEventCallback + PagesEventCallback, + ParserEventCallback { [key: string]: any[]; } diff --git a/packages/core/src/parser/types.ts b/packages/core/src/parser/types.ts index f69a78324..26387dbd6 100644 --- a/packages/core/src/parser/types.ts +++ b/packages/core/src/parser/types.ts @@ -1,3 +1,7 @@ +import { ObjectAny } from '../common'; +import { CssRuleJSON } from '../css_composer/model/CssRule'; +import { HTMLParseResult, HTMLParserOptions, ParsedCssRule } from './config/config'; + /**{START_EVENTS}*/ export enum ParserEvents { /** @@ -46,5 +50,16 @@ export enum ParserEvents { } /**{END_EVENTS}*/ +export type ParserEvent = `${ParserEvents}`; + +export interface ParserEventCallback { + [ParserEvents.htmlBefore]: [{ input: string }]; + [ParserEvents.htmlRoot]: [{ input: string; root: HTMLElement }]; + [ParserEvents.html]: [{ input: string; output: HTMLParseResult; options: HTMLParserOptions }]; + [ParserEvents.cssBefore]: [{ input: string }]; + [ParserEvents.css]: [{ input: string; output: CssRuleJSON[]; nodes: Array; error: unknown }]; + [ParserEvents.all]: [{ event: ParserEvent; input: string } & ObjectAny]; +} + // need this to avoid the TS documentation generator to break export default ParserEvents;