mango-cms 0.2.26 → 0.2.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/default/package.json +1 -1
- package/default/src/helpers/mango.js +29 -5
- package/package.json +1 -1
package/default/package.json
CHANGED
|
@@ -226,12 +226,36 @@ const Mango = collections.reduce((a, c) => {
|
|
|
226
226
|
|
|
227
227
|
}
|
|
228
228
|
|
|
229
|
-
let subscribe = (
|
|
229
|
+
let subscribe = ({target, triggers, room} = {}) => {
|
|
230
|
+
|
|
230
231
|
let socket = io(`${api}/${c.name}`, { transports: ['websocket'] })
|
|
231
|
-
let userId = window.localStorage.getItem('
|
|
232
|
+
let userId = window.localStorage.getItem('token').split(':')[1]
|
|
233
|
+
|
|
232
234
|
room = room || userId
|
|
233
235
|
socket.emit('subscribeToThread', room)
|
|
234
|
-
|
|
236
|
+
|
|
237
|
+
triggers = triggers || {}
|
|
238
|
+
let defaultTriggers = {
|
|
239
|
+
created: (data) => {
|
|
240
|
+
if (Array.isArray(target)) target.push(data)
|
|
241
|
+
else target = data
|
|
242
|
+
},
|
|
243
|
+
updated: (data) => {
|
|
244
|
+
if (Array.isArray(target)) target = target.map(t => t.id == data.id ? data : t)
|
|
245
|
+
else if (target.id == data.id) target = data
|
|
246
|
+
},
|
|
247
|
+
deleted: (data) => {
|
|
248
|
+
if (Array.isArray(target)) target = target.filter(t => t.id != data.id)
|
|
249
|
+
else if (target.id == data.id) target = null
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
let combinedTriggers = { ...defaultTriggers, ...triggers }
|
|
254
|
+
|
|
255
|
+
for (let trigger of Object.keys(combinedTriggers)) {
|
|
256
|
+
socket.on(`${c.name}:${trigger}`, combinedTriggers[trigger])
|
|
257
|
+
}
|
|
258
|
+
|
|
235
259
|
}
|
|
236
260
|
|
|
237
261
|
a[c.name] = runQuery
|
|
@@ -239,9 +263,9 @@ const Mango = collections.reduce((a, c) => {
|
|
|
239
263
|
a[c.name]['delete'] = deleteEntry
|
|
240
264
|
a[c.name]['subscribe'] = subscribe
|
|
241
265
|
a[c.singular] = (id, query) => runQuery({ id, ...query })
|
|
242
|
-
a[c.singular]['subscribe'] = (id, callback) => {
|
|
266
|
+
a[c.singular]['subscribe'] = (id, callback, message) => {
|
|
243
267
|
if (!id) return console.error('No id provided')
|
|
244
|
-
return subscribe(
|
|
268
|
+
return subscribe(id, message, callback)
|
|
245
269
|
}
|
|
246
270
|
|
|
247
271
|
a[c.name]['local'] = localDB.getEntries
|