Browse Source

added new command called runAllEnabled (#10215)

* added new command called runAllCommands

* addressed comments in PR

* update to add missing closing bracket

* Update index.ts

updated to remove return

* Update packages/apputils-extension/src/index.ts

Co-authored-by: Michał Krassowski <5832902+krassowski@users.noreply.github.com>

* Update packages/apputils-extension/src/index.ts

Co-authored-by: Michał Krassowski <5832902+krassowski@users.noreply.github.com>

* formatted with jlpm run lint

Co-authored-by: Sarah Pak <spak@spotify.com>
Co-authored-by: Steven Silvester <ssilvester@apple.com>
Co-authored-by: Michał Krassowski <5832902+krassowski@users.noreply.github.com>
Sarah Pak 3 years ago
parent
commit
36713c57e2
1 changed files with 23 additions and 0 deletions
  1. 23 0
      packages/apputils-extension/src/index.ts

+ 23 - 0
packages/apputils-extension/src/index.ts

@@ -58,6 +58,8 @@ namespace CommandIDs {
 
   export const runFirstEnabled = 'apputils:run-first-enabled';
 
+  export const runAllEnabled = 'apputils:run-all-enabled';
+
   export const toggleHeader = 'apputils:toggle-header';
 }
 
@@ -568,6 +570,27 @@ const utilityCommands: JupyterFrontEndPlugin<void> = {
         }
       }
     });
+
+    commands.addCommand(CommandIDs.runAllEnabled, {
+      label: trans.__('Run All Enabled Commands Passed as Args'),
+      execute: args => {
+        const commands: string[] = args.commands as string[];
+        const commandArgs: any = args.args;
+        const argList = Array.isArray(args);
+        const errorIfNotEnabled: boolean = args.errorIfNotEnabled as boolean;
+        for (let i = 0; i < commands.length; i++) {
+          const cmd = commands[i];
+          const arg = argList ? commandArgs[i] : commandArgs;
+          if (app.commands.isEnabled(cmd, arg)) {
+            app.commands.execute(cmd, arg);
+          } else {
+            if (errorIfNotEnabled) {
+              console.error(`${cmd} is not enabled.`);
+            }
+          }
+        }
+      }
+    });
   }
 };