zappyzep/backend/src/utils/snowflakeToTimestamp.ts

14 lines
424 B
TypeScript
Raw Normal View History

2020-08-09 17:28:21 +03:00
import { isValidSnowflake } from "../utils";
2020-08-05 18:52:15 +03:00
/**
* @return Unix timestamp in milliseconds
*/
export function snowflakeToTimestamp(snowflake: string) {
2020-08-09 17:28:21 +03:00
if (!isValidSnowflake(snowflake)) {
throw new Error(`Invalid snowflake: ${snowflake}`);
}
2020-08-05 18:52:15 +03:00
// https://discord.com/developers/docs/reference#snowflakes-snowflake-id-format-structure-left-to-right
2020-08-09 17:28:21 +03:00
return Number(BigInt(snowflake) >> 22n) + 1_420_070_400_000;
2020-08-05 18:52:15 +03:00
}