mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-19 15:26:59 +08:00
45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
import { createIdentifier } from '@blocksuite/global/di';
|
|
|
|
import type { OutDatabaseAllEvents } from './database.js';
|
|
import type { LinkToolbarEvents } from './link.js';
|
|
import type { NoteEvents } from './note.js';
|
|
import type {
|
|
AttachmentUploadedEvent,
|
|
BlockCreationEvent,
|
|
DocCreatedEvent,
|
|
EdgelessToolPickedEvent,
|
|
ElementCreationEvent,
|
|
ElementLockEvent,
|
|
ElementUpdatedEvent,
|
|
LinkedDocCreatedEvent,
|
|
MindMapCollapseEvent,
|
|
TelemetryEvent,
|
|
} from './types.js';
|
|
|
|
export type TelemetryEventMap = OutDatabaseAllEvents &
|
|
LinkToolbarEvents &
|
|
NoteEvents & {
|
|
DocCreated: DocCreatedEvent;
|
|
Link: TelemetryEvent;
|
|
LinkedDocCreated: LinkedDocCreatedEvent;
|
|
SplitNote: TelemetryEvent;
|
|
CanvasElementAdded: ElementCreationEvent;
|
|
CanvasElementUpdated: ElementUpdatedEvent;
|
|
EdgelessElementLocked: ElementLockEvent;
|
|
ExpandedAndCollapsed: MindMapCollapseEvent;
|
|
AttachmentUploadedEvent: AttachmentUploadedEvent;
|
|
BlockCreated: BlockCreationEvent;
|
|
EdgelessToolPicked: EdgelessToolPickedEvent;
|
|
};
|
|
|
|
export interface TelemetryService {
|
|
track<T extends keyof TelemetryEventMap>(
|
|
eventName: T,
|
|
props: TelemetryEventMap[T]
|
|
): void;
|
|
}
|
|
|
|
export const TelemetryProvider = createIdentifier<TelemetryService>(
|
|
'AffineTelemetryService'
|
|
);
|