trimble-connect-sdk
Version:
Trimble Connect SDK for JavaScript
38 lines • 4.6 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ServiceResponse = void 0;
class ServiceResponse {
constructor(service, response, data) {
this.service = service;
this.response = response;
this.data = data;
this.retryCount = 0;
}
hasNextPage() {
if (this.data && this.data.hasOwnProperty('next')) {
const next = this.data.next;
return next !== null;
}
return false;
}
nextPage() {
return __awaiter(this, void 0, void 0, function* () {
if (!this.hasNextPage()) {
throw new Error('There is no next page for this response.');
}
const next = this.data.next;
return this.service.makeRequest(next);
});
}
}
exports.ServiceResponse = ServiceResponse;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbInJlc3BvbnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUtBLE1BQWEsZUFBZTtJQVcxQixZQUNtQixPQUFnQixFQUMxQixRQUFrQixFQUNsQixJQUFPO1FBRkcsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUMxQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFNBQUksR0FBSixJQUFJLENBQUc7UUFWVCxlQUFVLEdBQVcsQ0FBQyxDQUFDO0lBVzNCLENBQUM7SUFLRyxXQUFXO1FBR2hCLElBQUksSUFBSSxDQUFDLElBQUksSUFBSyxJQUFJLENBQUMsSUFBWSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMxRCxNQUFNLElBQUksR0FBWSxJQUFJLENBQUMsSUFBWSxDQUFDLElBQUksQ0FBQztZQUM3QyxPQUFPLElBQUksS0FBSyxJQUFJLENBQUM7U0FDdEI7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFLWSxRQUFROztZQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFO2dCQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7YUFDN0Q7WUFFRCxNQUFNLElBQUksR0FBWSxJQUFJLENBQUMsSUFBWSxDQUFDLElBQUksQ0FBQztZQUM3QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFJLElBQUksQ0FBQyxDQUFDO1FBQzNDLENBQUM7S0FBQTtDQUNGO0FBMUNELDBDQTBDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2UnO1xuXG4vKipcbiAqIEEgc3RydWN0dXJlIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgYSBzZXJ2aWNlIHJlc3BvbnNlLlxuICovXG5leHBvcnQgY2xhc3MgU2VydmljZVJlc3BvbnNlPEQ+IHtcbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgcmV0cmllcyB0aGF0IHdlcmUgYXR0ZW1wdGVkIGJlZm9yZSB0aGUgcmVxdWVzdCB3YXMgY29tcGxldGVkLlxuICAgKi9cbiAgcHVibGljIHJldHJ5Q291bnQ6IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge1Jlc3BvbnNlfSByZXNwb25zZSAgVGhlIHJhdyBIVFRQIHJlc3BvbnNlIG9iamVjdCBjb250YWluaW5nIHRoZSByZXNwb25zZSBoZWFkZXJzIGFuZCBib2R5IGluZm9ybWF0aW9uIGZyb20gdGhlIHNlcnZlci5cbiAgICogQHBhcmFtIHtEfSBkYXRhIFRoZSBkZS1zZXJpYWxpemVkIHJlc3BvbnNlIGRhdGEgZnJvbSB0aGUgc2VydmljZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZTogU2VydmljZSxcbiAgICBwdWJsaWMgcmVzcG9uc2U6IFJlc3BvbnNlLFxuICAgIHB1YmxpYyBkYXRhOiBEXG4gICkge31cblxuICAvKipcbiAgICogV2hldGhlciBtb3JlIHBhZ2VzIG9mIGRhdGEgY2FuIGJlIHJldHVybmVkIGJ5IGZ1cnRoZXIgcmVxdWVzdHMuXG4gICAqL1xuICBwdWJsaWMgaGFzTmV4dFBhZ2UoKTogYm9vbGVhbiB7XG4gICAgLy8gVHlwZVNjcmlwdCAzKyBkb2VzIG5vdCBhY2NlcHQgdGhpcy5kYXRhLmhhc093blByb3BlcnR5LCBuZWVkIHRoZSBjYXN0LlxuICAgIC8vIEtlcHQgdGhlIGFzc3VtcHRpb24gdGhhdCBpZiBEIGhhcyBhIHZhbHVlIHRoZW4gaXQgaXMgYW4gb2JqZWN0IChoYXNPd25Qcm9wZXJ0eSBjYW4gYmUgY2FsbGVkLCBubyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eSkuXG4gICAgaWYgKHRoaXMuZGF0YSAmJiAodGhpcy5kYXRhIGFzIGFueSkuaGFzT3duUHJvcGVydHkoJ25leHQnKSkge1xuICAgICAgY29uc3QgbmV4dDogc3RyaW5nID0gKHRoaXMuZGF0YSBhcyBhbnkpLm5leHQ7XG4gICAgICByZXR1cm4gbmV4dCAhPT0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyByZXF1ZXN0IGZvciB0aGUgbmV4dCBwYWdlIG9mIHJlc3BvbnNlIGRhdGEuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbmV4dFBhZ2UoKTogUHJvbWlzZTxTZXJ2aWNlUmVzcG9uc2U8RD4+IHtcbiAgICBpZiAoIXRoaXMuaGFzTmV4dFBhZ2UoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGVyZSBpcyBubyBuZXh0IHBhZ2UgZm9yIHRoaXMgcmVzcG9uc2UuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dDogc3RyaW5nID0gKHRoaXMuZGF0YSBhcyBhbnkpLm5leHQ7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5tYWtlUmVxdWVzdDxEPihuZXh0KTtcbiAgfVxufVxuIl19