diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2023-10-16 10:45:22 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2023-10-16 10:45:22 +0900 |
| commit | 1fa1d316969de15d6aaef1dbf0a0b95aec30e377 (patch) | |
| tree | bacefb9f8dbc2cc18d8c775cdd0572263b4e11ef /packages/backend/src/core/IdService.ts | |
| parent | Update CHANGELOG.md (diff) | |
| download | sharkey-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.ts | 20 |
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'); } } |