summaryrefslogtreecommitdiff
path: root/packages/backend/src/core/IdService.ts
diff options
context:
space:
mode:
authorHazelnoot <acomputerdog@gmail.com>2025-04-02 22:29:14 -0400
committerHazelnoot <acomputerdog@gmail.com>2025-04-02 22:29:14 -0400
commitdab9b518e48f04833708a1704e331fd262f575bd (patch)
treeca4dfba2efbe5d550c7d19474d4d91850cb6ccd2 /packages/backend/src/core/IdService.ts
parentfix vue warning about render functions (diff)
parent🎨 (diff)
downloadsharkey-dab9b518e48f04833708a1704e331fd262f575bd.tar.gz
sharkey-dab9b518e48f04833708a1704e331fd262f575bd.tar.bz2
sharkey-dab9b518e48f04833708a1704e331fd262f575bd.zip
merge from misskey-develop
Diffstat (limited to 'packages/backend/src/core/IdService.ts')
-rw-r--r--packages/backend/src/core/IdService.ts26
1 files changed, 20 insertions, 6 deletions
diff --git a/packages/backend/src/core/IdService.ts b/packages/backend/src/core/IdService.ts
index 10df6ef266..223a8de678 100644
--- a/packages/backend/src/core/IdService.ts
+++ b/packages/backend/src/core/IdService.ts
@@ -7,13 +7,13 @@ import { Inject, Injectable } from '@nestjs/common';
import { ulid } from 'ulid';
import { DI } from '@/di-symbols.js';
import type { Config } from '@/config.js';
-import { genAid, isSafeAidT, parseAid } from '@/misc/id/aid.js';
-import { genAidx, isSafeAidxT, parseAidx } from '@/misc/id/aidx.js';
-import { genMeid, isSafeMeidT, parseMeid } from '@/misc/id/meid.js';
-import { genMeidg, isSafeMeidgT, parseMeidg } from '@/misc/id/meidg.js';
-import { genObjectId, isSafeObjectIdT, parseObjectId } from '@/misc/id/object-id.js';
+import { genAid, isSafeAidT, parseAid, parseAidFull } from '@/misc/id/aid.js';
+import { genAidx, isSafeAidxT, parseAidx, parseAidxFull } from '@/misc/id/aidx.js';
+import { genMeid, isSafeMeidT, parseMeid, parseMeidFull } from '@/misc/id/meid.js';
+import { genMeidg, isSafeMeidgT, parseMeidg, parseMeidgFull } from '@/misc/id/meidg.js';
+import { genObjectId, isSafeObjectIdT, parseObjectId, parseObjectIdFull } from '@/misc/id/object-id.js';
import { bindThis } from '@/decorators.js';
-import { parseUlid } from '@/misc/id/ulid.js';
+import { parseUlid, parseUlidFull } from '@/misc/id/ulid.js';
@Injectable()
export class IdService {
@@ -70,4 +70,18 @@ export class IdService {
default: throw new Error('unrecognized id generation method');
}
}
+
+ // Note: additional is at most 64 bits
+ @bindThis
+ public parseFull(id: string): { date: number; additional: bigint; } {
+ switch (this.method) {
+ case 'aid': return parseAidFull(id);
+ case 'aidx': return parseAidxFull(id);
+ case 'objectid': return parseObjectIdFull(id);
+ case 'meid': return parseMeidFull(id);
+ case 'meidg': return parseMeidgFull(id);
+ case 'ulid': return parseUlidFull(id);
+ default: throw new Error('unrecognized id generation method');
+ }
+ }
}