refactor: add ScriptRunner class

Change-Id: I118adb9ec338e88b40321208b84228886bb6b590
diff --git a/src/common/architecture/scripts/ScriptRunner.ts b/src/common/architecture/scripts/ScriptRunner.ts
new file mode 100644
index 0000000..4a2ed2d
--- /dev/null
+++ b/src/common/architecture/scripts/ScriptRunner.ts
@@ -0,0 +1,20 @@
+import Script from './Script';
+
+export default class ScriptRunner {
+  private scripts: Script[] = [];
+
+  add(...scripts: Script[]) {
+    this.scripts.push(...scripts);
+  }
+
+  run() {
+    this.scripts.sort((a, b) => {
+      if (a.priority < b.priority) return -1;
+      if (a.priority > b.priority) return 1;
+      return 0;
+    });
+    for (const script of this.scripts) {
+      script.execute();
+    }
+  }
+}