UNPKG

@wordpress/sync

Version:
37 lines (34 loc) 1.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.connectIndexDb = connectIndexDb; var _yIndexeddb = require("y-indexeddb"); /** * External dependencies */ // @ts-ignore /** @typedef {import('./types').ObjectType} ObjectType */ /** @typedef {import('./types').ObjectID} ObjectID */ /** @typedef {import('./types').CRDTDoc} CRDTDoc */ /** @typedef {import('./types').ConnectDoc} ConnectDoc */ /** @typedef {import('./types').SyncProvider} SyncProvider */ /** * Connect function to the IndexedDB persistence provider. * * @param {ObjectID} objectId The object ID. * @param {ObjectType} objectType The object type. * @param {CRDTDoc} doc The CRDT document. * * @return {Promise<() => void>} Promise that resolves when the connection is established. */ function connectIndexDb(objectId, objectType, doc) { const roomName = `${objectType}-${objectId}`; const provider = new _yIndexeddb.IndexeddbPersistence(roomName, doc); return new Promise(resolve => { provider.on('synced', () => { resolve(() => provider.destroy()); }); }); } //# sourceMappingURL=connect-indexdb.js.map