FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Don't oblige before/after functions to take a callback · AthosLui/node-java@f8b74c9 · GitHub

Commit f8b74c9

Browse files
committed
Don't oblige before/after functions to take a callback
With this change, we can skip the callback noise for cases that don't need it, for example: `java.registerClient(function() { do.some.thing(); });`
1 parent a99a4a9 commit f8b74c9

3 files changed

Lines changed: 45 additions & 5 deletions

File tree

‎lib/nodeJavaBridge.js‎

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,19 @@ var clients = [];
5050
// If the client doesn't need to be called back for either function, it can pass null or undefined.
5151
// Both before and after here are assumed to be functions that accept one argument that is a node-callback function.
5252
java.registerClient = function(before, after) {
53+
var before_, after_;
5354
if (java.isJvmCreated()) {
5455
throw new Error('java.registerClient() called after JVM already created.');
5556
}
56-
clients.push({before: before, after: after});
57+
before_ = (before && before.length === 0) ?
58+
function(cb) { before(); cb(); } :
59+
before;
60+
61+
after_ = (after && after.length === 0) ?
62+
function(cb) { after(); cb(); } :
63+
after;
64+
65+
clients.push({before: before_, after: after_});
5766
}
5867

5968
// A client can register function hooks to be called before and after the JVM is created.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// testClientBeforeSyncThrows.js
2+
3+
var _ = require('lodash');
4+
var java = require("../");
5+
var nodeunit = require("nodeunit");
6+
7+
module.exports = {
8+
9+
clientBeforeSyncThrows: function(test) {
10+
test.expect(6);
11+
test.ok(!java.isJvmCreated());
12+
13+
java.asyncOptions = {
14+
syncSuffix: "Sync",
15+
};
16+
17+
function before() {
18+
test.ok(!java.isJvmCreated());
19+
throw new Error('dummy error');
20+
}
21+
22+
java.registerClient(before);
23+
24+
java.ensureJvm(function(err) {
25+
test.ok(_.isObject(err));
26+
test.ok(err instanceof Error);
27+
test.strictEqual(err.message, 'dummy error');
28+
test.ok(!java.isJvmCreated());
29+
test.done();
30+
});
31+
}
32+
33+
}

‎testAsyncOptions/testDefacto.js‎

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,12 @@ module.exports = {
1919
asyncSuffix: ""
2020
};
2121

22-
function before(callback) {
22+
function before() {
2323
test.ok(!java.isJvmCreated());
24-
callback();
2524
}
2625

27-
function after(callback) {
26+
function after() {
2827
test.ok(java.isJvmCreated());
29-
callback();
3028
}
3129

3230
java.registerClient(before, after);

0 commit comments

Comments
 (0)

Back | FazBrowse Home | New Git URL