| 123456789101112131415161718192021222324252627282930313233343536373839 | 'use strict';/*! * ignore */const MongooseMap = require('../types/map');const SchemaType = require('../schematype');/*! * ignore */class Map extends SchemaType {  constructor(key, options) {    super(key, options, 'Map');    this.$isSchemaMap = true;  }  cast(val, doc, init) {    if (val instanceof MongooseMap) {      return val;    }    if (init) {      const map = new MongooseMap({}, this.path, doc, this.$__schemaType);      for (const key of Object.keys(val)) {        map.$init(key, this.$__schemaType.cast(val[key], doc, true));      }      return map;    }    return new MongooseMap(val, this.path, doc, this.$__schemaType);  }}module.exports = Map;
 |