1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
var nomnom = require("../nomnom");
var parser = nomnom()
.option("addr", {
abbr: "a",
help: "host:port address",
transform: function(value) {
var parts = value.split(":");
return {host: parts[0], port: Number(parts[1])};
}
})
.option("string", {
abbr: "s",
help: "always a string",
transform: function(value) {
return value.toString();
}
});
exports.testTransformComplexValue = function(test) {
var opts = parser.parse(["-a", "localhost:1234"]);
test.strictEqual(opts.addr.host, "localhost");
test.strictEqual(opts.addr.port, 1234);
test.done();
};
exports.testTransformString = function(test) {
var opts = parser.parse(["-s", "3"]);
test.strictEqual(opts.string, "3");
test.done();
};
exports.testTransformCommand = function(test) {
test.expect(1);
var parser = nomnom().scriptName("test")
.options({
addr: {
transform: function(value) {
var parts = value.split(":");
return {host: parts[0], port: Number(parts[1])};
}
}
});
parser.command("run")
.options({
string: {
transform: function(value) {
return value.toString();
}
}
})
.callback(function(options) {
test.strictEqual(options.string, "true");
});
parser.parse(["run", "--string=true"]);
test.done();
};
|