@wordpress/sync
Version:
41 lines (40 loc) • 1.12 kB
JavaScript
// packages/sync/src/providers/index.ts
import { applyFilters } from "@wordpress/hooks";
import { createIndexedDbProvider } from "./indexeddb-provider";
import { createWebRTCProvider } from "./webrtc-provider";
var providerCreators = null;
function getDefaultProviderCreators() {
const signalingUrl = window?.wp?.ajax?.settings?.url;
if (!signalingUrl) {
return [];
}
return [
createIndexedDbProvider,
createWebRTCProvider({
password: window?.__experimentalCollaborativeEditingSecret,
signaling: [signalingUrl]
})
];
}
function isProviderCreator(creator) {
return "function" === typeof creator;
}
function getProviderCreators() {
if (providerCreators) {
return providerCreators;
}
const filteredProviderCreators = applyFilters(
"sync.providers",
getDefaultProviderCreators()
);
if (!Array.isArray(filteredProviderCreators)) {
providerCreators = [];
return providerCreators;
}
providerCreators = filteredProviderCreators.filter(isProviderCreator);
return providerCreators;
}
export {
getProviderCreators
};
//# sourceMappingURL=index.js.map