summaryrefslogtreecommitdiff
path: root/packages/backend/src/core/IdService.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-10-16 10:45:22 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-10-16 10:45:22 +0900
commit1fa1d316969de15d6aaef1dbf0a0b95aec30e377 (patch)
treebacefb9f8dbc2cc18d8c775cdd0572263b4e11ef /packages/backend/src/core/IdService.ts
parentUpdate CHANGELOG.md (diff)
downloadsharkey-1fa1d316969de15d6aaef1dbf0a0b95aec30e377.tar.gz
sharkey-1fa1d316969de15d6aaef1dbf0a0b95aec30e377.tar.bz2
sharkey-1fa1d316969de15d6aaef1dbf0a0b95aec30e377.zip
perf(backend): createdAtをidから取得するように & 無駄なDateインスタンスの生成を避けるように
Diffstat (limited to 'packages/backend/src/core/IdService.ts')
-rw-r--r--packages/backend/src/core/IdService.ts20
1 files changed, 12 insertions, 8 deletions
diff --git a/packages/backend/src/core/IdService.ts b/packages/backend/src/core/IdService.ts
index 06c58ad8a1..c98b8ea6fc 100644
--- a/packages/backend/src/core/IdService.ts
+++ b/packages/backend/src/core/IdService.ts
@@ -26,17 +26,21 @@ export class IdService {
this.method = config.id.toLowerCase();
}
+ /**
+ * 時間を元にIDを生成します(省略時は現在日時)
+ * @param time 日時
+ */
@bindThis
- public genId(date?: Date): string {
- if (!date || (date > new Date())) date = new Date();
+ public gen(time?: number): string {
+ const t = (!time || (time > Date.now())) ? Date.now() : time;
switch (this.method) {
- case 'aid': return genAid(date);
- case 'aidx': return genAidx(date);
- case 'meid': return genMeid(date);
- case 'meidg': return genMeidg(date);
- case 'ulid': return ulid(date.getTime());
- case 'objectid': return genObjectId(date);
+ case 'aid': return genAid(t);
+ case 'aidx': return genAidx(t);
+ case 'meid': return genMeid(t);
+ case 'meidg': return genMeidg(t);
+ case 'ulid': return ulid(t);
+ case 'objectid': return genObjectId(t);
default: throw new Error('unrecognized id generation method');
}
}