open-next-cdk
Version:
Deploy a NextJS app using OpenNext packaging to serverless AWS using CDK
30 lines (29 loc) • 1.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.staticStabilityProvider = void 0;
const getExtendedInstanceMetadataCredentials_1 = require("./getExtendedInstanceMetadataCredentials");
const staticStabilityProvider = (provider, options = {}) => {
const logger = (options === null || options === void 0 ? void 0 : options.logger) || console;
let pastCredentials;
return async () => {
let credentials;
try {
credentials = await provider();
if (credentials.expiration && credentials.expiration.getTime() < Date.now()) {
credentials = (0, getExtendedInstanceMetadataCredentials_1.getExtendedInstanceMetadataCredentials)(credentials, logger);
}
}
catch (e) {
if (pastCredentials) {
logger.warn("Credential renew failed: ", e);
credentials = (0, getExtendedInstanceMetadataCredentials_1.getExtendedInstanceMetadataCredentials)(pastCredentials, logger);
}
else {
throw e;
}
}
pastCredentials = credentials;
return credentials;
};
};
exports.staticStabilityProvider = staticStabilityProvider;