UNPKG

trimble-connect-sdk

Version:

Trimble Connect SDK for JavaScript

48 lines 5.84 kB
"use strict"; 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==