Skip to content

Commit 2a51118

Browse files
author
David Fahlander
committed
Build output
1 parent 27c1a5f commit 2a51118

40 files changed

+44777
-120
lines changed

Diff for: addons/Dexie.Observable/dist/README.md

-37
This file was deleted.

Diff for: addons/Dexie.Observable/dist/dexie-observable.d.ts

+116
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
// Type definitions for dexie-observable v4.0.1-beta.13
2+
// Project: https://github.com/dexie/Dexie.js/tree/master/addons/Dexie.Observable
3+
// Definitions by: David Fahlander <https://github.com/dfahlander>
4+
5+
import Dexie, { DexieEventSet } from 'dexie';
6+
import { IDatabaseChange } from '../api';
7+
8+
export interface SyncNodeConstructor {
9+
new() : SyncNode;
10+
}
11+
12+
//
13+
// Interfaces of Dexie.Observable
14+
//
15+
16+
17+
/**
18+
* A SyncNode represents a local database instance that subscribes
19+
* to changes made on the database.
20+
* SyncNodes are stored in the _syncNodes table.
21+
*
22+
* Dexie.Syncable extends this interface and allows 'remote' nodes to be stored
23+
* as well.
24+
*/
25+
export interface SyncNode {
26+
id?: number,
27+
myRevision: number,
28+
type: 'local' | 'remote',
29+
lastHeartBeat: number,
30+
deleteTimeStamp: number, // In case lastHeartBeat is too old, a value of now + HIBERNATE_GRACE_PERIOD will be set here. If reached before node wakes up, node will be deleted.
31+
isMaster: number // 1 if true. Not using Boolean because it's not possible to index Booleans.
32+
}
33+
34+
export interface ObservableEventSet extends DexieEventSet {
35+
(eventName: 'latestRevisionIncremented', subscriber: (dbName: string, latestRevision: number) => void): void;
36+
(eventName: 'suicideNurseCall', subscriber: (dbName: string, nodeID: number) => void): void;
37+
(eventName: 'intercomm', subscriber: (dbName: string) => void): void;
38+
(eventName: 'beforeunload', subscriber: () => void): void;
39+
}
40+
41+
// Object received by on('message') after sendMessage() or broadcastMessage()
42+
interface MessageEvent {
43+
id: number;
44+
type: string;
45+
message: any;
46+
destinationNode: number;
47+
wantReply?: boolean;
48+
resolve(result: any): void;
49+
reject(error: any): void;
50+
}
51+
52+
//
53+
// Extend Dexie interface
54+
//
55+
declare module 'dexie' {
56+
// Extend methods on db (db.sendMessage(), ...)
57+
interface Dexie {
58+
// Placeholder where to access the SyncNode class constructor.
59+
// (makes it valid to do new db.observable.SyncNode())
60+
observable: {
61+
version: string;
62+
SyncNode: SyncNodeConstructor;
63+
sendMessage(
64+
type: string, // Don't use 'response' as it is used internally by the framework
65+
message: any, // anything that can be saved by IndexedDB
66+
destinationNode: number,
67+
options: {
68+
wantReply?: boolean;
69+
}
70+
): Promise<any> | void; // When wantReply is undefined or false return is void
71+
72+
broadcastMessage(
73+
type: string,
74+
message: any, // anything that can be saved by IndexedDB
75+
bIncludeSelf: boolean
76+
): void;
77+
}
78+
79+
readonly _localSyncNode: SyncNode;
80+
81+
_changes: Dexie.Table<IDatabaseChange & {rev: number}, number>;
82+
_syncNodes: Dexie.Table<SyncNode, number>;
83+
_intercomm: Dexie.Table<any, number>;
84+
}
85+
86+
// Extended events db.on('changes', subscriber), ...
87+
interface DbEvents {
88+
(eventName: 'changes', subscriber: (changes: IDatabaseChange[], partial: boolean)=>void): void;
89+
(eventName: 'cleanup', subscriber: ()=>any): void;
90+
(eventName: 'message', subscriber: (msg: MessageEvent)=>any): void;
91+
}
92+
93+
// Extended IndexSpec with uuid boolean for primary key.
94+
interface IndexSpec {
95+
uuid: boolean;
96+
}
97+
98+
interface DexieConstructor {
99+
Observable: {
100+
(db: Dexie) : void;
101+
102+
version: string;
103+
createUUID: () => string;
104+
on: ObservableEventSet;
105+
localStorageImpl: {
106+
setItem(key: string, value: string): void,
107+
getItem(key: string): string,
108+
removeItem(key: string): void;
109+
};
110+
_onStorage: (event: StorageEvent) => void;
111+
}
112+
113+
}
114+
}
115+
116+
export default Dexie.Observable;

0 commit comments

Comments
 (0)