From 7a38696e151d4c0e9d56fed14a1d3caa86e25cfa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C3=ABl=20Minelli?= <michael@minelli.me>
Date: Tue, 30 May 2023 16:18:25 +0200
Subject: [PATCH] Add set of useful functions

---
 Toolbox.ts | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)
 create mode 100644 Toolbox.ts

diff --git a/Toolbox.ts b/Toolbox.ts
new file mode 100644
index 0000000..3ab7a19
--- /dev/null
+++ b/Toolbox.ts
@@ -0,0 +1,44 @@
+class Toolbox {
+    private static _instance: Toolbox;
+
+    private constructor() { }
+
+    public static get instance(): Toolbox {
+        if ( !Toolbox._instance ) {
+            Toolbox._instance = new Toolbox();
+        }
+
+        return Toolbox._instance;
+    }
+
+    public randomString(length: number) {
+        let result = '';
+        let characters = 'abcdefghjklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789';
+        let charactersLength = characters.length;
+        for ( let i = 0 ; i < length ; i++ ) {
+            result += characters.charAt(Math.floor(Math.random() * charactersLength));
+        }
+        return result;
+    }
+
+    public capitalizingFirstLetter(word: string): string {
+        return word.charAt(0).toUpperCase() + word.slice(1);
+    }
+
+    public capitalizeName(name: string) {
+        return name.trim().replace(/(?:^|\s|-)\S/g, s => s.toUpperCase());
+    }
+
+    public formatHour(hour: string): string {
+        let hourElements = hour.split(':');
+
+        return hourElements[0] + 'h' + hourElements[1];
+    }
+
+    public async sleep(ms: number) {
+        await new Promise(r => setTimeout(r, ms));
+    }
+}
+
+
+export default Toolbox.instance;
-- 
GitLab