Files
freeCodeCamp/server/utils/rx.js

33 lines
952 B
JavaScript
Raw Normal View History

2015-06-20 19:55:22 -07:00
var Rx = require('rx');
var debug = require('debug')('freecc:rxUtils');
2015-06-25 15:03:46 -07:00
exports.saveInstance = function saveInstance(instance) {
2015-06-20 19:55:22 -07:00
return new Rx.Observable.create(function(observer) {
2015-06-25 15:03:46 -07:00
if (!instance || typeof instance.save !== 'function') {
debug('no instance or save method');
2015-06-20 19:55:22 -07:00
observer.onNext();
return observer.onCompleted();
}
2015-06-25 15:03:46 -07:00
instance.save(function(err, savedInstance) {
2015-06-20 19:55:22 -07:00
if (err) {
return observer.onError(err);
}
2015-06-25 15:03:46 -07:00
debug('instance saved');
observer.onNext(savedInstance);
2015-06-20 19:55:22 -07:00
observer.onCompleted();
});
});
};
2015-06-25 15:03:46 -07:00
// alias saveInstance
exports.saveUser = exports.saveInstance;
2015-06-20 19:55:22 -07:00
exports.observableQueryFromModel =
function observableQueryFromModel(Model, method, query) {
return Rx.Observable.fromNodeCallback(Model[method], Model)(query);
};
2015-06-22 19:23:07 -07:00
exports.observeMethod = function observeMethod(Model, method) {
return Rx.Observable.fromNodeCallback(Model[method], Model);
};