Skip to content
This repository was archived by the owner on Dec 1, 2024. It is now read-only.

Commit ea568e7

Browse files
author
Lars-Magnus Skog
committed
Refactor promisify() code by using catering module
1 parent 79f323e commit ea568e7

4 files changed

Lines changed: 31 additions & 74 deletions

File tree

lib/batch.js

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
var WriteError = require('level-errors').WriteError
2-
var promisify = require('./promisify')
2+
var catering = require('catering')
33
var getCallback = require('./common').getCallback
44
var getOptions = require('./common').getOptions
55

@@ -53,15 +53,9 @@ Batch.prototype.clear = function () {
5353
Batch.prototype.write = function (options, callback) {
5454
var levelup = this._levelup
5555
var ops = this.ops
56-
var promise
5756

5857
callback = getCallback(options, callback)
59-
60-
if (!callback) {
61-
callback = promisify()
62-
promise = callback.promise
63-
}
64-
58+
callback = catering.fromCallback(callback)
6559
options = getOptions(options)
6660

6761
try {
@@ -74,7 +68,7 @@ Batch.prototype.write = function (options, callback) {
7468
throw new WriteError(err)
7569
}
7670

77-
return promise
71+
return callback.promise
7872
}
7973

8074
module.exports = Batch

lib/levelup.js

Lines changed: 27 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ var Batch = require('./batch')
77
var errors = require('level-errors')
88
var supports = require('level-supports')
99
var assert = require('assert')
10-
var promisify = require('./promisify')
10+
var catering = require('catering')
1111
var getCallback = require('./common').getCallback
1212
var getOptions = require('./common').getOptions
1313

@@ -86,30 +86,26 @@ inherits(LevelUP, EventEmitter)
8686

8787
LevelUP.prototype.open = function (opts, callback) {
8888
var self = this
89-
var promise
9089

9190
if (typeof opts === 'function') {
9291
callback = opts
9392
opts = null
9493
}
9594

96-
if (!callback) {
97-
callback = promisify()
98-
promise = callback.promise
99-
}
95+
callback = catering.fromCallback(callback)
10096

10197
if (!opts) {
10298
opts = this.options
10399
}
104100

105101
if (this.isOpen()) {
106102
process.nextTick(callback, null, self)
107-
return promise
103+
return callback.promise
108104
}
109105

110106
if (this._isOpening()) {
111107
this.once('open', function () { callback(null, self) })
112-
return promise
108+
return callback.promise
113109
}
114110

115111
this.emit('opening')
@@ -124,17 +120,13 @@ LevelUP.prototype.open = function (opts, callback) {
124120
self.emit('ready')
125121
})
126122

127-
return promise
123+
return callback.promise
128124
}
129125

130126
LevelUP.prototype.close = function (callback) {
131127
var self = this
132-
var promise
133128

134-
if (!callback) {
135-
callback = promisify()
136-
promise = callback.promise
137-
}
129+
callback = catering.fromCallback(callback)
138130

139131
if (this.isOpen()) {
140132
this.db.close(function () {
@@ -153,7 +145,7 @@ LevelUP.prototype.close = function (callback) {
153145
})
154146
}
155147

156-
return promise
148+
return callback.promise
157149
}
158150

159151
LevelUP.prototype.isOpen = function () {
@@ -169,17 +161,13 @@ LevelUP.prototype.isClosed = function () {
169161
}
170162

171163
LevelUP.prototype.get = function (key, options, callback) {
172-
var promise
173-
174164
callback = getCallback(options, callback)
165+
callback = catering.fromCallback(callback)
175166

176-
if (!callback) {
177-
callback = promisify()
178-
promise = callback.promise
167+
if (maybeError(this, callback)) {
168+
return callback.promise
179169
}
180170

181-
if (maybeError(this, callback)) { return promise }
182-
183171
options = getOptions(options)
184172

185173
this.db.get(key, options, function (err, value) {
@@ -194,22 +182,19 @@ LevelUP.prototype.get = function (key, options, callback) {
194182
callback(null, value)
195183
})
196184

197-
return promise
185+
return callback.promise
198186
}
199187

200188
LevelUP.prototype.put = function (key, value, options, callback) {
201189
var self = this
202-
var promise
203190

204191
callback = getCallback(options, callback)
192+
callback = catering.fromCallback(callback)
205193

206-
if (!callback) {
207-
callback = promisify()
208-
promise = callback.promise
194+
if (maybeError(this, callback)) {
195+
return callback.promise
209196
}
210197

211-
if (maybeError(this, callback)) { return promise }
212-
213198
options = getOptions(options)
214199

215200
this.db.put(key, value, options, function (err) {
@@ -220,22 +205,19 @@ LevelUP.prototype.put = function (key, value, options, callback) {
220205
callback()
221206
})
222207

223-
return promise
208+
return callback.promise
224209
}
225210

226211
LevelUP.prototype.del = function (key, options, callback) {
227212
var self = this
228-
var promise
229213

230214
callback = getCallback(options, callback)
215+
callback = catering.fromCallback(callback)
231216

232-
if (!callback) {
233-
callback = promisify()
234-
promise = callback.promise
217+
if (maybeError(this, callback)) {
218+
return callback.promise
235219
}
236220

237-
if (maybeError(this, callback)) { return promise }
238-
239221
options = getOptions(options)
240222

241223
this.db.del(key, options, function (err) {
@@ -246,7 +228,7 @@ LevelUP.prototype.del = function (key, options, callback) {
246228
callback()
247229
})
248230

249-
return promise
231+
return callback.promise
250232
}
251233

252234
LevelUP.prototype.batch = function (arr, options, callback) {
@@ -255,17 +237,15 @@ LevelUP.prototype.batch = function (arr, options, callback) {
255237
}
256238

257239
var self = this
258-
var promise
259240

260241
if (typeof arr === 'function') callback = arr
261242
else callback = getCallback(options, callback)
262243

263-
if (!callback) {
264-
callback = promisify()
265-
promise = callback.promise
266-
}
244+
callback = catering.fromCallback(callback)
267245

268-
if (maybeError(this, callback)) { return promise }
246+
if (maybeError(this, callback)) {
247+
return callback.promise
248+
}
269249

270250
options = getOptions(options)
271251

@@ -277,7 +257,7 @@ LevelUP.prototype.batch = function (arr, options, callback) {
277257
callback()
278258
})
279259

280-
return promise
260+
return callback.promise
281261
}
282262

283263
LevelUP.prototype.iterator = function (options) {
@@ -286,18 +266,13 @@ LevelUP.prototype.iterator = function (options) {
286266

287267
LevelUP.prototype.clear = function (options, callback) {
288268
var self = this
289-
var promise
290269

291270
callback = getCallback(options, callback)
292271
options = getOptions(options)
293-
294-
if (!callback) {
295-
callback = promisify()
296-
promise = callback.promise
297-
}
272+
callback = catering.fromCallback(callback)
298273

299274
if (maybeError(this, callback)) {
300-
return promise
275+
return callback.promise
301276
}
302277

303278
this.db.clear(options, function (err) {
@@ -308,7 +283,7 @@ LevelUP.prototype.clear = function (options, callback) {
308283
callback()
309284
})
310285

311-
return promise
286+
return callback.promise
312287
}
313288

314289
LevelUP.prototype.readStream =

lib/promisify.js

Lines changed: 0 additions & 13 deletions
This file was deleted.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"prepublishOnly": "npm run dependency-check"
1515
},
1616
"dependencies": {
17+
"catering": "~2.0.0",
1718
"deferred-leveldown": "~5.3.0",
1819
"level-errors": "~2.0.0",
1920
"level-iterator-stream": "~4.0.0",

0 commit comments

Comments
 (0)