testcafe
Version:
Automated browser testing for the modern web development stack.
33 lines • 3.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getValidPort = exports.getValidHostname = void 0;
const runtime_1 = require("../errors/runtime");
const types_1 = require("../errors/types");
const endpoint_utils_1 = require("../utils/endpoint-utils");
async function getValidHostname(hostname) {
var _a;
if (hostname) {
const valid = await (0, endpoint_utils_1.isMyHostname)(hostname);
if (!valid)
throw new runtime_1.GeneralError(types_1.RUNTIME_ERRORS.invalidHostname, hostname);
}
else {
hostname = (_a = (0, endpoint_utils_1.getIPAddress)()) !== null && _a !== void 0 ? _a : '';
if (!hostname)
throw new runtime_1.GeneralError(types_1.RUNTIME_ERRORS.invalidHostname, hostname);
}
return hostname;
}
exports.getValidHostname = getValidHostname;
async function getValidPort(port) {
if (port) {
const isFree = await (0, endpoint_utils_1.isFreePort)(port);
if (!isFree)
throw new runtime_1.GeneralError(types_1.RUNTIME_ERRORS.portIsNotFree, port);
}
else
port = await (0, endpoint_utils_1.getFreePort)();
return port;
}
exports.getValidPort = getValidPort;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBaUQ7QUFDakQsMkNBQWlEO0FBQ2pELDREQUtpQztBQUUxQixLQUFLLFVBQVUsZ0JBQWdCLENBQUUsUUFBZ0I7O0lBQ3BELElBQUksUUFBUSxFQUFFO1FBQ1YsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFBLDZCQUFZLEVBQUMsUUFBUSxDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLEtBQUs7WUFDTixNQUFNLElBQUksc0JBQVksQ0FBQyxzQkFBYyxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQztLQUN4RTtTQUNJO1FBQ0QsUUFBUSxHQUFHLE1BQUEsSUFBQSw2QkFBWSxHQUFFLG1DQUFJLEVBQUUsQ0FBQztRQUVoQyxJQUFJLENBQUMsUUFBUTtZQUNULE1BQU0sSUFBSSxzQkFBWSxDQUFDLHNCQUFjLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0tBQ3hFO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDcEIsQ0FBQztBQWZELDRDQWVDO0FBRU0sS0FBSyxVQUFVLFlBQVksQ0FBRSxJQUFZO0lBQzVDLElBQUksSUFBSSxFQUFFO1FBQ04sTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFBLDJCQUFVLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLE1BQU07WUFDUCxNQUFNLElBQUksc0JBQVksQ0FBQyxzQkFBYyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUNsRTs7UUFFRyxJQUFJLEdBQUcsTUFBTSxJQUFBLDRCQUFXLEdBQUUsQ0FBQztJQUUvQixPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDO0FBWEQsb0NBV0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZW5lcmFsRXJyb3IgfSBmcm9tICcuLi9lcnJvcnMvcnVudGltZSc7XG5pbXBvcnQgeyBSVU5USU1FX0VSUk9SUyB9IGZyb20gJy4uL2Vycm9ycy90eXBlcyc7XG5pbXBvcnQge1xuICAgIGlzTXlIb3N0bmFtZSxcbiAgICBnZXRJUEFkZHJlc3MsXG4gICAgaXNGcmVlUG9ydCxcbiAgICBnZXRGcmVlUG9ydCxcbn0gZnJvbSAnLi4vdXRpbHMvZW5kcG9pbnQtdXRpbHMnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0VmFsaWRIb3N0bmFtZSAoaG9zdG5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKGhvc3RuYW1lKSB7XG4gICAgICAgIGNvbnN0IHZhbGlkID0gYXdhaXQgaXNNeUhvc3RuYW1lKGhvc3RuYW1lKTtcblxuICAgICAgICBpZiAoIXZhbGlkKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEdlbmVyYWxFcnJvcihSVU5USU1FX0VSUk9SUy5pbnZhbGlkSG9zdG5hbWUsIGhvc3RuYW1lKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGhvc3RuYW1lID0gZ2V0SVBBZGRyZXNzKCkgPz8gJyc7XG5cbiAgICAgICAgaWYgKCFob3N0bmFtZSlcbiAgICAgICAgICAgIHRocm93IG5ldyBHZW5lcmFsRXJyb3IoUlVOVElNRV9FUlJPUlMuaW52YWxpZEhvc3RuYW1lLCBob3N0bmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhvc3RuYW1lO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0VmFsaWRQb3J0IChwb3J0OiBudW1iZXIpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGlmIChwb3J0KSB7XG4gICAgICAgIGNvbnN0IGlzRnJlZSA9IGF3YWl0IGlzRnJlZVBvcnQocG9ydCk7XG5cbiAgICAgICAgaWYgKCFpc0ZyZWUpXG4gICAgICAgICAgICB0aHJvdyBuZXcgR2VuZXJhbEVycm9yKFJVTlRJTUVfRVJST1JTLnBvcnRJc05vdEZyZWUsIHBvcnQpO1xuICAgIH1cbiAgICBlbHNlXG4gICAgICAgIHBvcnQgPSBhd2FpdCBnZXRGcmVlUG9ydCgpO1xuXG4gICAgcmV0dXJuIHBvcnQ7XG59XG4iXX0=