@mocking-bird/mongoose
Version:
Generates fixtures for `mongoose`. Simply provide the schema or model, and it will generate mock data based on the types and constraints of the schema.
66 lines • 1.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MongooseTypeMapper = void 0;
const core_1 = require("@mocking-bird/core");
class MongooseTypeMapper extends core_1.CoreTypeMapper {
getType(type) {
const mongooseType = type.toLowerCase();
this.validateType(mongooseType);
switch (mongooseType) {
case 'objectid':
return core_1.FieldType.MONGO_DB_ID;
case 'string':
return core_1.FieldType.STRING;
case 'number':
return core_1.FieldType.NUMBER;
case 'boolean':
return core_1.FieldType.BOOLEAN;
case 'date':
return core_1.FieldType.DATE;
case 'buffer':
return core_1.FieldType.BUFFER;
case 'array':
return core_1.FieldType.ARRAY;
case 'decimal128':
return core_1.FieldType.FLOAT;
case 'uuid':
return core_1.FieldType.UUID;
case 'bigint':
return core_1.FieldType.BIGINT;
case 'map':
case 'mixed':
case 'schema':
return core_1.FieldType.OBJECT;
default:
throw new Error(`Unsupported type: ${type}`);
}
}
getArrayType(type) {
if (type === 'Array') {
throw new Error('Unsupported type: Array');
}
return this.getType(type);
}
validateType(type) {
if (!MongooseTypeMapper.SUPPORTED_TYPES.includes(type)) {
throw new Error(`Unsupported type: ${type}`);
}
}
}
exports.MongooseTypeMapper = MongooseTypeMapper;
MongooseTypeMapper.SUPPORTED_TYPES = [
'string',
'number',
'date',
'buffer',
'boolean',
'mixed',
'objectid',
'array',
'decimal128',
'map',
'schema',
'uuid',
'bigint',
];
//# sourceMappingURL=mongoose-type-mapper.js.map