Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ulixee
GitHub Repository: ulixee/secret-agent
Path: blob/main/core/models/ScrollEventsTable.ts
1028 views
1
import { Database as SqliteDatabase } from 'better-sqlite3';
2
import SqliteTable from '@secret-agent/commons/SqliteTable';
3
import { IScrollEvent } from '@secret-agent/interfaces/IScrollEvent';
4
5
export default class ScrollEventsTable extends SqliteTable<IScrollRecord> {
6
constructor(readonly db: SqliteDatabase) {
7
super(db, 'ScrollEvents', [
8
['tabId', 'INTEGER'],
9
['frameId', 'INTEGER'],
10
['scrollX', 'INTEGER'],
11
['scrollY', 'INTEGER'],
12
['commandId', 'INTEGER'],
13
['timestamp', 'INTEGER'],
14
]);
15
}
16
17
public insert(tabId: number, frameId: number, commandId: number, scrollEvent: IScrollEvent) {
18
const [scrollX, scrollY, timestamp] = scrollEvent;
19
const record = [tabId, frameId, scrollX, scrollY, commandId, timestamp];
20
this.queuePendingInsert(record);
21
}
22
}
23
24
export interface IScrollRecord {
25
tabId: number;
26
frameId: number;
27
scrollX: number;
28
scrollY: number;
29
commandId: number;
30
timestamp: number;
31
}
32
33