UNPKG

@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
"use strict"; 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