使用 Joi 验证 JS 日期和 Firestore 日期

Validate both JS Date and Firestore Date with Joi

我目前正在探索 Joi 图书馆,而且 - 在这个时候 - 这是一次很棒的经历。
但是,我遇到了一个我无法解决的小问题。需要帮助或建议!

考虑以下模式(一点):

const workSchema = Joi.object({ timeline_created: Joi.date().allow(null).required()) }

当我提交 JS 日期(或 null 值)时它工作得很好。
但是,我正在使用 Firestore 将 JS Date 转换为这种对象:

timeline_created: Timestamp { _seconds: 1637258607, _nanoseconds: 349000000 }

因此,我无法验证我的架构(这不是 Joi 知道的日期)。
然后,我的问题是:如何编写我的架构(我希望它是 strict/precise)但同时验证 JS DateFirestore Date.

谢谢

编辑:我在以下方面取得了一些进展:

timeline_created: Joi.object().keys({_seconds: Joi.number(),_nanoseconds: Joi.number()}).required()

它验证了我的 Firestore 对象。
但是,我还如何验证 timeline_creatednull 还是 JS 日期?谢谢

这是有效的:

Joi.alternatives([Joi.object().keys({ _seconds: Joi.number(), _nanoseconds: Joi.number() }), Joi.date(), null]).required()