Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ulixee
GitHub Repository: ulixee/secret-agent
Path: blob/main/core/models/TabsTable.ts
1028 views
1
import { Database as SqliteDatabase } from 'better-sqlite3';
2
import SqliteTable from '@secret-agent/commons/SqliteTable';
3
import IViewport from '@secret-agent/interfaces/IViewport';
4
5
export default class TabsTable extends SqliteTable<ITabsRecord> {
6
constructor(readonly db: SqliteDatabase) {
7
super(db, 'Tabs', [
8
['id', 'INTEGER'],
9
['parentId', 'INTEGER'],
10
['detachedAtCommandId', 'INTEGER'],
11
['pageTargetId', 'TEXT'],
12
['sessionId', 'TEXT'],
13
['viewportWidth', 'INTEGER'],
14
['viewportHeight', 'INTEGER'],
15
['browserPositionX', 'INTEGER'],
16
['browserPositionY', 'INTEGER'],
17
['createdTime', 'INTEGER'],
18
]);
19
}
20
21
public insert(
22
tabId: number,
23
pageId: string,
24
devtoolsSessionId: string,
25
viewPort: IViewport,
26
parentTabId?: number,
27
detachedAtCommandId?: number,
28
) {
29
return this.queuePendingInsert([
30
tabId,
31
parentTabId,
32
detachedAtCommandId,
33
pageId,
34
devtoolsSessionId,
35
viewPort.width,
36
viewPort.height,
37
viewPort.positionX,
38
viewPort.positionY,
39
new Date().getTime(),
40
]);
41
}
42
}
43
44
export interface ITabsRecord {
45
id: number;
46
parentId: number | null;
47
detachedAtCommandId: number | null;
48
pageTargetId: string;
49
sessionId: string;
50
viewportWidth: number;
51
viewportHeight: number;
52
browserPositionX: number;
53
browserPositionY: number;
54
createdTime: number;
55
}
56
57