summaryrefslogtreecommitdiff
path: root/src/misc/gen-id.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/misc/gen-id.ts')
-rw-r--r--src/misc/gen-id.ts19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/misc/gen-id.ts b/src/misc/gen-id.ts
new file mode 100644
index 0000000000..99cb70b3fb
--- /dev/null
+++ b/src/misc/gen-id.ts
@@ -0,0 +1,19 @@
+import { ulid } from 'ulid';
+import { genAid } from './id/aid';
+import { genMeid } from './id/meid';
+import { genObjectId } from './id/object-id';
+import config from '../config';
+
+const metohd = config.id.toLowerCase();
+
+export function genId(date?: Date): string {
+ if (!date || (date > new Date())) date = new Date();
+
+ switch (metohd) {
+ case 'aid': return genAid(date);
+ case 'meid': return genMeid(date);
+ case 'ulid': return ulid(date.getTime());
+ case 'objectid': return genObjectId(date);
+ default: throw new Error('unknown id generation method');
+ }
+}