mongodb-stitch
Version:
[](https://gitter.im/mongodb/stitch?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
133 lines • 5.81 kB
JavaScript
import { Assertions } from "mongodb-stitch-core-sdk";
import { operationTypeFromRemote } from "../OperationType";
import RemoteInsertManyResult from "../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(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) {
Assertions.keyPresent(ChangeEventFields.Id, from);
Assertions.keyPresent(ChangeEventFields.OperationType, from);
Assertions.keyPresent(ChangeEventFields.Namespace, from);
Assertions.keyPresent(ChangeEventFields.DocumentKey, from);
var nsDoc = from[ChangeEventFields.Namespace];
var updateDescription;
if (ChangeEventFields.UpdateDescription in from) {
var updateDescDoc = from[ChangeEventFields.UpdateDescription];
Assertions.keyPresent(ChangeEventFields.UpdateDescriptionUpdatedFields, updateDescDoc);
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: 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;
}());
export default ResultDecoders;
//# sourceMappingURL=ResultDecoders.js.map