diff options
author | Tyler Schicke <tschicke@gmail.com> | 2020-01-09 21:33:18 -0800 |
---|---|---|
committer | Tyler Schicke <tschicke@gmail.com> | 2020-01-09 21:33:18 -0800 |
commit | 2295ab2500487da6b030d871b8d81724a4ddada3 (patch) | |
tree | cc4bff122cd18066521affb382c0e93cde9b33ce /src/server/repl.ts | |
parent | 786d25a4f8db1db8795f04a17fba392636e5f891 (diff) | |
parent | a8aa0facfaa23298398c15aa906bc6d69c538564 (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.ts | 13 |
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; } } |