trimble-connect-sdk
Version:
Trimble Connect SDK for JavaScript
48 lines • 5.84 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.Credentials = void 0;
class Credentials {
constructor() {
this.expiryWindow = 15;
this.expired = false;
this.expireTime = null;
}
get() {
return __awaiter(this, void 0, void 0, function* () {
if (this.needsRefresh()) {
yield this.refresh();
this.expired = false;
}
return this;
});
}
needsRefresh() {
const currentTime = Date.now();
const adjustedTime = new Date(currentTime + this.expiryWindow * 1000);
if (this.expireTime && adjustedTime > this.expireTime) {
return true;
}
else {
return this.expired || this.invalidToken();
}
}
invalidToken() {
return false;
}
refresh() {
return __awaiter(this, void 0, void 0, function* () {
this.expired = false;
});
}
}
exports.Credentials = Credentials;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbHMuanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbImNyZWRlbnRpYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUlBLE1BQWEsV0FBVztJQXFCdEI7UUFqQk8saUJBQVksR0FBVyxFQUFFLENBQUM7UUFrQi9CLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFPWSxHQUFHOztZQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFO2dCQUN2QixNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7YUFDdEI7WUFFRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7S0FBQTtJQUtNLFlBQVk7UUFDakIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQy9CLE1BQU0sWUFBWSxHQUFHLElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBRXRFLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNyRCxPQUFPLElBQUksQ0FBQztTQUNiO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQzVDO0lBQ0gsQ0FBQztJQUtNLFlBQVk7UUFDakIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBUVksT0FBTzs7WUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQztLQUFBO0NBQ0Y7QUF0RUQsa0NBc0VDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTZXJ2aWNlIGNyZWRlbnRpYWxzIHRoYXQgbXVzdCBiZSBhdHRhY2hlZCB0byBhdXRoZW50aWNhdGUgZWFjaCByZXF1ZXN0LlxuICogT2NjYXNpb25hbGx5IGNyZWRlbnRpYWxzIGNhbiBleHBpcmUgaW4gdGhlIG1pZGRsZSBvZiBhIGxvbmctcnVubmluZyBhcHBsaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIENyZWRlbnRpYWxzIHtcbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2Ygc2Vjb25kcyBiZWZvcmUge2V4cGlyZVRpbWV9IGR1cmluZyB3aGljaCB0aGUgY3JlZGVudGlhbHMgd2lsbCBiZSBjb25zaWRlcmVkIGV4cGlyZWQuXG4gICAqL1xuICBwdWJsaWMgZXhwaXJ5V2luZG93OiBudW1iZXIgPSAxNTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY3JlZGVudGlhbHMgaGF2ZSBiZWVuIGV4cGlyZWQgYW5kIHJlcXVpcmUgYSByZWZyZXNoLlxuICAgKiBVc2VkIGluIGNvbmp1bmN0aW9uIHdpdGggZXhwaXJlVGltZS5cbiAgICovXG4gIHB1YmxpYyBleHBpcmVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaW1lIHdoZW4gY3JlZGVudGlhbHMgc2hvdWxkIGJlIGNvbnNpZGVyZWQgZXhwaXJlZC5cbiAgICogVXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGV4cGlyZWQuXG4gICAqL1xuICBwdWJsaWMgZXhwaXJlVGltZTogRGF0ZSB8IG51bGw7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDcmVkZW50aWFscyBvYmplY3Qgd2l0aCBhIGdpdmVuIHNldCBvZiBjcmVkZW50aWFsIGluZm9ybWF0aW9uIGFzIHBvc2l0aW9uYWwgYXJndW1lbnRzLlxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5leHBpcmVkID0gZmFsc2U7XG4gICAgdGhpcy5leHBpcmVUaW1lID0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBleGlzdGluZyBjcmVkZW50aWFscywgcmVmcmVzaGluZyB0aGVtIGlmIHRoZXkgYXJlIG5vdCB5ZXQgbG9hZGVkIG9yIGhhdmUgZXhwaXJlZC5cbiAgICogVXNlcnMgc2hvdWxkIGNhbGwgdGhpcyBtZXRob2QgYmVmb3JlIHVzaW5nIHJlZnJlc2goKSwgYXMgdGhpcyB3aWxsIG5vdCBhdHRlbXB0IHRvIHJlbG9hZFxuICAgKiBjcmVkZW50aWFscyB3aGVuIHRoZXkgYXJlIGFscmVhZHkgbG9hZGVkIGludG8gdGhlIG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXQoKTogUHJvbWlzZTxDcmVkZW50aWFscz4ge1xuICAgIGlmICh0aGlzLm5lZWRzUmVmcmVzaCgpKSB7XG4gICAgICBhd2FpdCB0aGlzLnJlZnJlc2goKTtcbiAgICAgIHRoaXMuZXhwaXJlZCA9IGZhbHNlOyAvLyByZXNldCBleHBpcmVkIGZsYWdcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGNyZWRlbnRpYWxzIG9iamVjdCBzaG91bGQgY2FsbCByZWZyZXNoKClcbiAgICovXG4gIHB1YmxpYyBuZWVkc1JlZnJlc2goKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY3VycmVudFRpbWUgPSBEYXRlLm5vdygpO1xuICAgIGNvbnN0IGFkanVzdGVkVGltZSA9IG5ldyBEYXRlKGN1cnJlbnRUaW1lICsgdGhpcy5leHBpcnlXaW5kb3cgKiAxMDAwKTtcblxuICAgIGlmICh0aGlzLmV4cGlyZVRpbWUgJiYgYWRqdXN0ZWRUaW1lID4gdGhpcy5leHBpcmVUaW1lKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZXhwaXJlZCB8fCB0aGlzLmludmFsaWRUb2tlbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHRva2VuIGlzIGludmFsaWQuIFN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlIHRoaXMgbWV0aG9kLlxuICAgKi9cbiAgcHVibGljIGludmFsaWRUb2tlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaGVzIHRoZSBjcmVkZW50aWFscy5cbiAgICogVXNlcnMgc2hvdWxkIGNhbGwgZ2V0KCkgYmVmb3JlIGF0dGVtcHRpbmcgdG8gZm9yY2libHkgcmVmcmVzaCBjcmVkZW50aWFscy5cbiAgICogQG5vdGUgU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgdGhpcyBjbGFzcyB0byByZXNldCB0aGUge3Rva2VufSBvbiB0aGUgY3JlZGVudGlhbHMgb2JqZWN0LlxuICAgKiBAc2VlIGdldFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlZnJlc2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5leHBpcmVkID0gZmFsc2U7XG4gIH1cbn1cbiJdfQ==