firebase-unchained
Advanced tools
Comparing version
105
lib/index.js
@@ -6,109 +6,16 @@ 'use strict'; | ||
}); | ||
exports.pauthWithCustomToken = pauthWithCustomToken; | ||
exports.pget = pget; | ||
exports.pval = pval; | ||
exports.ppush = ppush; | ||
exports.pset = pset; | ||
exports.pupdate = pupdate; | ||
exports.premove = premove; | ||
exports.default = promisifyFirebase; | ||
function pauthWithCustomToken(db) { | ||
return function (token, options) { | ||
return new Promise(function (resolve, reject) { | ||
db.authWithCustomToken(token, function (err, authData) { | ||
if (err) { | ||
reject(err); | ||
} else { | ||
resolve(authData); | ||
} | ||
}, options); | ||
}); | ||
}; | ||
} | ||
function pget(db) { | ||
return function (path) { | ||
var ref = path.once ? path : db.child(path); | ||
return new Promise(function (resolve, reject) { | ||
ref.once('value', resolve, reject); | ||
}); | ||
}; | ||
} | ||
var _api = require('./api'); | ||
function pval(db) { | ||
return function (path) { | ||
return db.pget(path).then(function (snap) { | ||
var val = snap.val(); | ||
if (val === null) { | ||
throw new Error('No value at this path'); | ||
} | ||
return val; | ||
}); | ||
}; | ||
} | ||
var api = _interopRequireWildcard(_api); | ||
function ppush(db) { | ||
var _arguments = arguments; | ||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } | ||
return function (path, value) { | ||
var ref = path.push ? path : db.child(path); | ||
if (_arguments.length < 2) { | ||
return Promise.resolve(ref.push()); | ||
} | ||
return new Promise(function (resolve, reject) { | ||
ref.push(value, function (err) { | ||
return err ? reject(err) : resolve(); | ||
}); | ||
}); | ||
}; | ||
} | ||
function pset(db) { | ||
return function (path, value) { | ||
var ref = path.set ? path : db.child(path); | ||
return new Promise(function (resolve, reject) { | ||
ref.set(value, function (err) { | ||
return err ? reject(err) : resolve(); | ||
}); | ||
}); | ||
}; | ||
} | ||
function psetWithPriority(db) { | ||
return function (path, value, priority) { | ||
var ref = path.setWithPriority ? path : db.child(path); | ||
return new Promise(function (resolve, reject) { | ||
ref.setWithPriority(value, priority, function (err) { | ||
return err ? reject(err) : resolve(); | ||
}); | ||
}); | ||
}; | ||
} | ||
function pupdate(db) { | ||
return function (path, value) { | ||
var ref = path.update ? path : db.child(path); | ||
return new Promise(function (resolve, reject) { | ||
ref.update(value, function (err) { | ||
return err ? reject(err) : resolve(); | ||
}); | ||
}); | ||
}; | ||
} | ||
function premove(db) { | ||
return function (path) { | ||
var ref = path.remove ? path : db.child(path); | ||
return new Promise(function (resolve, reject) { | ||
ref.remove(function (err) { | ||
return err ? reject(err) : resolve(); | ||
}); | ||
}); | ||
}; | ||
} | ||
function promisifyFirebase(db) { | ||
[pauthWithCustomToken, pget, pval, ppush, pset, psetWithPriority, pupdate, premove].forEach(function (fn) { | ||
return db[fn.name] = fn(db); | ||
Object.keys(api).forEach(function (name) { | ||
var fn = api[name]; | ||
db[name] = fn(db); | ||
}); | ||
return db; | ||
} |
{ | ||
"name": "firebase-unchained", | ||
"version": "1.1.0", | ||
"version": "1.2.0", | ||
"description": "Promise version of Firebase API without chaining", | ||
@@ -12,4 +12,7 @@ "main": "lib/index.js", | ||
"build": "babel src -d lib", | ||
"faucet": "npm run tape | faucet", | ||
"prepublish": "npm run build", | ||
"test": "standard && babel-tape-runner tests/**/*.js | faucet" | ||
"standard": "standard", | ||
"tape": "babel-tape-runner 'tests/**/*.js'", | ||
"test": "npm run faucet && npm run standard" | ||
}, | ||
@@ -16,0 +19,0 @@ "author": "Seggy Umboh <sumboh@eta.ai>", |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
4911
30.4%4
33.33%134
30.1%1
Infinity%