JSFiddle - React, Tailwind, and code Playground
JavaScript
var prop, $prop;
function promisifyModel($q, model) {
for (prop in model) {
promisify($q, model, prop);
}
for (prop in model.prototype) {
promisify($q, model.prototype, prop);
}
return model;
}
function promisify($q, model, prop) {
$prop = '$' + prop;
if (typeof model[prop] == 'function') {
model[$prop] = function () {
var theArgs = [].splice.call(arguments,0);
return $q(function (resolve, reject) {
theArgs.push(function (err, data) {
if (err) {
return reject(err);
} else {
return resolve(data);
}
});
model[prop].apply(model, theArgs);
});
};
}
}
angular.module('loopbackExampleFullStackApp')
.value('sync', client.sync)
.value('network', client.network)
.factory('Todo', function($q) { return promisifyModel($q, client.models.LocalTodo); })
.factory('RemoteTodo', function($q) { return promisifyModel($q, client.models.Todo); });