mongodb-stitch
Version:
[](https://gitter.im/mongodb/stitch?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
138 lines • 6.24 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var mongodb_stitch_core_sdk_1 = require("mongodb-stitch-core-sdk");
var OperationType_1 = require("../OperationType");
var RemoteInsertManyResult_1 = __importDefault(require("../RemoteInsertManyResult"));
var RemoteInsertManyResultFields;
(function (RemoteInsertManyResultFields) {
RemoteInsertManyResultFields["InsertedIds"] = "insertedIds";
})(RemoteInsertManyResultFields || (RemoteInsertManyResultFields = {}));
var RemoteInsertOneResultFields;
(function (RemoteInsertOneResultFields) {
RemoteInsertOneResultFields["InsertedId"] = "insertedId";
})(RemoteInsertOneResultFields || (RemoteInsertOneResultFields = {}));
var RemoteUpdateResultFields;
(function (RemoteUpdateResultFields) {
RemoteUpdateResultFields["MatchedCount"] = "matchedCount";
RemoteUpdateResultFields["ModifiedCount"] = "modifiedCount";
RemoteUpdateResultFields["UpsertedId"] = "upsertedId";
})(RemoteUpdateResultFields || (RemoteUpdateResultFields = {}));
var RemoteDeleteResultFields;
(function (RemoteDeleteResultFields) {
RemoteDeleteResultFields["DeletedCount"] = "deletedCount";
})(RemoteDeleteResultFields || (RemoteDeleteResultFields = {}));
var ChangeEventFields;
(function (ChangeEventFields) {
ChangeEventFields["Id"] = "_id";
ChangeEventFields["OperationType"] = "operationType";
ChangeEventFields["FullDocument"] = "fullDocument";
ChangeEventFields["DocumentKey"] = "documentKey";
ChangeEventFields["Namespace"] = "ns";
ChangeEventFields["NamespaceDb"] = "db";
ChangeEventFields["NamespaceColl"] = "coll";
ChangeEventFields["UpdateDescription"] = "updateDescription";
ChangeEventFields["UpdateDescriptionUpdatedFields"] = "updatedFields";
ChangeEventFields["UpdateDescriptionRemovedFields"] = "removedFields";
})(ChangeEventFields || (ChangeEventFields = {}));
var RemoteInsertManyResultDecoder = (function () {
function RemoteInsertManyResultDecoder() {
}
RemoteInsertManyResultDecoder.prototype.decode = function (from) {
return new RemoteInsertManyResult_1.default(from[RemoteInsertManyResultFields.InsertedIds]);
};
return RemoteInsertManyResultDecoder;
}());
var RemoteInsertOneResultDecoder = (function () {
function RemoteInsertOneResultDecoder() {
}
RemoteInsertOneResultDecoder.prototype.decode = function (from) {
return {
insertedId: from[RemoteInsertOneResultFields.InsertedId]
};
};
return RemoteInsertOneResultDecoder;
}());
var RemoteUpdateResultDecoder = (function () {
function RemoteUpdateResultDecoder() {
}
RemoteUpdateResultDecoder.prototype.decode = function (from) {
return {
matchedCount: from[RemoteUpdateResultFields.MatchedCount],
modifiedCount: from[RemoteUpdateResultFields.ModifiedCount],
upsertedId: from[RemoteUpdateResultFields.UpsertedId]
};
};
return RemoteUpdateResultDecoder;
}());
var RemoteDeleteResultDecoder = (function () {
function RemoteDeleteResultDecoder() {
}
RemoteDeleteResultDecoder.prototype.decode = function (from) {
return {
deletedCount: from[RemoteDeleteResultFields.DeletedCount]
};
};
return RemoteDeleteResultDecoder;
}());
var ChangeEventDecoder = (function () {
function ChangeEventDecoder(decoder) {
this.decoder = decoder;
}
ChangeEventDecoder.prototype.decode = function (from) {
mongodb_stitch_core_sdk_1.Assertions.keyPresent(ChangeEventFields.Id, from);
mongodb_stitch_core_sdk_1.Assertions.keyPresent(ChangeEventFields.OperationType, from);
mongodb_stitch_core_sdk_1.Assertions.keyPresent(ChangeEventFields.Namespace, from);
mongodb_stitch_core_sdk_1.Assertions.keyPresent(ChangeEventFields.DocumentKey, from);
var nsDoc = from[ChangeEventFields.Namespace];
var updateDescription;
if (ChangeEventFields.UpdateDescription in from) {
var updateDescDoc = from[ChangeEventFields.UpdateDescription];
mongodb_stitch_core_sdk_1.Assertions.keyPresent(ChangeEventFields.UpdateDescriptionUpdatedFields, updateDescDoc);
mongodb_stitch_core_sdk_1.Assertions.keyPresent(ChangeEventFields.UpdateDescriptionRemovedFields, updateDescDoc);
updateDescription = {
removedFields: updateDescDoc[ChangeEventFields.UpdateDescriptionRemovedFields],
updatedFields: updateDescDoc[ChangeEventFields.UpdateDescriptionUpdatedFields],
};
}
else {
updateDescription = undefined;
}
var fullDocument;
if (ChangeEventFields.FullDocument in from) {
fullDocument = from[ChangeEventFields.FullDocument];
if (this.decoder) {
fullDocument = this.decoder.decode(fullDocument);
}
}
else {
fullDocument = undefined;
}
return {
documentKey: from[ChangeEventFields.DocumentKey],
fullDocument: fullDocument,
id: from[ChangeEventFields.Id],
namespace: {
collection: nsDoc[ChangeEventFields.NamespaceColl],
database: nsDoc[ChangeEventFields.NamespaceDb]
},
operationType: OperationType_1.operationTypeFromRemote(from[ChangeEventFields.OperationType]),
updateDescription: updateDescription
};
};
return ChangeEventDecoder;
}());
var ResultDecoders = (function () {
function ResultDecoders() {
}
ResultDecoders.remoteInsertManyResultDecoder = new RemoteInsertManyResultDecoder();
ResultDecoders.remoteInsertOneResultDecoder = new RemoteInsertOneResultDecoder();
ResultDecoders.remoteUpdateResultDecoder = new RemoteUpdateResultDecoder();
ResultDecoders.remoteDeleteResultDecoder = new RemoteDeleteResultDecoder();
ResultDecoders.ChangeEventDecoder = ChangeEventDecoder;
return ResultDecoders;
}());
exports.default = ResultDecoders;
//# sourceMappingURL=ResultDecoders.js.map