Socket
Socket
Sign inDemoInstall

ledger-rest

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ledger-rest - npm Package Compare versions

Comparing version 0.0.8 to 0.1.0

83

Gruntfile.js
/*global module:false*/
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
// Metadata.
pkg: grunt.file.readJSON('package.json'),

@@ -13,22 +10,3 @@ banner: '/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - ' +

' Licensed <%= _.pluck(pkg.licenses, "type").join(", ") %> */\n',
// Task configuration.
concat: {
options: {
banner: '<%= banner %>',
stripBanners: true
},
dist: {
src: ['lib/<%= pkg.name %>.js'],
dest: 'dist/<%= pkg.name %>.js'
}
},
uglify: {
options: {
banner: '<%= banner %>'
},
dist: {
src: '<%= concat.dist.dest %>',
dest: 'dist/<%= pkg.name %>.min.js'
}
},
jshint: {

@@ -47,3 +25,5 @@ options: {

eqnull: true,
globals: {}
globals: {
jQuery: true
}
},

@@ -53,10 +33,34 @@ gruntfile: {

},
lib_test: {
src: ['lib/**/*.js', 'spec/**/*.js']
lib: {
options: {
globals: {
require: true,
module: true,
console: true
}
},
src: ['lib/**/*.js']
},
spec: {
options: {
globals: {
require: true,
describe: true,
beforeEach: true,
afterEach: true,
it: true,
expect: true
}
},
src: ['spec/**/*.js']
}
},
jasmine : {
src : 'lib/**/*.js',
specs : 'spec/**/*.js'
'mochaTest': {
src: ['spec/**/*.spec.js'],
options: {
reporter: 'spec'
}
},
watch: {

@@ -67,5 +71,9 @@ gruntfile: {

},
lib_test: {
files: '<%= jshint.lib_test.src %>',
tasks: ['jshint:lib_test', 'nodeunit']
lib: {
files: '<%= jshint.lib.src %>',
tasks: ['jshint:lib']
},
spec: {
files: '<%= jshint.spec.src %>',
tasks: ['jshint:spec', 'spec']
}

@@ -77,7 +85,8 @@ }

grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-jasmine-runner');
grunt.loadNpmTasks('grunt-mocha-test');
grunt.registerTask('spec', ['mochaTest']);
// Default task.
grunt.registerTask('default', ['jshint']);
};
grunt.registerTask('default', ['jshint', 'spec']);
};

@@ -1,27 +0,24 @@

/*global exports, require */
(function () {
var JSONStream = require('JSONStream');
var JSONStream = require('JSONStream');
var Balance = (function() {
function Balance(ledger) {
this.ledger = ledger;
}
var Balance = (function() {
function Balance(ledger) {
this.ledger = ledger;
}
Balance.prototype.handle = function(req, res, next) {
res.setHeader('content-type', 'application/json');
Balance.prototype.handle = function(req, res, next) {
res.setHeader('content-type', 'application/json');
this.ledger.balance()
.pipe(JSONStream.stringify())
.pipe(res)
.once('error', function (err) {
res.statusCode = 500;
res.end(String(err));
})
.once('end', next);
};
this.ledger.balance()
.pipe(JSONStream.stringify())
.pipe(res)
.once('error', function (err) {
res.statusCode = 500;
res.end(String(err));
})
.once('end', next);
};
return Balance;
})();
return Balance;
})();
exports.Balance = Balance;
})();
module.exports.Balance = Balance;

@@ -1,33 +0,30 @@

/*global exports, require */
(function () {
var JSONStream = require('JSONStream');
var JSONStream = require('JSONStream');
var Register = (function() {
function Register(ledger) {
this.ledger = ledger;
}
var Register = (function() {
function Register(ledger) {
this.ledger = ledger;
Register.prototype.handle = function(req, res, next) {
var options = { };
if (req.params.account) {
options.account = req.params.account;
}
Register.prototype.handle = function(req, res, next) {
var options = { };
if (req.params.account) {
options.account = req.params.account;
}
res.setHeader('content-type', 'application/json');
res.setHeader('content-type', 'application/json');
this.ledger.register(options)
.pipe(JSONStream.stringify())
.pipe(res)
.once('error', function (err) {
res.statusCode = 500;
res.end(String(err));
})
.once('end', next);
};
this.ledger.register(options)
.pipe(JSONStream.stringify())
.pipe(res)
.once('error', function (err) {
res.statusCode = 500;
res.end(String(err));
})
.once('end', next);
};
return Register;
})();
return Register;
})();
exports.Register = Register;
})();
module.exports.Register = Register;

@@ -1,24 +0,21 @@

/*global exports */
(function () {
var Version = (function() {
function Version(ledger) {
this.ledger = ledger;
}
Version.prototype.handle = function(req, res, next) {
this.ledger.version(function(err, version) {
if (err) {
return res.send(err);
}
res.send({ version: version });
return next();
});
};
var Version = (function() {
function Version(ledger) {
this.ledger = ledger;
}
Version.prototype.handle = function(req, res, next) {
this.ledger.version(function(err, version) {
if (err) {
return res.send(err);
}
res.send({ version: version });
return next();
});
};
return Version;
})();
return Version;
})();
exports.Version = Version;
})();
module.exports.Version = Version;

@@ -1,78 +0,75 @@

/*global exports, require, console */
(function () {
var _ = require('lodash'),
restify = require('restify'),
Ledger = require('ledger-cli').Ledger,
Version = require('./handlers/version').Version,
Balance = require('./handlers/balance').Balance,
Register = require('./handlers/register').Register;
var LedgerRest = (function() {
var defaultConfig = {
name: 'ledger-rest',
debug: false
};
function LedgerRest(options) {
this.options = _.defaults({}, options, defaultConfig);
var _ = require('lodash'),
restify = require('restify'),
Ledger = require('ledger-cli').Ledger,
Version = require('./handlers/version').Version,
Balance = require('./handlers/balance').Balance,
Register = require('./handlers/register').Register;
this.ledger = new Ledger(this.options);
this.createServer(this.options);
this.configureRouting();
}
var LedgerRest = (function() {
var defaultConfig = {
name: 'ledger-rest',
debug: false
};
function LedgerRest(options) {
this.options = _.defaults({}, options, defaultConfig);
LedgerRest.prototype.createServer = function(config) {
this.server = restify.createServer({
name: config.name
});
this.server.use([
restify.acceptParser(this.server.acceptable),
restify.gzipResponse()
]);
};
this.ledger = new Ledger(this.options);
LedgerRest.prototype.listen = function(port, callback) {
this.server.listen(port, function() {
this.log('%s listening at %s', this.server.name, this.server.url);
if (callback) {
callback();
}
}.bind(this));
};
this.createServer(this.options);
this.configureRouting();
}
LedgerRest.prototype.createServer = function(config) {
this.server = restify.createServer({
name: config.name
});
LedgerRest.prototype.close = function(callback) {
this.log('%s is closing...', this.server.name);
this.server.use([
restify.acceptParser(this.server.acceptable),
restify.gzipResponse()
]);
};
LedgerRest.prototype.listen = function(port, callback) {
this.server.listen(port, function() {
this.log('%s listening at %s', this.server.name, this.server.url);
this.server.close(function() {
this.log('%s has closed', this.server.name);
if (callback) {
callback();
}
}.bind(this));
};
if (callback) {
callback();
}
}.bind(this));
};
LedgerRest.prototype.close = function(callback) {
this.log('%s is closing...', this.server.name);
LedgerRest.prototype.configureRouting = function() {
var version = new Version(this.ledger),
balance = new Balance(this.ledger),
register = new Register(this.ledger);
this.server.get('/version', version.handle.bind(version));
this.server.get('/balance', balance.handle.bind(balance));
this.server.get('/register', register.handle.bind(register));
this.server.get('/register/:account', register.handle.bind(register));
};
LedgerRest.prototype.log = function() {
if (this.options.debug) {
console.log.apply(console, arguments);
this.server.close(function() {
this.log('%s has closed', this.server.name);
if (callback) {
callback();
}
};
}.bind(this));
};
LedgerRest.prototype.configureRouting = function() {
var version = new Version(this.ledger),
balance = new Balance(this.ledger),
register = new Register(this.ledger);
return LedgerRest;
})();
this.server.get('/version', version.handle.bind(version));
this.server.get('/balance', balance.handle.bind(balance));
this.server.get('/register', register.handle.bind(register));
this.server.get('/register/:account', register.handle.bind(register));
};
LedgerRest.prototype.log = function() {
if (this.options.debug) {
console.log.apply(console, arguments);
}
};
return LedgerRest;
})();
exports.LedgerRest = LedgerRest;
})();
module.exports.LedgerRest = LedgerRest;

@@ -1,12 +0,9 @@

/*global exports */
(function () {
var setLastModifiedHeader = function(handler, date) {
return function(req, res, next) {
res.header('Last-Modified', date);
var setLastModifiedHeader = function(handler, date) {
return function(req, res, next) {
res.header('Last-Modified', date);
handler.handle(req, res, next);
};
handler.handle(req, res, next);
};
exports.setLastModifiedHeader = setLastModifiedHeader;
})();
};
module.exports.setLastModifiedHeader = setLastModifiedHeader;
{
"name": "ledger-rest",
"version": "0.0.8",
"version": "0.1.0",
"description": "REST web service API to access ledger cli data.",

@@ -30,14 +30,16 @@ "repository": {

"devDependencies": {
"chai": "~1.9.0",
"grunt": "~0.4.2",
"grunt-contrib-jshint": "~0.3.0",
"grunt-contrib-watch": "~0.3.1",
"jasmine-node": "~1.9.1",
"grunt-jasmine-runner": "~0.6.0"
"grunt-contrib-jshint": "~0.8.0",
"grunt-contrib-watch": "~0.5.3",
"grunt-mocha-test": "~0.9.0",
"mocha": "~1.17.1"
},
"dependencies": {
"JSONStream": "~0.6.4",
"ledger-cli": "0.0.8",
"restify": "~2.6.0",
"lodash": "~1.3.1"
}
"JSONStream": "~0.8.0",
"ledger-cli": "0.1.1",
"lodash": "~2.4.1",
"restify": "~2.6.1"
},
"readmeFilename": "README.md"
}

@@ -26,11 +26,14 @@ # ledger-rest

Use the `LedgerRest` class to create a RESTful server.
Use the `LedgerRest` class to create a new RESTful server and start listening on a given port.
LedgerRest = require('ledger-rest').LedgerRest;
var LedgerRest = require('ledger-rest').LedgerRest;
var server = new LedgerRest({ file: 'path/to/ledger/journal/file.dat' });
server.listen(3000);
Or use the command line runner to start a server listening on the given port and serving a single Ledger `.dat` file.
npm install ledger-rest -g
ledger-rest -p <port> -f path/to/ledger/journal/file.dat

@@ -1,2 +0,4 @@

var restify = require('restify'),
var chai = require('chai'),
expect = chai.expect,
restify = require('restify'),
LedgerRest = require('../lib/ledger-rest').LedgerRest;

@@ -32,3 +34,3 @@

startServer();
createClient();
createClient();
});

@@ -55,14 +57,14 @@

it("should return balance for two accounts", function() {
expect(balances.length).toBe(2);
it('should return balance for two accounts', function() {
expect(balances.length).to.equal(2);
});
it("should parse first balance", function() {
expect(balances[0]).toEqual({
total : {
currency : '£',
amount : 1000,
formatted : '£1,000.00'
it('should parse first balance', function() {
expect(balances[0]).to.eql({
total: {
currency : '£',
amount : 1000,
formatted : '£1,000.00'
},
account: {
account: {
fullname: 'Assets:Checking',

@@ -75,14 +77,14 @@ shortname: 'Assets:Checking',

it("should parse second balance", function() {
expect(balances[1]).toEqual({
total : {
currency : '£',
amount : -1000,
formatted : '£-1,000.00'
it('should parse second balance', function() {
expect(balances[1]).to.eql({
total: {
currency : '£',
amount : -1000,
formatted : '£-1,000.00'
},
account: {
fullname: 'Income:Salary',
account: {
fullname: 'Income:Salary',
shortname: 'Income:Salary',
depth: 2,
}
}
});

@@ -89,0 +91,0 @@ });

@@ -1,2 +0,4 @@

var restify = require('restify'),
var chai = require('chai'),
expect = chai.expect,
restify = require('restify'),
LedgerRest = require('../lib/ledger-rest').LedgerRest;

@@ -32,3 +34,3 @@

startServer();
createClient();
createClient();
});

@@ -55,6 +57,6 @@

it("should return register entries", function() {
expect(entries.length).toBe(11);
it('should return register entries', function() {
expect(entries.length).to.equal(11);
});
});
});

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