NestJS 11 + Fastify 统一错误体与 trace_id,/health 真实探活 DB/Redis,OpenAPI 3.1 契约含 20 个错误码;shared 包提供错误码、权限点、ULID、分页与通用 schema;worker 完成队列进程骨架。
24 lines
759 B
TypeScript
24 lines
759 B
TypeScript
/** 时间工具:统一 ISO 8601(UTC)字符串,跨端序列化口径一致 */
|
|
|
|
export function nowIso(): string {
|
|
return new Date().toISOString();
|
|
}
|
|
|
|
export function toIsoString(value: Date | number | string): string {
|
|
const date = value instanceof Date ? value : new Date(value);
|
|
if (Number.isNaN(date.getTime())) {
|
|
throw new TypeError(`无法解析时间:${String(value)}`);
|
|
}
|
|
return date.toISOString();
|
|
}
|
|
|
|
export function addSeconds(date: Date, seconds: number): Date {
|
|
return new Date(date.getTime() + seconds * 1000);
|
|
}
|
|
|
|
const ISO_PATTERN = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/;
|
|
|
|
export function isIsoDateString(value: string): boolean {
|
|
return ISO_PATTERN.test(value) && !Number.isNaN(Date.parse(value));
|
|
}
|