summaryrefslogtreecommitdiff
path: root/src/misc/id/object-id.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/misc/id/object-id.ts')
-rw-r--r--src/misc/id/object-id.ts26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/misc/id/object-id.ts b/src/misc/id/object-id.ts
new file mode 100644
index 0000000000..392ea43301
--- /dev/null
+++ b/src/misc/id/object-id.ts
@@ -0,0 +1,26 @@
+const CHARS = '0123456789abcdef';
+
+function getTime(time: number) {
+ if (time < 0) time = 0;
+ if (time === 0) {
+ return CHARS[0];
+ }
+
+ time = Math.floor(time / 1000);
+
+ return time.toString(16).padStart(8, CHARS[0]);
+}
+
+function getRandom() {
+ let str = '';
+
+ for (let i = 0; i < 16; i++) {
+ str += CHARS[Math.floor(Math.random() * CHARS.length)];
+ }
+
+ return str;
+}
+
+export function genObjectId(date: Date): string {
+ return getTime(date.getTime()) + getRandom();
+}