mirror of
https://github.com/CorentinTh/it-tools.git
synced 2025-04-24 08:46:15 -04:00
25 lines
696 B
TypeScript
25 lines
696 B
TypeScript
![]() |
import _ from 'lodash';
|
||
|
|
||
|
export function isValidObjectId(objectId?: string): boolean {
|
||
|
return !_.isNil(objectId) && /^[0-9a-fA-F]{24}$/.test(objectId);
|
||
|
}
|
||
|
|
||
|
export function objectIdToDate(objectId: string): Date {
|
||
|
return new Date(Number.parseInt(objectId.substring(0, 8), 16) * 1000);
|
||
|
}
|
||
|
|
||
|
export function objectIdFromDate(milliseconds: number, onlyDate: boolean = false): string {
|
||
|
const suffixReplacer = () => {
|
||
|
if (onlyDate) {
|
||
|
return '0';
|
||
|
}
|
||
|
|
||
|
return (Math.random() * 16 | 0).toString(16);
|
||
|
};
|
||
|
|
||
|
const timestamp = (milliseconds / 1000 | 0).toString(16);
|
||
|
const suffix = 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, suffixReplacer).toLowerCase();
|
||
|
|
||
|
return `${timestamp}${suffix}`;
|
||
|
}
|