All Challenges
2 PointsBasicMongoDB
00:00
MongoDB: Mongoose Schema Validator & Sanitizer Engine
Build a declarative schema enforcement engine with type casting, required checks, enum validation, custom async validators, and default values.
### Problem Overview
Mongoose schemas enforce structure, data integrity, and business logic before writing documents to MongoDB. You will build a mini-Mongoose Schema Validation & Sanitization Engine that parses raw input objects, applies default values, casts data types, executes validation rules, and returns structured error objects.
### Functional Requirements
1. **Schema Definition Support**:
- Supported Types: `'string'`, `'number'`, `'boolean'`, `'date'`, `'array'`.
- Constraints: `required: true`, `enum: [...]`, `min`, `max`, `minLength`, `trim: true`.
- `default: value | (() => value)`.
- `validate: (val: any) => Promise<boolean> | boolean`.
2. **`validateAndSanitize(doc: Record<string, any>): Promise<{ isValid: boolean; errors: Record<string, string>; value: Record<string, any> }>`**:
- Applies default values to missing fields.
- Performs type coercion.
- Collects all validation failures.
AI Review Rubric Dimensions (1–10 Points):
- Type coercion precision
- Default value factories
- Enum & constraint enforcement
- Async validator support
solution.tsTYPESCRIPT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
33 lines•821 characters•
AI Review Ready