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
|
|
|
}
|