forked from chris-visser/vue-simpleddp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
plugin.js
33 lines (26 loc) · 885 Bytes
/
plugin.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import SimpleDDP from 'simpleddp';
import ws from 'isomorphic-ws';
export default {
install(Vue, options) {
const api = new SimpleDDP({
endpoint: 'ws://localhost:3030/websocket',
SocketConstructor: ws,
reconnectInterval: 5000,
...options,
});
Vue.prototype.api = api;
(async () => {
await api.connect();
console.log('Connected to server');
})();
Vue.prototype.$subscribe = async (publicationName, ...args) => {
return api.sub(publicationName, args).ready();
};
Vue.prototype.find = function(collectionName) {
// temp solution but a reactive one, however we can't mutate this
// should be changed as soon as simpleddp 1.2.0 come out
if (!Array.isArray(api.collections[collectionName])) api.collections[collectionName] = [];
return api.collections[collectionName];
};
},
};