New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

dat-node

Package Overview
Dependencies
Maintainers
1
Versions
71
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dat-node - npm Package Compare versions

Comparing version 1.2.4 to 1.3.0

7

CHANGELOG.md

@@ -13,2 +13,9 @@ # Change Log

## 1.3.0 - 2017-01-25
## Added
* `createIfMissing` and `errorIfExists` options
## Deprecated
* `resume` option
## 1.2.4 - 2017-01-24

@@ -15,0 +22,0 @@ ## Fixed

41

lib/init-archive.js
var assert = require('assert')
var fs = require('fs')
var path = require('path')

@@ -19,3 +20,9 @@ var level = require('level')

var dbPath = opts.dbPath || path.join(dir, '.dat')
var createIfMissing = opts.createIfMissing === false ? opts.createIfMissing : true
var errorIfExists = opts.errorIfExists || false
// opts.resume backwards compat. TODO: Remove in v2
if (opts.resume) createIfMissing = false
if (opts.resume === false) errorIfExists = true
if (!opts.file) {

@@ -34,10 +41,22 @@ // TODO: do we always want this set?

debug('Making/Reading archive database')
level(dbPath, function (err, _db) {
if (err) return cb(err)
db = _db
drive = hyperdrive(db)
checkDriveKeys()
})
if (createIfMissing !== false) return createDb()
try {
// check if existing dbPath
if (!fs.statSync(dbPath).isDirectory()) throw new Error('No existing .dat folder')
return createDb()
} catch (e) {
return cb(e)
}
function createDb () {
debug('Making/Reading archive database')
level(dbPath, function (err, _db) {
if (err) return cb(err)
db = _db
drive = hyperdrive(db)
checkDriveKeys()
})
}
function checkDriveKeys () {

@@ -48,4 +67,8 @@ // Try to resume archives if there are keys in the drive

if (err) return cb(err)
if (vals.length > 2 && !opts.key) return cb('Drive has multiple archives. Must specify key.')
else if (!vals.length || opts.key) {
if (vals.length > 2 && !opts.key) return cb(new Error('Drive has multiple archives. Must specify key.'))
else if (errorIfExists && vals.length) {
return db.close(function () {
cb(new Error('Existing feeds in database.'))
})
} else if (!vals.length || opts.key) {
if (!vals.length) debug('No existing feeds in drive')

@@ -52,0 +75,0 @@ if (opts.key) debug('Resuming using key option', opts.key)

{
"name": "dat-node",
"version": "1.2.4",
"version": "1.3.0",
"description": "Build node applications with Dat archives on the file system.",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -125,2 +125,5 @@ # dat-node

// If only dir is specified (not a custom drive/db) You can use these options:
createIfMissing: true, // create db if doesn't exist
errorIfExists: false, // error if existing archive in database
dbPath: path.join(opts.dir,'.dat') // directory name for level database

@@ -127,0 +130,0 @@ }

@@ -270,1 +270,31 @@ var path = require('path')

})
test('createIfMissing false', function (t) {
rimraf.sync(path.join(shareFolder, '.dat'))
Dat(shareFolder, {createIfMissing: false}, function (err, dat) {
t.ok(err, 'throws error')
t.end()
})
})
test('backwards compat resume true', function (t) {
rimraf.sync(path.join(shareFolder, '.dat'))
Dat(shareFolder, {resume: true}, function (err, dat) {
t.ok(err, 'throws error')
t.end()
})
})
test('errorIfExists true', function (t) {
rimraf.sync(path.join(shareFolder, '.dat'))
// create dat to resume from
Dat(shareFolder, function (err, dat) {
t.ifErr(err)
dat.close(function () {
Dat(shareFolder, {errorIfExists: true}, function (err, dat) {
t.ok(err, 'throws error')
t.end()
})
})
})
})
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