From 1f5fa6c3e7fab582c03790f17c05645508856573 Mon Sep 17 00:00:00 2001 From: JerryShen Date: Tue, 29 Aug 2017 18:12:07 +0800 Subject: [PATCH 1/3] Update dependency `should` --- package-lock.json | 55 +++++++++++++++++++++++++++++++---------------- package.json | 2 +- 2 files changed, 38 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index 31ac5c2..038e6ea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "node-trello", - "version": "1.2.2", + "version": "1.3.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -625,38 +625,57 @@ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, "should": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/should/-/should-5.2.0.tgz", - "integrity": "sha1-mkUZtEe4te7c6e7ZavNCDUUaVAs=", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/should/-/should-12.0.0.tgz", + "integrity": "sha512-KH4k3fjCizyfLCRBUpLOPXTi8WHJoluehIZsxVeIxlrSRFk4FgoZxjZXBlyXt4h9FdOi1j/y0SYJWmcrF0UYhA==", "dev": true, "requires": { - "should-equal": "0.3.1", - "should-format": "0.0.7", - "should-type": "0.0.4" + "should-equal": "2.0.0", + "should-format": "3.0.3", + "should-type": "1.4.0", + "should-type-adaptors": "1.0.1", + "should-util": "1.0.0" } }, "should-equal": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-0.3.1.tgz", - "integrity": "sha1-vY6pemdI45+tR2o75v1y68LnK/A=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", + "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", "dev": true, "requires": { - "should-type": "0.0.4" + "should-type": "1.4.0" } }, "should-format": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/should-format/-/should-format-0.0.7.tgz", - "integrity": "sha1-Hi74a9kdqcLgQSM1tWq6vZov3hI=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", + "integrity": "sha1-m/yPdPo5IFxT04w01xcwPidxJPE=", "dev": true, "requires": { - "should-type": "0.0.4" + "should-type": "1.4.0", + "should-type-adaptors": "1.0.1" } }, "should-type": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/should-type/-/should-type-0.0.4.tgz", - "integrity": "sha1-ATKgVBemEmhmQmrPEW8e1WI6XNA=", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", + "integrity": "sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM=", + "dev": true + }, + "should-type-adaptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.0.1.tgz", + "integrity": "sha1-7+VVPN9oz/ZuXF9RtxLcNRx3vqo=", + "dev": true, + "requires": { + "should-type": "1.4.0", + "should-util": "1.0.0" + } + }, + "should-util": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.0.tgz", + "integrity": "sha1-yYzaN0qmsZDfi6h8mInCtNtiAGM=", "dev": true }, "sntp": { diff --git a/package.json b/package.json index bb13125..c4a51bd 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "devDependencies": { "blanket": "^1.2.3", "mocha": "^3.4.2", - "should": "^5.2.0", + "should": "^12.0.0", "travis-cov": "^0.2.5" }, "config": { From 2d261eabec64580483ad4c3047f14271fedade83 Mon Sep 17 00:00:00 2001 From: JerryShen Date: Tue, 29 Aug 2017 18:12:29 +0800 Subject: [PATCH 2/3] Add Promise compatibility --- lib/node-trello.js | 25 ++++++++++++++++--------- test/trello.js | 5 +++++ 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/lib/node-trello.js b/lib/node-trello.js index b1b982d..ac61682 100644 --- a/lib/node-trello.js +++ b/lib/node-trello.js @@ -83,15 +83,22 @@ Trello.prototype.request = function (method, uri, argsOrCallback, callback) { options.json = this.addAuthArgs(this.parseQuery(uri, args)); } - request[method === 'DELETE' ? 'del' : method.toLowerCase()](options, function (err, response, body) { - if (!err && response.statusCode >= 400) { - err = new Error(body); - err.statusCode = response.statusCode; - err.responseBody = body; - err.statusMessage = require('http').STATUS_CODES[response.statusCode]; - } - - callback(err, body); + return new Promise(function (resolve, reject) { + request[method === 'DELETE' ? 'del' : method.toLowerCase()](options, function (err, response, body) { + if (!err && response.statusCode >= 400) { + err = new Error(body); + err.statusCode = response.statusCode; + err.responseBody = body; + err.statusMessage = require('http').STATUS_CODES[response.statusCode]; + } + + if (typeof callback === 'function') { + callback(err, body); + } else { + if (err) reject(err); + else resolve(body) + } + }); }); }; diff --git a/test/trello.js b/test/trello.js index abaf88d..e7c1e76 100644 --- a/test/trello.js +++ b/test/trello.js @@ -209,6 +209,11 @@ describe("Trello", function () { request.get = method; }); + + it("should return a promise", function () { + const promise = this.trello.request("VERB", "/test"); + promise.should.be.Promise(); + }); }); }); }); From 86709bd4bb3f802d2b7db6b9557345e8ea63f443 Mon Sep 17 00:00:00 2001 From: JerryShen Date: Sat, 30 Sep 2017 07:54:38 +0800 Subject: [PATCH 3/3] Update `README.md` for promise --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 1ac18b6..6e0aec7 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,10 @@ t.get("/1/members/me", { cards: "open" }, function(err, data) { if (err) throw err; console.log(data); }); + +// Use it as a promise +t.get("/1/members/me", { cards: "open" }) + .then(function(data) { console.log(data); }); ``` ### Uploading attachments to a card