1 | ;
|
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
4 | };
|
5 | Object.defineProperty(exports, "__esModule", { value: true });
|
6 | const runtime_1 = require("./errors/runtime");
|
7 | const types_1 = require("./errors/types");
|
8 | const embedding_utils_1 = __importDefault(require("./embedding-utils"));
|
9 | const exportable_lib_1 = __importDefault(require("./api/exportable-lib"));
|
10 | const testcafe_configuration_1 = __importDefault(require("./configuration/testcafe-configuration"));
|
11 | const option_names_1 = __importDefault(require("./configuration/option-names"));
|
12 | const lazyRequire = require('import-lazy')(require);
|
13 | const TestCafe = lazyRequire('./testcafe');
|
14 | const endpointUtils = lazyRequire('endpoint-utils');
|
15 | const setupExitHook = lazyRequire('async-exit-hook');
|
16 | // Validations
|
17 | async function getValidHostname(hostname) {
|
18 | if (hostname) {
|
19 | const valid = await endpointUtils.isMyHostname(hostname);
|
20 | if (!valid)
|
21 | throw new runtime_1.GeneralError(types_1.RUNTIME_ERRORS.invalidHostname, hostname);
|
22 | }
|
23 | else
|
24 | hostname = endpointUtils.getIPAddress();
|
25 | return hostname;
|
26 | }
|
27 | async function getValidPort(port) {
|
28 | if (port) {
|
29 | const isFree = await endpointUtils.isFreePort(port);
|
30 | if (!isFree)
|
31 | throw new runtime_1.GeneralError(types_1.RUNTIME_ERRORS.portIsNotFree, port);
|
32 | }
|
33 | else
|
34 | port = await endpointUtils.getFreePort();
|
35 | return port;
|
36 | }
|
37 | // API
|
38 | async function getConfiguration(args) {
|
39 | const configuration = new testcafe_configuration_1.default();
|
40 | if (args.length === 1 && typeof args[0] === 'object')
|
41 | await configuration.init(args[0]);
|
42 | else {
|
43 | const [hostname, port1, port2, ssl, developmentMode, retryTestPages] = args;
|
44 | await configuration.init({
|
45 | hostname,
|
46 | port1,
|
47 | port2,
|
48 | ssl,
|
49 | developmentMode,
|
50 | retryTestPages
|
51 | });
|
52 | }
|
53 | return configuration;
|
54 | }
|
55 | // API
|
56 | async function createTestCafe(...args) {
|
57 | const configuration = await getConfiguration(args);
|
58 | const [hostname, port1, port2] = await Promise.all([
|
59 | getValidHostname(configuration.getOption(option_names_1.default.hostname)),
|
60 | getValidPort(configuration.getOption(option_names_1.default.port1)),
|
61 | getValidPort(configuration.getOption(option_names_1.default.port2))
|
62 | ]);
|
63 | configuration.mergeOptions({ hostname, port1, port2 });
|
64 | const testcafe = new TestCafe(configuration);
|
65 | setupExitHook(cb => testcafe.close().then(cb));
|
66 | return testcafe;
|
67 | }
|
68 | // Embedding utils
|
69 | createTestCafe.embeddingUtils = embedding_utils_1.default;
|
70 | // Common API
|
71 | Object.keys(exportable_lib_1.default).forEach(key => {
|
72 | Object.defineProperty(createTestCafe, key, { get: () => exportable_lib_1.default[key] });
|
73 | });
|
74 | exports.default = createTestCafe;
|
75 | module.exports = exports.default;
|
76 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4Q0FBZ0Q7QUFDaEQsMENBQWdEO0FBQ2hELHdFQUErQztBQUMvQywwRUFBaUQ7QUFDakQsb0dBQTJFO0FBQzNFLGdGQUF3RDtBQUV4RCxNQUFNLFdBQVcsR0FBSyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDdEQsTUFBTSxRQUFRLEdBQVEsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ2hELE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3BELE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBRXJELGNBQWM7QUFDZCxLQUFLLFVBQVUsZ0JBQWdCLENBQUUsUUFBUTtJQUNyQyxJQUFJLFFBQVEsRUFBRTtRQUNWLE1BQU0sS0FBSyxHQUFHLE1BQU0sYUFBYSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV6RCxJQUFJLENBQUMsS0FBSztZQUNOLE1BQU0sSUFBSSxzQkFBWSxDQUFDLHNCQUFjLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0tBQ3hFOztRQUVHLFFBQVEsR0FBRyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFNUMsT0FBTyxRQUFRLENBQUM7QUFDcEIsQ0FBQztBQUVELEtBQUssVUFBVSxZQUFZLENBQUUsSUFBSTtJQUM3QixJQUFJLElBQUksRUFBRTtRQUNOLE1BQU0sTUFBTSxHQUFHLE1BQU0sYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwRCxJQUFJLENBQUMsTUFBTTtZQUNQLE1BQU0sSUFBSSxzQkFBWSxDQUFDLHNCQUFjLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQ2xFOztRQUVHLElBQUksR0FBRyxNQUFNLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUU3QyxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTTtBQUNOLEtBQUssVUFBVSxnQkFBZ0IsQ0FBRSxJQUFJO0lBQ2pDLE1BQU0sYUFBYSxHQUFHLElBQUksZ0NBQXFCLEVBQUUsQ0FBQztJQUVsRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVE7UUFDaEQsTUFBTSxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsTUFBTSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxlQUFlLEVBQUUsY0FBYyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBRTVFLE1BQU0sYUFBYSxDQUFDLElBQUksQ0FBQztZQUNyQixRQUFRO1lBQ1IsS0FBSztZQUNMLEtBQUs7WUFDTCxHQUFHO1lBQ0gsZUFBZTtZQUNmLGNBQWM7U0FDakIsQ0FBQyxDQUFDO0tBQ047SUFFRCxPQUFPLGFBQWEsQ0FBQztBQUN6QixDQUFDO0FBRUQsTUFBTTtBQUNOLEtBQUssVUFBVSxjQUFjLENBQUUsR0FBRyxJQUFJO0lBQ2xDLE1BQU0sYUFBYSxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFbkQsTUFBTSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQy9DLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsc0JBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRSxZQUFZLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxzQkFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELFlBQVksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLHNCQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUQsQ0FBQyxDQUFDO0lBRUgsYUFBYSxDQUFDLFlBQVksQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUV2RCxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUU3QyxhQUFhLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFL0MsT0FBTyxRQUFRLENBQUM7QUFDcEIsQ0FBQztBQUVELGtCQUFrQjtBQUNsQixjQUFjLENBQUMsY0FBYyxHQUFHLHlCQUFjLENBQUM7QUFFL0MsYUFBYTtBQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0JBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtJQUNyQyxNQUFNLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsd0JBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDbEYsQ0FBQyxDQUFDLENBQUM7QUFFSCxrQkFBZSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZW5lcmFsRXJyb3IgfSBmcm9tICcuL2Vycm9ycy9ydW50aW1lJztcbmltcG9ydCB7IFJVTlRJTUVfRVJST1JTIH0gZnJvbSAnLi9lcnJvcnMvdHlwZXMnO1xuaW1wb3J0IGVtYmVkZGluZ1V0aWxzIGZyb20gJy4vZW1iZWRkaW5nLXV0aWxzJztcbmltcG9ydCBleHBvcnRhYmxlTGliIGZyb20gJy4vYXBpL2V4cG9ydGFibGUtbGliJztcbmltcG9ydCBUZXN0Q2FmZUNvbmZpZ3VyYXRpb24gZnJvbSAnLi9jb25maWd1cmF0aW9uL3Rlc3RjYWZlLWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IE9QVElPTl9OQU1FUyBmcm9tICcuL2NvbmZpZ3VyYXRpb24vb3B0aW9uLW5hbWVzJztcblxuY29uc3QgbGF6eVJlcXVpcmUgICA9IHJlcXVpcmUoJ2ltcG9ydC1sYXp5JykocmVxdWlyZSk7XG5jb25zdCBUZXN0Q2FmZSAgICAgID0gbGF6eVJlcXVpcmUoJy4vdGVzdGNhZmUnKTtcbmNvbnN0IGVuZHBvaW50VXRpbHMgPSBsYXp5UmVxdWlyZSgnZW5kcG9pbnQtdXRpbHMnKTtcbmNvbnN0IHNldHVwRXhpdEhvb2sgPSBsYXp5UmVxdWlyZSgnYXN5bmMtZXhpdC1ob29rJyk7XG5cbi8vIFZhbGlkYXRpb25zXG5hc3luYyBmdW5jdGlvbiBnZXRWYWxpZEhvc3RuYW1lIChob3N0bmFtZSkge1xuICAgIGlmIChob3N0bmFtZSkge1xuICAgICAgICBjb25zdCB2YWxpZCA9IGF3YWl0IGVuZHBvaW50VXRpbHMuaXNNeUhvc3RuYW1lKGhvc3RuYW1lKTtcblxuICAgICAgICBpZiAoIXZhbGlkKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEdlbmVyYWxFcnJvcihSVU5USU1FX0VSUk9SUy5pbnZhbGlkSG9zdG5hbWUsIGhvc3RuYW1lKTtcbiAgICB9XG4gICAgZWxzZVxuICAgICAgICBob3N0bmFtZSA9IGVuZHBvaW50VXRpbHMuZ2V0SVBBZGRyZXNzKCk7XG5cbiAgICByZXR1cm4gaG9zdG5hbWU7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldFZhbGlkUG9ydCAocG9ydCkge1xuICAgIGlmIChwb3J0KSB7XG4gICAgICAgIGNvbnN0IGlzRnJlZSA9IGF3YWl0IGVuZHBvaW50VXRpbHMuaXNGcmVlUG9ydChwb3J0KTtcblxuICAgICAgICBpZiAoIWlzRnJlZSlcbiAgICAgICAgICAgIHRocm93IG5ldyBHZW5lcmFsRXJyb3IoUlVOVElNRV9FUlJPUlMucG9ydElzTm90RnJlZSwgcG9ydCk7XG4gICAgfVxuICAgIGVsc2VcbiAgICAgICAgcG9ydCA9IGF3YWl0IGVuZHBvaW50VXRpbHMuZ2V0RnJlZVBvcnQoKTtcblxuICAgIHJldHVybiBwb3J0O1xufVxuXG4vLyBBUElcbmFzeW5jIGZ1bmN0aW9uIGdldENvbmZpZ3VyYXRpb24gKGFyZ3MpIHtcbiAgICBjb25zdCBjb25maWd1cmF0aW9uID0gbmV3IFRlc3RDYWZlQ29uZmlndXJhdGlvbigpO1xuXG4gICAgaWYgKGFyZ3MubGVuZ3RoID09PSAxICYmIHR5cGVvZiBhcmdzWzBdID09PSAnb2JqZWN0JylcbiAgICAgICAgYXdhaXQgY29uZmlndXJhdGlvbi5pbml0KGFyZ3NbMF0pO1xuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBbaG9zdG5hbWUsIHBvcnQxLCBwb3J0Miwgc3NsLCBkZXZlbG9wbWVudE1vZGUsIHJldHJ5VGVzdFBhZ2VzXSA9IGFyZ3M7XG5cbiAgICAgICAgYXdhaXQgY29uZmlndXJhdGlvbi5pbml0KHtcbiAgICAgICAgICAgIGhvc3RuYW1lLFxuICAgICAgICAgICAgcG9ydDEsXG4gICAgICAgICAgICBwb3J0MixcbiAgICAgICAgICAgIHNzbCxcbiAgICAgICAgICAgIGRldmVsb3BtZW50TW9kZSxcbiAgICAgICAgICAgIHJldHJ5VGVzdFBhZ2VzXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBjb25maWd1cmF0aW9uO1xufVxuXG4vLyBBUElcbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVRlc3RDYWZlICguLi5hcmdzKSB7XG4gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IGF3YWl0IGdldENvbmZpZ3VyYXRpb24oYXJncyk7XG5cbiAgICBjb25zdCBbaG9zdG5hbWUsIHBvcnQxLCBwb3J0Ml0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgIGdldFZhbGlkSG9zdG5hbWUoY29uZmlndXJhdGlvbi5nZXRPcHRpb24oT1BUSU9OX05BTUVTLmhvc3RuYW1lKSksXG4gICAgICAgIGdldFZhbGlkUG9ydChjb25maWd1cmF0aW9uLmdldE9wdGlvbihPUFRJT05fTkFNRVMucG9ydDEpKSxcbiAgICAgICAgZ2V0VmFsaWRQb3J0KGNvbmZpZ3VyYXRpb24uZ2V0T3B0aW9uKE9QVElPTl9OQU1FUy5wb3J0MikpXG4gICAgXSk7XG5cbiAgICBjb25maWd1cmF0aW9uLm1lcmdlT3B0aW9ucyh7IGhvc3RuYW1lLCBwb3J0MSwgcG9ydDIgfSk7XG5cbiAgICBjb25zdCB0ZXN0Y2FmZSA9IG5ldyBUZXN0Q2FmZShjb25maWd1cmF0aW9uKTtcblxuICAgIHNldHVwRXhpdEhvb2soY2IgPT4gdGVzdGNhZmUuY2xvc2UoKS50aGVuKGNiKSk7XG5cbiAgICByZXR1cm4gdGVzdGNhZmU7XG59XG5cbi8vIEVtYmVkZGluZyB1dGlsc1xuY3JlYXRlVGVzdENhZmUuZW1iZWRkaW5nVXRpbHMgPSBlbWJlZGRpbmdVdGlscztcblxuLy8gQ29tbW9uIEFQSVxuT2JqZWN0LmtleXMoZXhwb3J0YWJsZUxpYikuZm9yRWFjaChrZXkgPT4ge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjcmVhdGVUZXN0Q2FmZSwga2V5LCB7IGdldDogKCkgPT4gZXhwb3J0YWJsZUxpYltrZXldIH0pO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZVRlc3RDYWZlO1xuIl19 |
\ | No newline at end of file |