UNPKG

mongodb-stitch

Version:

[![Join the chat at https://gitter.im/mongodb/stitch](https://badges.gitter.im/mongodb/stitch.svg)](https://gitter.im/mongodb/stitch?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

130 lines 6.44 kB
var __assign = (this && this.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; (function (factory) { if (typeof module === "object" && typeof module.exports === "object") { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { define(["require", "exports", "bson", "./CoreRemoteMongoReadOperation", "./ResultDecoders"], factory); } })(function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var bson_1 = __importDefault(require("bson")); var CoreRemoteMongoReadOperation_1 = __importDefault(require("./CoreRemoteMongoReadOperation")); var ResultDecoders_1 = __importDefault(require("./ResultDecoders")); var CoreRemoteMongoCollectionImpl = (function () { function CoreRemoteMongoCollectionImpl(name, databaseName, service, codec) { var _this = this; this.name = name; this.databaseName = databaseName; this.service = service; this.codec = codec; this.namespace = this.databaseName + "." + this.name; this.baseOperationArgs = (function () { return ({ collection: _this.name, database: _this.databaseName }); })(); } CoreRemoteMongoCollectionImpl.prototype.withCollectionType = function (codec) { return new CoreRemoteMongoCollectionImpl(this.name, this.databaseName, this.service, codec); }; CoreRemoteMongoCollectionImpl.prototype.find = function (filter, options) { if (filter === void 0) { filter = {}; } var args = __assign({}, this.baseOperationArgs); args.query = filter; if (options) { if (options.limit) { args.limit = options.limit; } if (options.projection) { args.project = options.projection; } if (options.sort) { args.sort = options.sort; } } return new CoreRemoteMongoReadOperation_1.default("find", args, this.service, this.codec); }; CoreRemoteMongoCollectionImpl.prototype.aggregate = function (pipeline) { var args = __assign({}, this.baseOperationArgs); args.pipeline = pipeline; return new CoreRemoteMongoReadOperation_1.default("aggregate", args, this.service, this.codec); }; CoreRemoteMongoCollectionImpl.prototype.count = function (query, options) { if (query === void 0) { query = {}; } var args = __assign({}, this.baseOperationArgs); args.query = query; if (options && options.limit) { args.limit = options.limit; } return this.service.callFunction("count", [args]); }; CoreRemoteMongoCollectionImpl.prototype.insertOne = function (value) { var args = __assign({}, this.baseOperationArgs); args.document = this.generateObjectIdIfMissing(this.codec ? this.codec.encode(value) : value); return this.service.callFunction("insertOne", [args], ResultDecoders_1.default.remoteInsertOneResultDecoder); }; CoreRemoteMongoCollectionImpl.prototype.insertMany = function (docs) { var _this = this; var args = __assign({}, this.baseOperationArgs); args.documents = docs.map(function (doc) { return _this.generateObjectIdIfMissing(_this.codec ? _this.codec.encode(doc) : doc); }); return this.service.callFunction("insertMany", [args], ResultDecoders_1.default.remoteInsertManyResultDecoder); }; CoreRemoteMongoCollectionImpl.prototype.deleteOne = function (query) { return this.executeDelete(query, false); }; CoreRemoteMongoCollectionImpl.prototype.deleteMany = function (query) { return this.executeDelete(query, true); }; CoreRemoteMongoCollectionImpl.prototype.updateOne = function (query, update, options) { return this.executeUpdate(query, update, options, false); }; CoreRemoteMongoCollectionImpl.prototype.updateMany = function (query, update, options) { return this.executeUpdate(query, update, options, true); }; CoreRemoteMongoCollectionImpl.prototype.watch = function (ids) { var args = __assign({}, this.baseOperationArgs); args.ids = ids; return this.service.streamFunction("watch", [args], new ResultDecoders_1.default.ChangeEventDecoder(this.codec)); }; CoreRemoteMongoCollectionImpl.prototype.executeDelete = function (query, multi) { var args = __assign({}, this.baseOperationArgs); args.query = query; return this.service.callFunction(multi ? "deleteMany" : "deleteOne", [args], ResultDecoders_1.default.remoteDeleteResultDecoder); }; CoreRemoteMongoCollectionImpl.prototype.executeUpdate = function (query, update, options, multi) { if (multi === void 0) { multi = false; } var args = __assign({}, this.baseOperationArgs); args.query = query; args.update = update; if (options && options.upsert) { args.upsert = options.upsert; } return this.service.callFunction(multi ? "updateMany" : "updateOne", [args], ResultDecoders_1.default.remoteUpdateResultDecoder); }; CoreRemoteMongoCollectionImpl.prototype.generateObjectIdIfMissing = function (doc) { if (!doc._id) { var newDoc = doc; newDoc._id = new bson_1.default.ObjectID(); return newDoc; } return doc; }; return CoreRemoteMongoCollectionImpl; }()); exports.default = CoreRemoteMongoCollectionImpl; }); //# sourceMappingURL=CoreRemoteMongoCollectionImpl.js.map