Socket
Socket
Sign inDemoInstall

datastore-level

Package Overview
Dependencies
Maintainers
2
Versions
48
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

datastore-level - npm Package Compare versions

Comparing version 0.7.0 to 0.8.0

appveyor.yml

12

CHANGELOG.md

@@ -0,1 +1,13 @@

<a name="0.8.0"></a>
# [0.8.0](https://github.com/ipfs/js-datastore-level/compare/v0.7.0...v0.8.0) (2018-05-29)
### Bug Fixes
* add test and fix constructor ([396f657](https://github.com/ipfs/js-datastore-level/commit/396f657))
* update binary encoding for levelup 2 ([a5d7378](https://github.com/ipfs/js-datastore-level/commit/a5d7378))
* upgrade level libs to resolve node 10 failure ([a427eca](https://github.com/ipfs/js-datastore-level/commit/a427eca))
<a name="0.7.0"></a>

@@ -2,0 +14,0 @@ # [0.7.0](https://github.com/ipfs/js-datastore-level/compare/v0.6.0...v0.7.0) (2017-11-06)

22

package.json
{
"name": "datastore-level",
"version": "0.7.0",
"version": "0.8.0",
"description": "Datastore implementation with level(up|down) backend",
"main": "src/index.js",
"browser": {
"leveldown": "level-js"
},
"scripts": {

@@ -41,13 +44,14 @@ "lint": "aegir lint",

"datastore-core": "~0.4.0",
"encoding-down": "^5.0.2",
"interface-datastore": "~0.4.1",
"level-js": "^2.2.4",
"leveldown": "^1.9.0",
"levelup": "^1.3.9",
"level-js": "github:timkuijsten/level.js#idbunwrapper",
"leveldown": "^3.0.2",
"levelup": "^2.0.2",
"pull-stream": "^3.6.1"
},
"devDependencies": {
"aegir": "^12.1.3",
"async": "^2.5.0",
"aegir": "^13.1.0",
"async": "^2.6.0",
"chai": "^4.1.2",
"cids": "~0.5.2",
"cids": "~0.5.3",
"dirty-chai": "^2.0.1",

@@ -61,4 +65,6 @@ "flow-bin": "^0.58.0",

"Friedel Ziegelmayer <dignifiedquire@gmail.com>",
"Richard Schneider <makaretu@gmail.com>"
"Jacob Heun <jacobheun@gmail.com>",
"Richard Schneider <makaretu@gmail.com>",
"Victor Bjelkholm <victorbjelkholm@gmail.com>"
]
}

@@ -19,2 +19,3 @@ # js-datastore-level

- [Usage](#usage)
- [Browser Shimming Leveldown](#browser-shimming-leveldown)
- [Contribute](#contribute)

@@ -43,2 +44,5 @@ - [License](#license)

### Browser Shimming Leveldown
As `leveldown` does not work in the browser, `LevelStore` takes advantage of the browser property in package.json to shim `level-js` in its place. Most modern bundlers such as webpack, will see the shim and replace it for use in the browser. If you are using a bundler that does not support pkg.browser, you will need to handle the shimming yourself, as was the case with versions of `LevelStore` 0.7.0 and earlier.
## Contribute

@@ -45,0 +49,0 @@

@@ -12,2 +12,3 @@ /* @flow */

const Key = require('interface-datastore').Key
const encode = require('encoding-down')

@@ -28,6 +29,24 @@ /**

constructor (path /* : string */, opts /* : ?LevelOptions */) {
this.db = levelup(path, Object.assign({}, opts, {
compression: false, // same default as go
valueEncoding: 'binary'
}))
let database
if (opts && opts.db) {
database = opts.db
delete opts.db
} else {
// Default to leveldown db
database = require('leveldown')
}
this.db = levelup(
encode(database(path), { valueEncoding: 'binary' }),
Object.assign({}, opts, {
compression: false // same default as go
}),
(err) => {
// Prevent an uncaught exception error on duplicate locks
if (err) {
throw err
}
}
)
}

@@ -63,3 +82,6 @@

delete (key /* : Key */, callback /* : Callback<void> */) /* : void */ {
this.db.del(key.toString(), callback)
this.db.del(key.toString(), (err) => {
// Avoid level passing additional arguments to callback, we dont need them
callback(err)
})
}

@@ -66,0 +88,0 @@

@@ -8,4 +8,6 @@ /* @flow */

const Key = require('interface-datastore').Key
const leveljs = require('level-js')
// leveldown will be swapped for level-js
const leveljs = require('leveldown')
const LevelStore = require('../src')

@@ -12,0 +14,0 @@

@@ -5,3 +5,8 @@ /* @flow */

const chai = require('chai')
chai.use(require('dirty-chai'))
const expect = chai.expect
const memdown = require('memdown')
const LevelDown = require('leveldown')
const eachSeries = require('async/eachSeries')

@@ -11,13 +16,57 @@ const LevelStore = require('../src')

describe('LevelDatastore', () => {
describe('interface-datastore (memdown)', () => {
require('interface-datastore/src/tests')({
setup (callback) {
callback(null, new LevelStore('hello', {db: memdown}))
},
teardown (callback) {
memdown.clearGlobalStore()
callback()
}
describe('initialization', () => {
it('should default to a leveldown database', (done) => {
const levelStore = new LevelStore('init-default')
levelStore.open((err) => {
expect(err).to.not.exist()
expect(levelStore.db.db.db instanceof LevelDown).to.equal(true)
expect(levelStore.db.options).to.include({
createIfMissing: true,
errorIfExists: false
})
expect(levelStore.db.db.codec.opts).to.include({
valueEncoding: 'binary'
})
done()
})
})
it('should be able to override the database', (done) => {
const levelStore = new LevelStore('init-default', {
db: memdown,
createIfMissing: true,
errorIfExists: true
})
levelStore.open((err) => {
expect(err).to.not.exist()
expect(levelStore.db.db.db instanceof memdown).to.equal(true)
expect(levelStore.db.options).to.include({
createIfMissing: true,
errorIfExists: true
})
done()
})
})
})
eachSeries([
memdown,
LevelDown
], (database) => {
describe(`interface-datastore ${database.name}`, () => {
require('interface-datastore/src/tests')({
setup (callback) {
callback(null, new LevelStore('datastore-test', {db: database}))
},
teardown (callback) {
memdown.clearGlobalStore()
callback()
}
})
})
}, (err) => {
expect(err).to.not.exist()
})
})

@@ -24,3 +24,5 @@ /* @flow */

setup (callback) {
callback(null, new LevelStore(dir))
callback(null, new LevelStore(dir, {
db: require('leveldown')
}))
},

@@ -44,9 +46,15 @@ teardown (callback) {

prefix: new Key('/a'),
datastore: new LevelStore(dirs[0])
datastore: new LevelStore(dirs[0], {
db: require('leveldown')
})
}, {
prefix: new Key('/q'),
datastore: new LevelStore(dirs[1])
datastore: new LevelStore(dirs[1], {
db: require('leveldown')
})
}, {
prefix: new Key('/z'),
datastore: new LevelStore(dirs[2])
datastore: new LevelStore(dirs[2], {
db: require('leveldown')
})
}]))

@@ -61,3 +69,5 @@ },

it.skip('interop with go', (done) => {
const store = new LevelStore(path.join(__dirname, 'test-repo', 'datastore'))
const store = new LevelStore(path.join(__dirname, 'test-repo', 'datastore'), {
db: require('leveldown')
})

@@ -64,0 +74,0 @@ pull(

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc