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

Commit 7bb7d9c

Browse files
author
Lars-Magnus Skog
committed
Merge pull request #79 from rvagg/refactor-options
refactor options for db
2 parents f179949 + 70bb655 commit 7bb7d9c

1 file changed

Lines changed: 31 additions & 32 deletions

File tree

lib/levelup.js

Lines changed: 31 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,8 @@ var leveldown = require('leveldown')
2525
, compression : true
2626
}
2727

28-
, getOptions = function (options, globalOptions) {
29-
return typeof options == 'string' // just an encoding
30-
? options = extend(
31-
{}
32-
, encodingOpts[options] || encodingOpts[defaultOptions.encoding]
33-
)
34-
: extend(extend({}, globalOptions), options)
35-
}
36-
37-
, getCallback = function (options_, callback_) {
38-
return typeof options_ == 'function' ? options_ : callback_
28+
, getCallback = function (options, callback) {
29+
return typeof options == 'function' ? options : callback
3930
}
4031

4132
, createLevelUP = function (location, options, callback) {
@@ -54,12 +45,24 @@ var leveldown = require('leveldown')
5445

5546
, isOpen = function () { return status == 'open' }
5647
, isOpening = function () { return status == 'opening' }
48+
5749
, keyEncoding = function (o) { return o.keyEncoding || o.encoding }
5850
, valueEncoding = function (o) { return o.valueEncoding || o.encoding }
51+
5952
, dispatchError = function (error, callback) {
6053
return callback ? callback(error) : levelup.emit('error', error)
6154
}
6255

56+
, getOptions = function (options) {
57+
return typeof options == 'string' // just an encoding
58+
? extend(
59+
{}
60+
, encodingOpts[options] ||
61+
encodingOpts[defaultOptions.encoding]
62+
)
63+
: extend(extend({}, levelup._options), options)
64+
}
65+
6366
if (typeof options == 'function') {
6467
callback = options
6568
options = {}
@@ -77,7 +80,7 @@ var leveldown = require('leveldown')
7780
EventEmitter.call(this)
7881
this.setMaxListeners(Infinity)
7982

80-
this._options = extend(extend({}, defaultOptions), options)
83+
this._options = extend(extend({}, defaultOptions), options)
8184
Object.defineProperty(this, 'location', {
8285
value: location
8386
, configurable: false
@@ -148,27 +151,26 @@ var leveldown = require('leveldown')
148151

149152
LevelUP.prototype.isClosed = function () { return (/^clos/).test(status) }
150153

151-
LevelUP.prototype.get = function (key_, options_, callback_) {
154+
LevelUP.prototype.get = function (key_, options, callback_) {
152155
var callback
153-
, options
154156
, key
155157
, valueEnc
156158
, err
157159

158160
if (isOpening()) {
159161
return this.once('ready', function () {
160-
this.get(key_, options_, callback_)
162+
this.get(key_, options, callback_)
161163
})
162164
}
163165

164-
callback = getCallback(options_, callback_)
166+
callback = getCallback(options, callback_)
165167

166168
if (!isOpen()) {
167169
err = new errors.ReadError('Database is not open')
168170
return dispatchError(err, callback)
169171
}
170172

171-
options = getOptions(options_, this._options)
173+
options = getOptions(options)
172174
key = toSlice[keyEncoding(options)](key_)
173175
valueEnc = valueEncoding(options)
174176
options.asBuffer = valueEnc != 'utf8' && valueEnc != 'json'
@@ -184,27 +186,26 @@ var leveldown = require('leveldown')
184186
})
185187
}
186188

187-
LevelUP.prototype.put = function (key_, value_, options_, callback_) {
189+
LevelUP.prototype.put = function (key_, value_, options, callback_) {
188190
var callback
189-
, options
190191
, err
191192
, key
192193
, value
193194

194195
if (isOpening()) {
195196
return this.once('ready', function () {
196-
this.put(key_, value_, options_, callback_)
197+
this.put(key_, value_, options, callback_)
197198
})
198199
}
199200

200-
callback = getCallback(options_, callback_)
201+
callback = getCallback(options, callback_)
201202

202203
if (!isOpen()) {
203204
err = new errors.WriteError('Database is not open')
204205
return dispatchError(err, callback)
205206
}
206207

207-
options = getOptions(options_, this._options)
208+
options = getOptions(options)
208209
key = toSlice[keyEncoding(options)](key_)
209210
value = toSlice[valueEncoding(options)](value_)
210211

@@ -220,26 +221,25 @@ var leveldown = require('leveldown')
220221
}.bind(this))
221222
}
222223

223-
LevelUP.prototype.del = function (key_, options_, callback_) {
224+
LevelUP.prototype.del = function (key_, options, callback_) {
224225
var callback
225-
, options
226226
, err
227227
, key
228228

229229
if (isOpening()) {
230230
return this.once('ready', function () {
231-
this.del(key_, options_, callback_)
231+
this.del(key_, options, callback_)
232232
})
233233
}
234234

235-
callback = getCallback(options_, callback_)
235+
callback = getCallback(options, callback_)
236236

237237
if (!isOpen()) {
238238
err = new errors.WriteError('Database is not open')
239239
return dispatchError(err, callback)
240240
}
241241

242-
options = getOptions(options_, this._options)
242+
options = getOptions(options)
243243
key = toSlice[keyEncoding(options)](key_)
244244

245245
this._db.del(key, options, function (err) {
@@ -254,28 +254,27 @@ var leveldown = require('leveldown')
254254
}.bind(this))
255255
}
256256

257-
LevelUP.prototype.batch = function (arr_, options_, callback_) {
257+
LevelUP.prototype.batch = function (arr_, options, callback_) {
258258
var callback
259-
, options
260259
, keyEnc
261260
, valueEnc
262261
, err
263262
, arr
264263

265264
if (isOpening()) {
266265
return this.once('ready', function () {
267-
this.batch(arr_, options_, callback_)
266+
this.batch(arr_, options, callback_)
268267
})
269268
}
270269

271-
callback = getCallback(options_, callback_)
270+
callback = getCallback(options, callback_)
272271

273272
if (!isOpen()) {
274273
err = new errors.WriteError('Database is not open')
275274
return dispatchError(err, callback)
276275
}
277276

278-
options = getOptions(options_, this._options)
277+
options = getOptions(options)
279278
keyEnc = keyEncoding(options)
280279
valueEnc = valueEncoding(options)
281280

0 commit comments

Comments
 (0)