Browse Source

Add callback types for storage

type-event-callbacks
Artur Arseniev 1 month ago
parent
commit
6ec90d3193
  1. 4
      packages/core/src/editor/types.ts
  2. 7
      packages/core/src/storage_manager/index.ts
  3. 23
      packages/core/src/storage_manager/types.ts

4
packages/core/src/editor/types.ts

@ -14,6 +14,7 @@ import { PageEvent, PagesEventCallback } from '../pages/types';
import { ParserEvent, ParserEventCallback } from '../parser/types';
import { RichTextEditorEvent, RichTextEditorEventCallback } from '../rich_text_editor';
import { SelectorEvent, SelectorEventCallback } from '../selector_manager/types';
import { StorageEvent, StorageEventCallback } from '../storage_manager/types';
import { StyleManagerEvent } from '../style_manager';
import { EditorConfig } from './config/config';
import EditorModel from './model/Editor';
@ -60,7 +61,8 @@ export interface EditorEventCallbacks
PagesEventCallback,
ParserEventCallback,
RichTextEditorEventCallback,
SelectorEventCallback
SelectorEventCallback,
StorageEventCallback
{
[key: string]: any[];
}

7
packages/core/src/storage_manager/index.ts

@ -47,13 +47,10 @@ import LocalStorage from './model/LocalStorage';
import RemoteStorage from './model/RemoteStorage';
import EditorModel from '../editor/model/Editor';
import IStorage, { StorageOptions, ProjectData } from './model/IStorage';
import StorageEvents from './types';
import StorageEvents, { StorageEventType } from './types';
export type { StorageOptions, ProjectData } from './model/IStorage';
export type StorageEvent = `${StorageEvents}`;
type StorageEventType = 'store' | 'load';
export type { StorageEvent, StorageEventCallback, StorageEventType } from './types';
const STORAGE_LOCAL = 'local';
const STORAGE_REMOTE = 'remote';

23
packages/core/src/storage_manager/types.ts

@ -1,3 +1,7 @@
import { ProjectData } from './model/IStorage';
export type StorageEventType = 'store' | 'load';
/**{START_EVENTS}*/
export enum StorageEvents {
/**
@ -112,5 +116,24 @@ export enum StorageEvents {
}
/**{END_EVENTS}*/
export type StorageEvent = `${StorageEvents}`;
export interface StorageEventCallback {
[StorageEvents.start]: [StorageEventType, ProjectData | undefined];
[StorageEvents.startStore]: [ProjectData];
[StorageEvents.startLoad]: [ProjectData | undefined];
[StorageEvents.load]: [ProjectData, unknown];
[StorageEvents.store]: [ProjectData, unknown];
[StorageEvents.after]: [];
[StorageEvents.afterStore]: [ProjectData, unknown];
[StorageEvents.afterLoad]: [ProjectData, unknown];
[StorageEvents.end]: [StorageEventType, unknown, unknown?];
[StorageEvents.endStore]: [unknown, unknown?];
[StorageEvents.endLoad]: [unknown, unknown?];
[StorageEvents.error]: [unknown, StorageEventType];
[StorageEvents.errorStore]: [unknown];
[StorageEvents.errorLoad]: [unknown];
}
// need this to avoid the TS documentation generator to break
export default StorageEvents;

Loading…
Cancel
Save