@configurator/ravendb
Version:
RavenDB client for Node.js
57 lines • 2.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.GetRevisionsOperation = void 0;
const RevisionsResult_1 = require("./RevisionsResult");
const RavenCommand_1 = require("../../../Http/RavenCommand");
const GetRevisionsCommand_1 = require("../../Commands/GetRevisionsCommand");
class GetRevisionsOperation {
constructor(id, parameters = {}) {
this._id = id;
this._parameters = parameters;
}
get resultType() {
return "CommandResult";
}
getCommand(store, conventions, httpCache) {
return new GetRevisionsResultCommand(this._id, this._parameters, conventions);
}
}
exports.GetRevisionsOperation = GetRevisionsOperation;
class GetRevisionsResultCommand extends RavenCommand_1.RavenCommand {
constructor(id, parameters, conventions) {
super();
this.conventions = conventions;
this._id = id;
this._parameters = parameters;
this._cmd = new GetRevisionsCommand_1.GetRevisionsCommand(conventions, id, parameters.start || 0, parameters.pageSize);
}
get isReadRequest() {
return true;
}
createRequest(node) {
return this._cmd.createRequest(node);
}
async setResponseAsync(bodyStream, fromCache) {
if (!bodyStream) {
return;
}
let body;
const responseNode = await this._pipeline()
.parseJsonSync()
.collectBody(b => body = b)
.process(bodyStream);
if (!responseNode.Results) {
return body;
}
const revisions = responseNode.Results;
const total = responseNode.TotalResults;
const result = new RevisionsResult_1.RevisionsResult();
result.totalResults = total;
result.results = revisions.filter(x => x).map(x => {
const entityType = this.conventions.getJsTypeByDocumentType(this._parameters.documentType);
return this.conventions.deserializeEntityFromJson(entityType, x);
});
this.result = result;
}
}
//# sourceMappingURL=GetRevisionsOperation.js.map