UNPKG

generator-ngstack

Version:

Based on DaftMonk generator-angular-fullstack, this is a custom mean stack yeoman generator

78 lines (58 loc) 1.86 kB
# global io 'use strict' (-> ### @ngInject ### socket = (socketFactory) -> # socket.io now auto-configures its connection when we omit a connection url ioSocket = io '', # Send auth token on connection, you will need to DI the Auth service above # 'query': 'token=' + Auth.getToken() path: '/socket.io-client' socket = socketFactory ioSocket: ioSocket socket: socket ### Register listeners to sync an array with updates on a model Takes the array we want to sync, the model name that socket updates are sent from, and an optional callback function after new items are updated. @param {String} modelName @param {Array} array @param {Function} callback ### syncUpdates: (modelName, array, callback) -> ### Syncs item creation/updates on 'model:save' ### socket.on modelName + ':save', (item) -> oldItem = _.find array, _id: item._id index = array.indexOf oldItem event = 'created' # replace oldItem if it exists # otherwise just add item to the collection if oldItem array.splice index, 1, item event = 'updated' else array.push item callback? event, item, array ### Syncs removed items on 'model:remove' ### socket.on modelName + ':remove', (item) -> event = 'deleted' _.remove array, _id: item._id callback? event, item, array ### Removes listeners for a models updates on the socket @param modelName ### unsyncUpdates: (modelName) -> socket.removeAllListeners modelName + ':save' socket.removeAllListeners modelName + ':remove' socket .$inject = ['socketFactory'] angular .module '<%= scriptAppName %>' .factory 'socket', socket )()