@thisisagile/easy-mongo
Version:
Add support for MongoDB
17 lines (15 loc) • 556 B
text/typescript
import { choose, DateTime, isArray, isDate, isDateTime, isIsoDateString, isObject, Json, meta } from '@thisisagile/easy';
export const toMongoType = (input: unknown): Json =>
choose(input)
.type(isIsoDateString, i => new DateTime(i).toDate() as any)
.type(isDateTime, i => i.toDate() as any)
.type(isArray, a => a.map((i: any) => toMongoType(i)))
.type(isDate, d => d)
.type(isObject, o =>
Object.fromEntries(
meta(o)
.entries()
.map(([k, i]) => [k, toMongoType(i)])
)
)
.else(input);