UNPKG

1.05 kBJavaScriptView Raw
1var _, async, settings;
2
3_ = require('lodash');
4
5async = require('async');
6
7settings = require('./settings');
8
9exports.commands = [];
10
11exports.globalOptions = [];
12
13exports.permissions = {};
14
15exports.findCommandBySignature = function(signature) {
16 return _.find(exports.commands, function(command) {
17 return command.signature.toString() === signature;
18 });
19};
20
21exports.getMatchCommand = function(signature, callback) {
22 var commands;
23 commands = _.reject(exports.commands, function(command) {
24 return command.isWildcard();
25 });
26 return async.eachSeries(commands, function(command, done) {
27 return command.signature.matches(signature, function(result) {
28 if (!result) {
29 return done();
30 }
31 return callback(null, command);
32 });
33 }, function(error) {
34 var result, wildcardSignature;
35 if (error != null) {
36 return callback(error);
37 }
38 wildcardSignature = settings.signatures.wildcard;
39 result = exports.findCommandBySignature(wildcardSignature);
40 return callback(null, result);
41 });
42};