hazelcast-client
Version:
Hazelcast - open source In-Memory Data Grid - client for NodeJS
55 lines • 2.43 kB
JavaScript
;
/*
* Copyright (c) 2008-2018, Hazelcast, Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
var HazelcastCloudDiscovery_1 = require("./HazelcastCloudDiscovery");
var Promise = require("bluebird");
var HazelcastCloudAddressTranslator = /** @class */ (function () {
function HazelcastCloudAddressTranslator(endpointUrl, connectionTimeoutMillis, loggingService) {
this.privateToPublic = new Map();
this.hazelcastCloudDiscovery = new HazelcastCloudDiscovery_1.HazelcastCloudDiscovery(endpointUrl, connectionTimeoutMillis);
this.loggingService = loggingService;
}
HazelcastCloudAddressTranslator.prototype.translate = function (address) {
var _this = this;
if (address == null) {
return Promise.resolve(null);
}
var publicAddress = this.privateToPublic.get(address.toString());
if (publicAddress != null) {
return Promise.resolve(publicAddress);
}
return this.refresh().then(function () {
if (_this.privateToPublic.get(address.toString())) {
return _this.privateToPublic.get(address.toString());
}
else {
return null;
}
});
};
HazelcastCloudAddressTranslator.prototype.refresh = function () {
var _this = this;
return this.hazelcastCloudDiscovery.discoverNodes().then(function (res) {
_this.privateToPublic = res;
}).catch(function (e) {
_this.loggingService.warn('HazelcastCloudAddressTranslator', 'Failed to load addresses from hazelcast.cloud : ' + e.message);
});
};
return HazelcastCloudAddressTranslator;
}());
exports.HazelcastCloudAddressTranslator = HazelcastCloudAddressTranslator;
//# sourceMappingURL=HazelcastCloudAddressTranslator.js.map