From 8f57ee0ec41a380b58b5d9b276d560b3f116ae1b Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Tue, 4 Feb 2025 12:39:51 +0400 Subject: [PATCH] Add `project:get` event --- packages/core/src/editor/model/Editor.ts | 4 +++- packages/core/src/editor/types.ts | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/core/src/editor/model/Editor.ts b/packages/core/src/editor/model/Editor.ts index 88bd27369..1c9918a60 100644 --- a/packages/core/src/editor/model/Editor.ts +++ b/packages/core/src/editor/model/Editor.ts @@ -875,7 +875,9 @@ export default class EditorModel extends Model { this.storables.forEach((m) => { result = { ...result, ...m.store(1) }; }); - return JSON.parse(JSON.stringify(result)); + const project = JSON.parse(JSON.stringify(result)); + this.trigger(EditorEvents.projectGet, { project }); + return project; } loadData(project: ProjectData = {}, opts: EditorLoadOptions = {}): ProjectData { diff --git a/packages/core/src/editor/types.ts b/packages/core/src/editor/types.ts index 99960edb8..4dba074be 100644 --- a/packages/core/src/editor/types.ts +++ b/packages/core/src/editor/types.ts @@ -35,6 +35,13 @@ export enum EditorEvents { */ projectLoad = 'project:load', + /** + * @event `project:get` Event triggered on request of the project data. This can be used to extend the project with custom data. + * @example + * editor.on('project:get', ({ project }) => { project.myCustomKey = 'value' }); + */ + projectGet = 'project:get', + /** * @event `log` Log message triggered. * @example