@@ -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 ( / ^ c l o s / ) . 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