aboutsummaryrefslogtreecommitdiff
path: root/src/server/repl.ts
diff options
context:
space:
mode:
authorTyler Schicke <tschicke@gmail.com>2020-01-09 21:33:18 -0800
committerTyler Schicke <tschicke@gmail.com>2020-01-09 21:33:18 -0800
commit2295ab2500487da6b030d871b8d81724a4ddada3 (patch)
treecc4bff122cd18066521affb382c0e93cde9b33ce /src/server/repl.ts
parent786d25a4f8db1db8795f04a17fba392636e5f891 (diff)
parenta8aa0facfaa23298398c15aa906bc6d69c538564 (diff)
Merge branch 'master' of github.com:browngraphicslab/Dash-Web into no_db
Diffstat (limited to 'src/server/repl.ts')
-rw-r--r--src/server/repl.ts13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/server/repl.ts b/src/server/repl.ts
index faf1eab15..ad55b6aaa 100644
--- a/src/server/repl.ts
+++ b/src/server/repl.ts
@@ -97,20 +97,25 @@ export default class Repl {
const candidates = registered.filter(({ argPatterns: { length: count } }) => count === length);
for (const { argPatterns, action } of candidates) {
const parsed: string[] = [];
- let matched = false;
+ let matched = true;
if (length) {
for (let i = 0; i < length; i++) {
let matches: RegExpExecArray | null;
if ((matches = argPatterns[i].exec(args[i])) === null) {
+ matched = false;
break;
}
parsed.push(matches[0]);
}
- matched = true;
}
if (!length || matched) {
- await action(parsed);
- this.valid(`${command} ${parsed.join(" ")}`);
+ const result = action(parsed);
+ const resolve = () => this.valid(`${command} ${parsed.join(" ")}`);
+ if (result instanceof Promise) {
+ result.then(resolve);
+ } else {
+ resolve();
+ }
return;
}
}