fix(server): IdService.parseを全てのidタイプに対応させるように (#10533)
* wip fix-id
* ✌️
* fix import
This commit is contained in:
parent
7a33c5d2ee
commit
d76220cc80
7 changed files with 92 additions and 7 deletions
14
packages/backend/src/misc/id/ulid.ts
Normal file
14
packages/backend/src/misc/id/ulid.ts
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
// Crockford's Base32
|
||||
// https://github.com/ulid/spec#encoding
|
||||
const CHARS = '0123456789ABCDEFGHJKMNPQRSTVWXYZ';
|
||||
|
||||
export const ulidRegExp = /^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$/;
|
||||
|
||||
export function parseUlid(id: string): { date: Date; } {
|
||||
const timestamp = id.slice(0, 10);
|
||||
let time = 0;
|
||||
for (let i = 0; i < 10; i++) {
|
||||
time = time * 32 + CHARS.indexOf(timestamp[i]);
|
||||
}
|
||||
return { date: new Date(time) };
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue