trimble-connect-sdk
Version:
Trimble Connect SDK for JavaScript
44 lines • 5.69 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());
});
};
export 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;
});
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbHMuanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbImNyZWRlbnRpYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUlBLE1BQU0sT0FBTyxXQUFXO0lBcUJ0QjtRQWpCTyxpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQWtCL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQU9ZLEdBQUc7O1lBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUU7Z0JBQ3ZCLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQzthQUN0QjtZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztLQUFBO0lBS00sWUFBWTtRQUNqQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDL0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFdEUsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3JELE9BQU8sSUFBSSxDQUFDO1NBQ2I7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBS00sWUFBWTtRQUNqQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFRWSxPQUFPOztZQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUN2QixDQUFDO0tBQUE7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2VydmljZSBjcmVkZW50aWFscyB0aGF0IG11c3QgYmUgYXR0YWNoZWQgdG8gYXV0aGVudGljYXRlIGVhY2ggcmVxdWVzdC5cbiAqIE9jY2FzaW9uYWxseSBjcmVkZW50aWFscyBjYW4gZXhwaXJlIGluIHRoZSBtaWRkbGUgb2YgYSBsb25nLXJ1bm5pbmcgYXBwbGljYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBDcmVkZW50aWFscyB7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHNlY29uZHMgYmVmb3JlIHtleHBpcmVUaW1lfSBkdXJpbmcgd2hpY2ggdGhlIGNyZWRlbnRpYWxzIHdpbGwgYmUgY29uc2lkZXJlZCBleHBpcmVkLlxuICAgKi9cbiAgcHVibGljIGV4cGlyeVdpbmRvdzogbnVtYmVyID0gMTU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNyZWRlbnRpYWxzIGhhdmUgYmVlbiBleHBpcmVkIGFuZCByZXF1aXJlIGEgcmVmcmVzaC5cbiAgICogVXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGV4cGlyZVRpbWUuXG4gICAqL1xuICBwdWJsaWMgZXhwaXJlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGltZSB3aGVuIGNyZWRlbnRpYWxzIHNob3VsZCBiZSBjb25zaWRlcmVkIGV4cGlyZWQuXG4gICAqIFVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBleHBpcmVkLlxuICAgKi9cbiAgcHVibGljIGV4cGlyZVRpbWU6IERhdGUgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ3JlZGVudGlhbHMgb2JqZWN0IHdpdGggYSBnaXZlbiBzZXQgb2YgY3JlZGVudGlhbCBpbmZvcm1hdGlvbiBhcyBwb3NpdGlvbmFsIGFyZ3VtZW50cy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuZXhwaXJlZCA9IGZhbHNlO1xuICAgIHRoaXMuZXhwaXJlVGltZSA9IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZXhpc3RpbmcgY3JlZGVudGlhbHMsIHJlZnJlc2hpbmcgdGhlbSBpZiB0aGV5IGFyZSBub3QgeWV0IGxvYWRlZCBvciBoYXZlIGV4cGlyZWQuXG4gICAqIFVzZXJzIHNob3VsZCBjYWxsIHRoaXMgbWV0aG9kIGJlZm9yZSB1c2luZyByZWZyZXNoKCksIGFzIHRoaXMgd2lsbCBub3QgYXR0ZW1wdCB0byByZWxvYWRcbiAgICogY3JlZGVudGlhbHMgd2hlbiB0aGV5IGFyZSBhbHJlYWR5IGxvYWRlZCBpbnRvIHRoZSBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0KCk6IFByb21pc2U8Q3JlZGVudGlhbHM+IHtcbiAgICBpZiAodGhpcy5uZWVkc1JlZnJlc2goKSkge1xuICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoKCk7XG4gICAgICB0aGlzLmV4cGlyZWQgPSBmYWxzZTsgLy8gcmVzZXQgZXhwaXJlZCBmbGFnXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBjcmVkZW50aWFscyBvYmplY3Qgc2hvdWxkIGNhbGwgcmVmcmVzaCgpXG4gICAqL1xuICBwdWJsaWMgbmVlZHNSZWZyZXNoKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICBjb25zdCBhZGp1c3RlZFRpbWUgPSBuZXcgRGF0ZShjdXJyZW50VGltZSArIHRoaXMuZXhwaXJ5V2luZG93ICogMTAwMCk7XG5cbiAgICBpZiAodGhpcy5leHBpcmVUaW1lICYmIGFkanVzdGVkVGltZSA+IHRoaXMuZXhwaXJlVGltZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmV4cGlyZWQgfHwgdGhpcy5pbnZhbGlkVG9rZW4oKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSB0b2tlbiBpcyBpbnZhbGlkLiBTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSB0aGlzIG1ldGhvZC5cbiAgICovXG4gIHB1YmxpYyBpbnZhbGlkVG9rZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2hlcyB0aGUgY3JlZGVudGlhbHMuXG4gICAqIFVzZXJzIHNob3VsZCBjYWxsIGdldCgpIGJlZm9yZSBhdHRlbXB0aW5nIHRvIGZvcmNpYmx5IHJlZnJlc2ggY3JlZGVudGlhbHMuXG4gICAqIEBub3RlIFN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlIHRoaXMgY2xhc3MgdG8gcmVzZXQgdGhlIHt0b2tlbn0gb24gdGhlIGNyZWRlbnRpYWxzIG9iamVjdC5cbiAgICogQHNlZSBnZXRcbiAgICovXG4gIHB1YmxpYyBhc3luYyByZWZyZXNoKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuZXhwaXJlZCA9IGZhbHNlO1xuICB9XG59XG4iXX0=