firebase-unchained
Advanced tools
+133
| 'use strict'; | ||
| Object.defineProperty(exports, "__esModule", { | ||
| value: true | ||
| }); | ||
| exports.pauthWithCustomToken = pauthWithCustomToken; | ||
| exports.pget = pget; | ||
| exports.pval = pval; | ||
| exports.parray = parray; | ||
| exports.ppush = ppush; | ||
| exports.pset = pset; | ||
| exports.psetWithPriority = psetWithPriority; | ||
| exports.pupdate = pupdate; | ||
| exports.premove = premove; | ||
| exports.generateId = generateId; | ||
| 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); | ||
| }); | ||
| }; | ||
| } | ||
| 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; | ||
| }); | ||
| }; | ||
| } | ||
| function parray(db) { | ||
| return function (path) { | ||
| return db.pget(path).then(function (snap) { | ||
| if (!snap.hasChildren()) { | ||
| throw new Error('No child value at this path'); | ||
| } | ||
| var results = []; | ||
| snap.forEach(function (childSnap) { | ||
| results.push(childSnap.val()); | ||
| }); | ||
| return results; | ||
| }); | ||
| }; | ||
| } | ||
| function ppush(db) { | ||
| var _arguments = arguments; | ||
| 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 generateId(db) { | ||
| return function () { | ||
| var path = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0]; | ||
| var ref = path.push ? path : db.child(path); | ||
| return ref.push().key(); | ||
| }; | ||
| } |
+6
-99
@@ -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; | ||
| } |
+5
-2
| { | ||
| "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%