|
|
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.checkCredentials = exports.setSTSToken = void 0;
- const formatObjKey_1 = require("./formatObjKey");
- async function setSTSToken() {
- if (!this.options)
- this.options = {};
- const now = new Date();
- if (this.stsTokenFreshTime) {
- if (+now - this.stsTokenFreshTime >= this.options.refreshSTSTokenInterval) {
- this.stsTokenFreshTime = now;
- let credentials = await this.options.refreshSTSToken();
- credentials = formatObjKey_1.formatObjKey(credentials, 'firstLowerCase');
- if (credentials.securityToken) {
- credentials.stsToken = credentials.securityToken;
- }
- checkCredentials(credentials);
- Object.assign(this.options, credentials);
- }
- }
- else {
- this.stsTokenFreshTime = now;
- }
- return null;
- }
- exports.setSTSToken = setSTSToken;
- function checkCredentials(obj) {
- const stsTokenKey = ['accessKeySecret', 'accessKeyId', 'stsToken'];
- const objKeys = Object.keys(obj);
- stsTokenKey.forEach(_ => {
- if (!objKeys.find(key => key === _)) {
- throw Error(`refreshSTSToken must return contains ${_}`);
- }
- });
- }
- exports.checkCredentials = checkCredentials;
|