Skip to content

Commit 65391a5

Browse files
Copilotfvdm
andcommitted
Fix ESLint errors, package.json, and preinstall script
Co-authored-by: fvdm <[email protected]>
1 parent d804bd0 commit 65391a5

File tree

4 files changed

+130
-124
lines changed

4 files changed

+130
-124
lines changed

package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,15 @@
1616
},
1717
"main": "vnstat-dumpdb.js",
1818
"files": [
19+
"vnstat-dumpdb.js",
1920
"preinstall.js"
2021
],
2122
"dependencies": {},
2223
"devDependencies": {
23-
"dotest": "^2"
24+
"@eslint/js": "^9",
25+
"dotest": "^2.14.2",
26+
"eslint": "^9",
27+
"globals": "^15"
2428
},
2529
"engines": {
2630
"node": ">=18"

preinstall.js

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
1-
var exec = require ('child_process') .exec;
1+
var exec = require( 'child_process' ) .exec;
22

33
var bin = process.env.NODE_APP_BIN || 'vnstat';
44

5-
exec (bin + ' --version', function (err, res) {
6-
if (err) {
7-
throw err;
5+
exec( bin + ' --version', function ( err, res ) {
6+
if ( err ) {
7+
console.warn( 'Warning: vnstat not found. This package requires vnStat >= v1.13 to be installed.' );
8+
console.warn( 'Install vnStat from: https://github.com/vergoh/vnstat' );
9+
return;
810
}
911

10-
res.replace (/^vnStat (\d+)\.(\d+) /, function (s, major, minor) {
11-
if (major >= 1 && minor >= 13) {
12+
res.replace( /^vnStat (\d+)\.(\d+) /, function ( s, major, minor ) {
13+
if ( major >= 1 && minor >= 13 ) {
1214
return;
1315
}
1416

15-
console.log ('Wrong vnStat version: requires >= v1.13, but v' + major + '.' + minor + ' installed');
16-
console.log ('Command run: ' + bin);
17-
process.exit (1);
18-
});
19-
});
17+
console.warn( 'Warning: Wrong vnStat version: requires >= v1.13, but v' + major + '.' + minor + ' installed' );
18+
console.warn( 'Command run: ' + bin );
19+
} );
20+
} );

test.js

Lines changed: 76 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,102 +1,102 @@
1-
var dotest = require ('dotest');
2-
var app = require ('./');
1+
var dotest = require( 'dotest' );
2+
var app = require( './' );
33

44
// Setup
55
// $ NODE_APP_IFACE=eth0 npm test
66
var config = {
7-
bin: process.env.NODE_APP_BIN || null
7+
bin: process.env.NODE_APP_BIN || null,
88
};
99

1010
var iface = process.env.NODE_APP_IFACE || 'eth0';
1111

12-
var vnstat = app (config);
12+
var vnstat = app( config );
1313

1414

15-
dotest.add ('Module', function (test) {
16-
test ()
17-
.isFunction ('fail', 'exports', app)
18-
.isObject ('fail', 'interface', vnstat)
19-
.isFunction ('fail', '.getConfig', vnstat && vnstat.getConfig)
20-
.isFunction ('fail', '.getStats', vnstat && vnstat.getStats)
21-
.done ();
22-
});
15+
dotest.add( 'Module', function ( test ) {
16+
test()
17+
.isFunction( 'fail', 'exports', app )
18+
.isObject( 'fail', 'interface', vnstat )
19+
.isFunction( 'fail', '.getConfig', vnstat && vnstat.getConfig )
20+
.isFunction( 'fail', '.getStats', vnstat && vnstat.getStats )
21+
.done();
22+
} );
2323

2424

25-
dotest.add ('Method .getConfig', function (test) {
26-
vnstat.getConfig (function (err, data) {
27-
test (err)
28-
.isObject ('fail', 'data', data)
29-
.isNotEmpty ('fail', 'data.DatabaseDir', data && data.DatabaseDir)
30-
.isNotEmpty ('fail', 'data.Interface', data && data.Interface)
31-
.done ();
32-
});
33-
});
25+
dotest.add( 'Method .getConfig', function ( test ) {
26+
vnstat.getConfig( function ( err, data ) {
27+
test( err )
28+
.isObject( 'fail', 'data', data )
29+
.isNotEmpty( 'fail', 'data.DatabaseDir', data && data.DatabaseDir )
30+
.isNotEmpty( 'fail', 'data.Interface', data && data.Interface )
31+
.done();
32+
} );
33+
} );
3434

3535

36-
dotest.add ('Method .getStats - iface', function (test) {
37-
vnstat.getStats (iface, function (err, data) {
36+
dotest.add( 'Method .getStats - iface', function ( test ) {
37+
vnstat.getStats( iface, function ( err, data ) {
3838
var days = data && data.traffic && data.traffic.days;
3939
var rx = days && days [0] && days [0] .rx;
4040

41-
test (err)
42-
.isObject ('fail', 'data', data)
43-
.isString ('fail', 'data.id', data && data.id)
44-
.isObject ('fail', 'data.traffic', data && data.traffic)
45-
.isArray ('fail', 'data.traffic.days', days)
46-
.isObject ('fail', 'data.traffic.days[0]', days && days [0])
47-
.isNumber ('fail', 'data.traffic.days[0].rx', rx)
48-
.done ();
49-
});
50-
});
51-
52-
53-
dotest.add ('Method .getStats - all', function (test) {
54-
vnstat.getStats (function (err, data) {
55-
test (err)
56-
.isArray ('fail', 'data', data)
57-
.done ();
58-
});
59-
});
60-
61-
62-
dotest.add ('Error: invalid interface', function (test) {
63-
vnstat.getStats ('unreal-iface', function (err, data) {
64-
test ()
65-
.isError ('fail', 'err', err)
66-
.isExactly ('fail', 'err.message', err && err.message, 'invalid interface')
67-
.isUndefined ('fail', 'data', data)
68-
.done ();
69-
});
70-
});
71-
72-
73-
dotest.add ('Error: no config', function (test) {
41+
test( err )
42+
.isObject( 'fail', 'data', data )
43+
.isString( 'fail', 'data.id', data && data.id )
44+
.isObject( 'fail', 'data.traffic', data && data.traffic )
45+
.isArray( 'fail', 'data.traffic.days', days )
46+
.isObject( 'fail', 'data.traffic.days[0]', days && days [0] )
47+
.isNumber( 'fail', 'data.traffic.days[0].rx', rx )
48+
.done();
49+
} );
50+
} );
51+
52+
53+
dotest.add( 'Method .getStats - all', function ( test ) {
54+
vnstat.getStats( function ( err, data ) {
55+
test( err )
56+
.isArray( 'fail', 'data', data )
57+
.done();
58+
} );
59+
} );
60+
61+
62+
dotest.add( 'Error: invalid interface', function ( test ) {
63+
vnstat.getStats( 'unreal-iface', function ( err, data ) {
64+
test()
65+
.isError( 'fail', 'err', err )
66+
.isExactly( 'fail', 'err.message', err && err.message, 'invalid interface' )
67+
.isUndefined( 'fail', 'data', data )
68+
.done();
69+
} );
70+
} );
71+
72+
73+
dotest.add( 'Error: no config', function ( test ) {
7474
config.bin = '-';
75-
vnstat = app (config);
75+
vnstat = app( config );
7676

77-
vnstat.getConfig (function (err, data) {
78-
test ()
79-
.isError ('fail', 'err', err)
80-
.isExactly ('fail', 'err.message', err && err.message, 'no config')
81-
.isUndefined ('fail', 'data', data)
82-
.done ();
83-
});
84-
});
77+
vnstat.getConfig( function ( err, data ) {
78+
test()
79+
.isError( 'fail', 'err', err )
80+
.isExactly( 'fail', 'err.message', err && err.message, 'no config' )
81+
.isUndefined( 'fail', 'data', data )
82+
.done();
83+
} );
84+
} );
8585

8686

87-
dotest.add ('Error: command failed', function (test) {
87+
dotest.add( 'Error: command failed', function ( test ) {
8888
config.bin = '-';
89-
vnstat = app (config);
89+
vnstat = app( config );
9090

91-
vnstat.getStats (function (err, data) {
92-
test ()
93-
.isError ('fail', 'err', err)
94-
.isExactly ('fail', 'err.message', err && err.message, 'command failed')
95-
.isUndefined ('fail', 'data', data)
96-
.done ();
97-
});
98-
});
91+
vnstat.getStats( function ( err, data ) {
92+
test()
93+
.isError( 'fail', 'err', err )
94+
.isExactly( 'fail', 'err.message', err && err.message, 'command failed' )
95+
.isUndefined( 'fail', 'data', data )
96+
.done();
97+
} );
98+
} );
9999

100100

101101
// Start the tests
102-
dotest.run ();
102+
dotest.run();

vnstat-dumpdb.js

Lines changed: 37 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ Feedback: https://github.com/fvdm/nodejs-vnstat-dumpdb/issues
77
License: Unlicense (see LICENSE file)
88
*/
99

10-
var exec = require ('child_process') .exec;
10+
var exec = require( 'child_process' ) .exec;
1111

1212
var set = {
1313
bin: 'vnstat',
1414
iface: null,
15-
config: {}
15+
config: {},
1616
};
1717

1818

@@ -27,12 +27,12 @@ var set = {
2727
* @returns {void}
2828
*/
2929

30-
function doError (message, err, details, callback) {
31-
var error = new Error (message);
30+
function doError ( message, err, details, callback ) {
31+
var error = new Error( message );
3232

3333
error.error = err;
3434
error.details = details;
35-
callback (error);
35+
callback( error );
3636
}
3737

3838

@@ -44,31 +44,31 @@ function doError (message, err, details, callback) {
4444
* @returns {void}
4545
*/
4646

47-
function getConfig (callback) {
48-
exec (set.bin + ' --showconfig', function (err, text) {
47+
function getConfig ( callback ) {
48+
exec( set.bin + ' --showconfig', function ( err, text ) {
4949
var config = {};
5050
var line;
5151
var i;
5252

53-
if (err) {
54-
doError ('no config', err, text, callback);
53+
if ( err ) {
54+
doError( 'no config', err, text, callback );
5555
return;
5656
}
5757

58-
text = text.split ('\n');
58+
text = text.split( '\n' );
5959

60-
for (i = 0; i < text.length; i++) {
61-
line = text [i] .trim ();
60+
for ( i = 0; i < text.length; i++ ) {
61+
line = text [i] .trim();
6262

63-
if (line.substr (0, 1) !== '#') {
64-
line.replace (/(\w+)\s+(.+)/, function (s, key, val) {
65-
config [key] = val.slice (0, 1) === '"' ? val.slice (1, -1) : val;
66-
});
63+
if ( line.substr( 0, 1 ) !== '#' ) {
64+
line.replace( /(\w+)\s+(.+)/, function ( s, key, val ) {
65+
config [key] = val.slice( 0, 1 ) === '"' ? val.slice( 1, -1 ) : val;
66+
} );
6767
}
6868
}
6969

70-
callback (null, config);
71-
});
70+
callback( null, config );
71+
} );
7272
}
7373

7474

@@ -81,42 +81,43 @@ function getConfig (callback) {
8181
* @returns {void}
8282
*/
8383

84-
function getStats (iface, callback) {
84+
function getStats ( iface, callback ) {
8585
var i;
8686

87-
if (typeof iface === 'function') {
87+
if ( typeof iface === 'function' ) {
8888
callback = iface;
8989
iface = set.iface;
9090
}
9191

92-
exec (set.bin + ' --json', function (err, json, stderr) {
93-
if (err) {
92+
exec( set.bin + ' --json', function ( err, json, stderr ) {
93+
if ( err ) {
9494
err.stderr = stderr;
95-
doError ('command failed', err, json, callback);
95+
doError( 'command failed', err, json, callback );
9696
return;
9797
}
9898

9999
try {
100-
json = JSON.parse (json);
101-
} catch (e) {
102-
doError ('invalid data', e, json, callback);
100+
json = JSON.parse( json );
101+
}
102+
catch ( e ) {
103+
doError( 'invalid data', e, json, callback );
103104
return;
104105
}
105106

106-
if (iface) {
107-
for (i = 0; i < json.interfaces.length; i++) {
108-
if (json.interfaces [i] .id === iface) {
109-
callback (null, json.interfaces [i]);
107+
if ( iface ) {
108+
for ( i = 0; i < json.interfaces.length; i++ ) {
109+
if ( json.interfaces [i] .id === iface ) {
110+
callback( null, json.interfaces [i] );
110111
return;
111112
}
112113
}
113114

114-
doError ('invalid interface', { iface }, json, callback);
115+
doError( 'invalid interface', { iface }, json, callback );
115116
return;
116117
}
117118

118-
callback (null, json.interfaces);
119-
});
119+
callback( null, json.interfaces );
120+
} );
120121
}
121122

122123

@@ -129,15 +130,15 @@ function getStats (iface, callback) {
129130
* @returns {object} - Module interface methods
130131
*/
131132

132-
module.exports = function (setup) {
133-
if (setup instanceof Object) {
133+
module.exports = function ( setup ) {
134+
if ( setup instanceof Object ) {
134135
set.bin = setup.bin || set.bin;
135136
set.iface = setup.iface || set.iface;
136137
}
137138

138139
return {
139140
getStats: getStats,
140141
getConfig: getConfig,
141-
set: set
142+
set: set,
142143
};
143144
};

0 commit comments

Comments
 (0)