You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					159 lines
				
				3.1 KiB
			
		
		
			
		
	
	
					159 lines
				
				3.1 KiB
			| 
											3 years ago
										 | /* eslint-env browser */ | ||
|  | 
 | ||
|  | 'use strict'; | ||
|  | 
 | ||
|  | require('./driver').set(require('./drivers/browser')); | ||
|  | 
 | ||
|  | const DocumentProvider = require('./document_provider.js'); | ||
|  | const PromiseProvider = require('./promise_provider'); | ||
|  | 
 | ||
|  | DocumentProvider.setBrowser(true); | ||
|  | 
 | ||
|  | /** | ||
|  |  * The Mongoose [Promise](#promise_Promise) constructor. | ||
|  |  * | ||
|  |  * @method Promise | ||
|  |  * @api public | ||
|  |  */ | ||
|  | 
 | ||
|  | Object.defineProperty(exports, 'Promise', { | ||
|  |   get: function() { | ||
|  |     return PromiseProvider.get(); | ||
|  |   }, | ||
|  |   set: function(lib) { | ||
|  |     PromiseProvider.set(lib); | ||
|  |   } | ||
|  | }); | ||
|  | 
 | ||
|  | /** | ||
|  |  * Storage layer for mongoose promises | ||
|  |  * | ||
|  |  * @method PromiseProvider | ||
|  |  * @api public | ||
|  |  */ | ||
|  | 
 | ||
|  | exports.PromiseProvider = PromiseProvider; | ||
|  | 
 | ||
|  | /** | ||
|  |  * The [MongooseError](#error_MongooseError) constructor. | ||
|  |  * | ||
|  |  * @method Error | ||
|  |  * @api public | ||
|  |  */ | ||
|  | 
 | ||
|  | exports.Error = require('./error/index'); | ||
|  | 
 | ||
|  | /** | ||
|  |  * The Mongoose [Schema](#schema_Schema) constructor | ||
|  |  * | ||
|  |  * ####Example: | ||
|  |  * | ||
|  |  *     const mongoose = require('mongoose'); | ||
|  |  *     const Schema = mongoose.Schema; | ||
|  |  *     const CatSchema = new Schema(..); | ||
|  |  * | ||
|  |  * @method Schema | ||
|  |  * @api public | ||
|  |  */ | ||
|  | 
 | ||
|  | exports.Schema = require('./schema'); | ||
|  | 
 | ||
|  | /** | ||
|  |  * The various Mongoose Types. | ||
|  |  * | ||
|  |  * ####Example: | ||
|  |  * | ||
|  |  *     const mongoose = require('mongoose'); | ||
|  |  *     const array = mongoose.Types.Array; | ||
|  |  * | ||
|  |  * ####Types: | ||
|  |  * | ||
|  |  * - [Array](/docs/schematypes.html#arrays) | ||
|  |  * - [Buffer](/docs/schematypes.html#buffers) | ||
|  |  * - [Embedded](/docs/schematypes.html#schemas) | ||
|  |  * - [DocumentArray](/docs/api/documentarraypath.html) | ||
|  |  * - [Decimal128](/docs/api.html#mongoose_Mongoose-Decimal128) | ||
|  |  * - [ObjectId](/docs/schematypes.html#objectids) | ||
|  |  * - [Map](/docs/schematypes.html#maps) | ||
|  |  * - [Subdocument](/docs/schematypes.html#schemas) | ||
|  |  * | ||
|  |  * Using this exposed access to the `ObjectId` type, we can construct ids on demand. | ||
|  |  * | ||
|  |  *     const ObjectId = mongoose.Types.ObjectId; | ||
|  |  *     const id1 = new ObjectId; | ||
|  |  * | ||
|  |  * @property Types | ||
|  |  * @api public | ||
|  |  */ | ||
|  | exports.Types = require('./types'); | ||
|  | 
 | ||
|  | /** | ||
|  |  * The Mongoose [VirtualType](#virtualtype_VirtualType) constructor | ||
|  |  * | ||
|  |  * @method VirtualType | ||
|  |  * @api public | ||
|  |  */ | ||
|  | exports.VirtualType = require('./virtualtype'); | ||
|  | 
 | ||
|  | /** | ||
|  |  * The various Mongoose SchemaTypes. | ||
|  |  * | ||
|  |  * ####Note: | ||
|  |  * | ||
|  |  * _Alias of mongoose.Schema.Types for backwards compatibility._ | ||
|  |  * | ||
|  |  * @property SchemaTypes | ||
|  |  * @see Schema.SchemaTypes #schema_Schema.Types | ||
|  |  * @api public | ||
|  |  */ | ||
|  | 
 | ||
|  | exports.SchemaType = require('./schematype.js'); | ||
|  | 
 | ||
|  | /** | ||
|  |  * Internal utils | ||
|  |  * | ||
|  |  * @property utils | ||
|  |  * @api private | ||
|  |  */ | ||
|  | 
 | ||
|  | exports.utils = require('./utils.js'); | ||
|  | 
 | ||
|  | /** | ||
|  |  * The Mongoose browser [Document](/api/document.html) constructor. | ||
|  |  * | ||
|  |  * @method Document | ||
|  |  * @api public | ||
|  |  */ | ||
|  | exports.Document = DocumentProvider(); | ||
|  | 
 | ||
|  | /** | ||
|  |  * Return a new browser model. In the browser, a model is just | ||
|  |  * a simplified document with a schema - it does **not** have | ||
|  |  * functions like `findOne()`, etc. | ||
|  |  * | ||
|  |  * @method model | ||
|  |  * @api public | ||
|  |  * @param {String} name | ||
|  |  * @param {Schema} schema | ||
|  |  * @return Class | ||
|  |  */ | ||
|  | exports.model = function(name, schema) { | ||
|  |   class Model extends exports.Document { | ||
|  |     constructor(obj, fields) { | ||
|  |       super(obj, schema, fields); | ||
|  |     } | ||
|  |   } | ||
|  |   Model.modelName = name; | ||
|  | 
 | ||
|  |   return Model; | ||
|  | }; | ||
|  | 
 | ||
|  | /*! | ||
|  |  * Module exports. | ||
|  |  */ | ||
|  | 
 | ||
|  | if (typeof window !== 'undefined') { | ||
|  |   window.mongoose = module.exports; | ||
|  |   window.Buffer = Buffer; | ||
|  | } |