summaryrefslogtreecommitdiff
path: root/packages/backend/src/misc/gen-id.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/backend/src/misc/gen-id.ts')
-rw-r--r--packages/backend/src/misc/gen-id.ts21
1 files changed, 21 insertions, 0 deletions
diff --git a/packages/backend/src/misc/gen-id.ts b/packages/backend/src/misc/gen-id.ts
new file mode 100644
index 0000000000..b1b542dc4b
--- /dev/null
+++ b/packages/backend/src/misc/gen-id.ts
@@ -0,0 +1,21 @@
+import { ulid } from 'ulid';
+import { genAid } from './id/aid';
+import { genMeid } from './id/meid';
+import { genMeidg } from './id/meidg';
+import { genObjectId } from './id/object-id';
+import config from '@/config/index';
+
+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 'meidg': return genMeidg(date);
+ case 'ulid': return ulid(date.getTime());
+ case 'objectid': return genObjectId(date);
+ default: throw new Error('unrecognized id generation method');
+ }
+}