UNPKG

ravendb

Version:
60 lines 2.11 kB
import { GetRequest } from "../../../Commands/MultiGet/GetRequest.js"; import { QueryCommand } from "../../../Commands/QueryCommand.js"; import { stringToReadable } from "../../../../Utility/StreamUtil.js"; import { writeIndexQuery } from "../../../Queries/IndexQuery.js"; export class LazySuggestionQueryOperation { // eslint-disable-next-line @typescript-eslint/ban-types _result; _queryResult; _requiresRetry; _session; _indexQuery; _invokeAfterQueryExecuted; _processResults; constructor(session, indexQuery, invokeAfterQueryExecuted, processResults) { this._session = session; this._indexQuery = indexQuery; this._invokeAfterQueryExecuted = invokeAfterQueryExecuted; this._processResults = processResults; } createRequest() { const request = new GetRequest(); request.url = "/queries"; request.method = "POST"; request.query = "?queryHash=" + this._indexQuery.getQueryHash(this._session.conventions.objectMapper); request.body = writeIndexQuery(this._session.conventions, this._indexQuery); return request; } get result() { return this._result; } set result(result) { this._result = result; } get queryResult() { return this._queryResult; } set queryResult(queryResult) { this._queryResult = queryResult; } get requiresRetry() { return this._requiresRetry; } set requiresRetry(result) { this._requiresRetry = result; } async handleResponseAsync(response) { if (response.forceRetry) { this._result = null; this._requiresRetry = true; return; } const result = await QueryCommand.parseQueryResultResponseAsync(stringToReadable(response.result), this._session.conventions, false); this._handleResponse(result); } _handleResponse(queryResult) { this._result = this._processResults(queryResult); this._queryResult = queryResult; } } //# sourceMappingURL=LazySuggestionQueryOperation.js.map