diff --git a/logger.js b/logger.js index 37628f9b..8f5c06f5 100644 --- a/logger.js +++ b/logger.js @@ -8,9 +8,11 @@ var cadence = require('cadence/redux') var Queue = require('./queue') var Script = require('./script') var Scribe = require('./scribe') +var checksum = require('./checksum') -function Logger (directory, sheaf) { - this._directory = directory +function Logger (options, sheaf) { + this._directory = options.directory + this._checksum = checksum(options.checksum) // todo: remove when page can slice this._sheaf = sheaf } @@ -27,7 +29,7 @@ Logger.prototype.writeEntry = function (options) { entry = options.header.slice() json = JSON.stringify(entry) - var hash = this._sheaf.checksum() + var hash = this._checksum() hash.update(json) length = 0 diff --git a/sheaf.js b/sheaf.js index 1955669b..9c7f40b5 100644 --- a/sheaf.js +++ b/sheaf.js @@ -28,22 +28,6 @@ function Sheaf (options) { this.comparator = options.comparator || compare this.player = options.player this.logger = options.logger - this.checksum = (function () { - if (typeof options.checksum == 'function') return options.checksum - var algorithm - switch (algorithm = options.checksum || 'sha1') { - case 'none': - return function () { - return { - update: function () {}, - digest: function () { return '0' } - } - } - default: - var crypto = require('crypto') - return function (m) { return crypto.createHash(algorithm) } - } - })() this.serialize = options.serialize || function (object) { return new Buffer(JSON.stringify(object)) } this.deserialize = options.deserialize || function (buffer) { return JSON.parse(buffer.toString()) } this.lengths = {} diff --git a/strata.js b/strata.js index 03b5bb58..fec64f4f 100644 --- a/strata.js +++ b/strata.js @@ -25,7 +25,7 @@ function extend(to, from) { function Strata (options) { options.player = new Player(options) - options.logger = new Logger(options.directory, this.sheaf) + options.logger = new Logger(options, this.sheaf) options.logger._sheaf = this.sheaf = new Sheaf(options) }