@dev-blinq/cucumber-js 1.0.6 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cucumber-js +0 -0
- package/bin/cucumber.js +0 -0
- package/lib/api/console_logger.d.ts +12 -12
- package/lib/api/console_logger.js +23 -23
- package/lib/api/convert_configuration.d.ts +4 -4
- package/lib/api/convert_configuration.js +64 -64
- package/lib/api/environment.d.ts +2 -2
- package/lib/api/environment.js +13 -13
- package/lib/api/formatters.d.ts +20 -20
- package/lib/api/formatters.js +60 -60
- package/lib/api/gherkin.d.ts +21 -21
- package/lib/api/gherkin.js +99 -99
- package/lib/api/index.d.ts +12 -12
- package/lib/api/index.js +27 -27
- package/lib/api/load_configuration.d.ts +9 -9
- package/lib/api/load_configuration.js +40 -40
- package/lib/api/load_sources.d.ts +9 -9
- package/lib/api/load_sources.js +52 -52
- package/lib/api/load_support.d.ts +10 -10
- package/lib/api/load_support.js +29 -29
- package/lib/api/paths.d.ts +8 -8
- package/lib/api/paths.js +101 -101
- package/lib/api/plugins.d.ts +4 -4
- package/lib/api/plugins.js +18 -18
- package/lib/api/run_cucumber.d.ts +11 -11
- package/lib/api/run_cucumber.js +114 -114
- package/lib/api/runtime.d.ts +21 -21
- package/lib/api/runtime.js +35 -35
- package/lib/api/support.d.ts +9 -9
- package/lib/api/support.js +25 -25
- package/lib/api/test_helpers.d.ts +3 -3
- package/lib/api/test_helpers.js +30 -30
- package/lib/api/types.d.ts +175 -175
- package/lib/api/types.js +2 -2
- package/lib/cli/helpers.d.ts +37 -37
- package/lib/cli/helpers.js +202 -202
- package/lib/cli/i18n.d.ts +2 -2
- package/lib/cli/i18n.js +69 -69
- package/lib/cli/index.d.ts +21 -21
- package/lib/cli/index.js +58 -58
- package/lib/cli/install_validator.d.ts +1 -1
- package/lib/cli/install_validator.js +13 -13
- package/lib/cli/run.d.ts +1 -1
- package/lib/cli/run.js +43 -43
- package/lib/cli/validate_node_engine_version.d.ts +10 -10
- package/lib/cli/validate_node_engine_version.js +23 -23
- package/lib/configuration/argv_parser.d.ts +20 -20
- package/lib/configuration/argv_parser.js +100 -100
- package/lib/configuration/check_schema.d.ts +2 -2
- package/lib/configuration/check_schema.js +59 -59
- package/lib/configuration/default_configuration.d.ts +2 -2
- package/lib/configuration/default_configuration.js +26 -26
- package/lib/configuration/from_file.d.ts +3 -3
- package/lib/configuration/from_file.js +84 -84
- package/lib/configuration/helpers.d.ts +1 -1
- package/lib/configuration/helpers.js +10 -10
- package/lib/configuration/index.d.ts +7 -7
- package/lib/configuration/index.js +28 -28
- package/lib/configuration/locate_file.d.ts +1 -1
- package/lib/configuration/locate_file.js +20 -20
- package/lib/configuration/merge_configurations.d.ts +2 -2
- package/lib/configuration/merge_configurations.js +47 -47
- package/lib/configuration/option_splitter.d.ts +3 -3
- package/lib/configuration/option_splitter.js +22 -22
- package/lib/configuration/types.d.ts +28 -28
- package/lib/configuration/types.js +2 -2
- package/lib/configuration/validate_configuration.d.ts +3 -3
- package/lib/configuration/validate_configuration.js +12 -12
- package/lib/filter_stack_trace.d.ts +3 -3
- package/lib/filter_stack_trace.js +37 -37
- package/lib/formatter/builder.d.ts +37 -37
- package/lib/formatter/builder.js +100 -100
- package/lib/formatter/bvt_formatter.d.ts +5 -0
- package/lib/formatter/bvt_formatter.js +21 -0
- package/lib/formatter/bvt_formatter.js.map +1 -0
- package/lib/formatter/feature_data_format.d.ts +14 -14
- package/lib/formatter/feature_data_format.js +80 -80
- package/lib/formatter/feature_data_format.js.map +1 -1
- package/lib/formatter/fixtures/typescript.d.ts +2 -2
- package/lib/formatter/fixtures/typescript.js +5 -5
- package/lib/formatter/get_color_fns.d.ts +15 -15
- package/lib/formatter/get_color_fns.js +55 -55
- package/lib/formatter/helpers/duration_helpers.d.ts +2 -2
- package/lib/formatter/helpers/duration_helpers.js +8 -8
- package/lib/formatter/helpers/event_data_collector.d.ts +30 -30
- package/lib/formatter/helpers/event_data_collector.js +125 -125
- package/lib/formatter/helpers/formatters.d.ts +6 -6
- package/lib/formatter/helpers/formatters.js +44 -42
- package/lib/formatter/helpers/formatters.js.map +1 -1
- package/lib/formatter/helpers/gherkin_document_parser.d.ts +5 -5
- package/lib/formatter/helpers/gherkin_document_parser.js +65 -65
- package/lib/formatter/helpers/index.d.ts +10 -10
- package/lib/formatter/helpers/index.js +51 -51
- package/lib/formatter/helpers/issue_helpers.d.ts +19 -19
- package/lib/formatter/helpers/issue_helpers.js +58 -58
- package/lib/formatter/helpers/keyword_type.d.ts +11 -11
- package/lib/formatter/helpers/keyword_type.js +31 -31
- package/lib/formatter/helpers/location_helpers.d.ts +2 -2
- package/lib/formatter/helpers/location_helpers.js +16 -16
- package/lib/formatter/helpers/pickle_parser.d.ts +17 -17
- package/lib/formatter/helpers/pickle_parser.js +27 -27
- package/lib/formatter/helpers/report_generator.d.ts +91 -0
- package/lib/formatter/helpers/report_generator.js +235 -0
- package/lib/formatter/helpers/report_generator.js.map +1 -0
- package/lib/formatter/helpers/step_argument_formatter.d.ts +2 -2
- package/lib/formatter/helpers/step_argument_formatter.js +47 -47
- package/lib/formatter/helpers/summary_helpers.d.ts +9 -9
- package/lib/formatter/helpers/summary_helpers.js +95 -95
- package/lib/formatter/helpers/test_case_attempt_formatter.d.ts +12 -12
- package/lib/formatter/helpers/test_case_attempt_formatter.js +113 -113
- package/lib/formatter/helpers/test_case_attempt_parser.d.ts +32 -32
- package/lib/formatter/helpers/test_case_attempt_parser.js +134 -134
- package/lib/formatter/helpers/usage_helpers/index.d.ts +23 -23
- package/lib/formatter/helpers/usage_helpers/index.js +110 -110
- package/lib/formatter/html_formatter.d.ts +7 -7
- package/lib/formatter/html_formatter.js +29 -29
- package/lib/formatter/index.d.ts +53 -53
- package/lib/formatter/index.js +20 -20
- package/lib/formatter/json_formatter.d.ts +78 -78
- package/lib/formatter/json_formatter.js +229 -229
- package/lib/formatter/junit_formatter.d.ts +17 -17
- package/lib/formatter/junit_formatter.js +180 -180
- package/lib/formatter/message_formatter.d.ts +5 -5
- package/lib/formatter/message_formatter.js +14 -14
- package/lib/formatter/progress_bar_formatter.d.ts +18 -18
- package/lib/formatter/progress_bar_formatter.js +98 -98
- package/lib/formatter/progress_formatter.d.ts +9 -9
- package/lib/formatter/progress_formatter.js +58 -58
- package/lib/formatter/rerun_formatter.d.ts +13 -13
- package/lib/formatter/rerun_formatter.js +79 -79
- package/lib/formatter/snippets_formatter.d.ts +6 -6
- package/lib/formatter/snippets_formatter.js +60 -60
- package/lib/formatter/step_definition_snippet_builder/index.d.ts +20 -20
- package/lib/formatter/step_definition_snippet_builder/index.js +45 -45
- package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.d.ts +7 -7
- package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.js +45 -45
- package/lib/formatter/step_definition_snippet_builder/snippet_syntax.d.ts +16 -16
- package/lib/formatter/step_definition_snippet_builder/snippet_syntax.js +10 -10
- package/lib/formatter/summary_formatter.d.ts +14 -14
- package/lib/formatter/summary_formatter.js +67 -67
- package/lib/formatter/usage_formatter.d.ts +6 -6
- package/lib/formatter/usage_formatter.js +97 -97
- package/lib/formatter/usage_json_formatter.d.ts +7 -7
- package/lib/formatter/usage_json_formatter.js +33 -33
- package/lib/index.d.ts +58 -58
- package/lib/index.js +108 -108
- package/lib/logger.d.ts +5 -5
- package/lib/logger.js +2 -2
- package/lib/models/data_table.d.ts +10 -10
- package/lib/models/data_table.js +45 -45
- package/lib/models/definition.d.ts +55 -55
- package/lib/models/definition.js +21 -21
- package/lib/models/gherkin_step_keyword.d.ts +1 -1
- package/lib/models/gherkin_step_keyword.js +2 -2
- package/lib/models/pickle_order.d.ts +1 -1
- package/lib/models/pickle_order.js +2 -2
- package/lib/models/step_definition.d.ts +11 -11
- package/lib/models/step_definition.js +36 -36
- package/lib/models/test_case_hook_definition.d.ts +10 -10
- package/lib/models/test_case_hook_definition.js +26 -26
- package/lib/models/test_run_hook_definition.d.ts +3 -3
- package/lib/models/test_run_hook_definition.js +9 -9
- package/lib/models/test_step_hook_definition.d.ts +9 -9
- package/lib/models/test_step_hook_definition.js +25 -25
- package/lib/pickle_filter.d.ts +42 -42
- package/lib/pickle_filter.js +98 -98
- package/lib/plugin/index.d.ts +2 -2
- package/lib/plugin/index.js +18 -18
- package/lib/plugin/plugin_manager.d.ts +13 -13
- package/lib/plugin/plugin_manager.js +35 -35
- package/lib/plugin/types.d.ts +14 -14
- package/lib/plugin/types.js +2 -2
- package/lib/publish/http_stream.d.ts +30 -30
- package/lib/publish/http_stream.js +111 -111
- package/lib/publish/index.d.ts +2 -2
- package/lib/publish/index.js +4 -4
- package/lib/publish/publish_plugin.d.ts +2 -2
- package/lib/publish/publish_plugin.js +47 -47
- package/lib/runtime/assemble_test_cases.d.ts +13 -13
- package/lib/runtime/assemble_test_cases.js +87 -87
- package/lib/runtime/attachment_manager/index.d.ts +33 -33
- package/lib/runtime/attachment_manager/index.js +118 -118
- package/lib/runtime/format_error.d.ts +2 -2
- package/lib/runtime/format_error.js +35 -35
- package/lib/runtime/helpers.d.ts +6 -6
- package/lib/runtime/helpers.js +100 -100
- package/lib/runtime/index.d.ts +40 -40
- package/lib/runtime/index.js +75 -75
- package/lib/runtime/parallel/command_types.d.ts +32 -32
- package/lib/runtime/parallel/command_types.js +2 -2
- package/lib/runtime/parallel/coordinator.d.ts +72 -72
- package/lib/runtime/parallel/coordinator.js +221 -221
- package/lib/runtime/parallel/run_worker.d.ts +1 -1
- package/lib/runtime/parallel/run_worker.js +28 -28
- package/lib/runtime/parallel/worker.d.ts +26 -26
- package/lib/runtime/parallel/worker.js +86 -86
- package/lib/runtime/run_test_run_hooks.d.ts +3 -3
- package/lib/runtime/run_test_run_hooks.js +27 -27
- package/lib/runtime/step_runner.d.ts +16 -16
- package/lib/runtime/step_runner.js +87 -87
- package/lib/runtime/stopwatch.d.ts +12 -12
- package/lib/runtime/stopwatch.js +33 -33
- package/lib/runtime/test_case_runner.d.ts +54 -54
- package/lib/runtime/test_case_runner.js +267 -267
- package/lib/step_arguments.d.ts +6 -6
- package/lib/step_arguments.js +18 -18
- package/lib/support_code_library_builder/build_parameter_type.d.ts +3 -3
- package/lib/support_code_library_builder/build_parameter_type.js +12 -12
- package/lib/support_code_library_builder/get_definition_line_and_uri.d.ts +3 -3
- package/lib/support_code_library_builder/get_definition_line_and_uri.js +28 -28
- package/lib/support_code_library_builder/index.d.ts +74 -74
- package/lib/support_code_library_builder/index.js +296 -296
- package/lib/support_code_library_builder/parallel_can_assign_helpers.d.ts +2 -2
- package/lib/support_code_library_builder/parallel_can_assign_helpers.js +15 -15
- package/lib/support_code_library_builder/sourced_parameter_type_registry.d.ts +7 -7
- package/lib/support_code_library_builder/sourced_parameter_type_registry.js +18 -18
- package/lib/support_code_library_builder/types.d.ts +88 -88
- package/lib/support_code_library_builder/types.js +2 -2
- package/lib/support_code_library_builder/validate_arguments.d.ts +12 -12
- package/lib/support_code_library_builder/validate_arguments.js +72 -72
- package/lib/support_code_library_builder/world.d.ts +18 -18
- package/lib/support_code_library_builder/world.js +10 -10
- package/lib/time.d.ts +18 -18
- package/lib/time.js +60 -60
- package/lib/try_require.d.ts +7 -7
- package/lib/try_require.js +22 -22
- package/lib/types/index.d.ts +4 -4
- package/lib/types/index.js +2 -2
- package/lib/uncaught_exception_manager.d.ts +7 -7
- package/lib/uncaught_exception_manager.js +11 -11
- package/lib/user_code_runner.d.ts +14 -14
- package/lib/user_code_runner.js +81 -81
- package/lib/value_checker.d.ts +3 -3
- package/lib/value_checker.js +18 -18
- package/lib/version.d.ts +1 -1
- package/lib/version.js +5 -5
- package/lib/version.js.map +1 -1
- package/package.json +2 -2
package/lib/try_require.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
/**
|
|
4
|
-
* Provides a try guarded require call that will throw a more detailed error when
|
|
5
|
-
* the ERR_REQUIRE_ESM error code is encountered.
|
|
6
|
-
*
|
|
7
|
-
* @param {string} path File path to require from.
|
|
8
|
-
*/
|
|
9
|
-
function tryRequire(path) {
|
|
10
|
-
try {
|
|
11
|
-
return require(path);
|
|
12
|
-
}
|
|
13
|
-
catch (error) {
|
|
14
|
-
if (error.code === 'ERR_REQUIRE_ESM') {
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
4
|
+
* Provides a try guarded require call that will throw a more detailed error when
|
|
5
|
+
* the ERR_REQUIRE_ESM error code is encountered.
|
|
6
|
+
*
|
|
7
|
+
* @param {string} path File path to require from.
|
|
8
|
+
*/
|
|
9
|
+
function tryRequire(path) {
|
|
10
|
+
try {
|
|
11
|
+
return require(path);
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
if (error.code === 'ERR_REQUIRE_ESM') {
|
|
15
15
|
throw Error(`Cucumber expected a CommonJS module at '${path}' but found an ES module.
|
|
16
16
|
Either change the file to CommonJS syntax or use the --import directive instead of --require.
|
|
17
17
|
|
|
18
|
-
Original error message: ${error.message}`);
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
throw error;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
exports.default = tryRequire;
|
|
18
|
+
Original error message: ${error.message}`);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
throw error;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.default = tryRequire;
|
|
26
26
|
//# sourceMappingURL=try_require.js.map
|
package/lib/types/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export interface ILineAndUri {
|
|
2
|
-
line: number;
|
|
3
|
-
uri: string;
|
|
4
|
-
}
|
|
1
|
+
export interface ILineAndUri {
|
|
2
|
+
line: number;
|
|
3
|
+
uri: string;
|
|
4
|
+
}
|
package/lib/types/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import UncaughtExceptionListener = NodeJS.UncaughtExceptionListener;
|
|
3
|
-
declare const UncaughtExceptionManager: {
|
|
4
|
-
registerHandler(handler: UncaughtExceptionListener): void;
|
|
5
|
-
unregisterHandler(handler: UncaughtExceptionListener): void;
|
|
6
|
-
};
|
|
7
|
-
export default UncaughtExceptionManager;
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import UncaughtExceptionListener = NodeJS.UncaughtExceptionListener;
|
|
3
|
+
declare const UncaughtExceptionManager: {
|
|
4
|
+
registerHandler(handler: UncaughtExceptionListener): void;
|
|
5
|
+
unregisterHandler(handler: UncaughtExceptionListener): void;
|
|
6
|
+
};
|
|
7
|
+
export default UncaughtExceptionManager;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const UncaughtExceptionManager = {
|
|
4
|
-
registerHandler(handler) {
|
|
5
|
-
process.addListener('uncaughtException', handler);
|
|
6
|
-
},
|
|
7
|
-
unregisterHandler(handler) {
|
|
8
|
-
process.removeListener('uncaughtException', handler);
|
|
9
|
-
},
|
|
10
|
-
};
|
|
11
|
-
exports.default = UncaughtExceptionManager;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const UncaughtExceptionManager = {
|
|
4
|
+
registerHandler(handler) {
|
|
5
|
+
process.addListener('uncaughtException', handler);
|
|
6
|
+
},
|
|
7
|
+
unregisterHandler(handler) {
|
|
8
|
+
process.removeListener('uncaughtException', handler);
|
|
9
|
+
},
|
|
10
|
+
};
|
|
11
|
+
exports.default = UncaughtExceptionManager;
|
|
12
12
|
//# sourceMappingURL=uncaught_exception_manager.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
export interface IRunRequest {
|
|
2
|
-
argsArray: any[];
|
|
3
|
-
thisArg: any;
|
|
4
|
-
fn: Function;
|
|
5
|
-
timeoutInMilliseconds: number;
|
|
6
|
-
}
|
|
7
|
-
export interface IRunResponse {
|
|
8
|
-
error?: any;
|
|
9
|
-
result?: any;
|
|
10
|
-
}
|
|
11
|
-
declare const UserCodeRunner: {
|
|
12
|
-
run({ argsArray, thisArg, fn, timeoutInMilliseconds, }: IRunRequest): Promise<IRunResponse>;
|
|
13
|
-
};
|
|
14
|
-
export default UserCodeRunner;
|
|
1
|
+
export interface IRunRequest {
|
|
2
|
+
argsArray: any[];
|
|
3
|
+
thisArg: any;
|
|
4
|
+
fn: Function;
|
|
5
|
+
timeoutInMilliseconds: number;
|
|
6
|
+
}
|
|
7
|
+
export interface IRunResponse {
|
|
8
|
+
error?: any;
|
|
9
|
+
result?: any;
|
|
10
|
+
}
|
|
11
|
+
declare const UserCodeRunner: {
|
|
12
|
+
run({ argsArray, thisArg, fn, timeoutInMilliseconds, }: IRunRequest): Promise<IRunResponse>;
|
|
13
|
+
};
|
|
14
|
+
export default UserCodeRunner;
|
package/lib/user_code_runner.js
CHANGED
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
"use strict";
|
|
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 time_1 = require("./time");
|
|
7
|
-
const uncaught_exception_manager_1 = __importDefault(require("./uncaught_exception_manager"));
|
|
8
|
-
const util_1 = __importDefault(require("util"));
|
|
9
|
-
const value_checker_1 = require("./value_checker");
|
|
10
|
-
const UserCodeRunner = {
|
|
11
|
-
async run({ argsArray, thisArg, fn, timeoutInMilliseconds, }) {
|
|
12
|
-
const callbackPromise = new Promise((resolve, reject) => {
|
|
13
|
-
argsArray.push((error, result) => {
|
|
14
|
-
if ((0, value_checker_1.doesHaveValue)(error)) {
|
|
15
|
-
reject(error);
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
resolve(result);
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
let fnReturn;
|
|
23
|
-
try {
|
|
24
|
-
fnReturn = fn.apply(thisArg, argsArray);
|
|
25
|
-
}
|
|
26
|
-
catch (e) {
|
|
27
|
-
const error = e instanceof Error ? e : util_1.default.format(e);
|
|
28
|
-
return { error };
|
|
29
|
-
}
|
|
30
|
-
const racingPromises = [];
|
|
31
|
-
const callbackInterface = fn.length === argsArray.length;
|
|
32
|
-
const promiseInterface = (0, value_checker_1.doesHaveValue)(fnReturn) && typeof fnReturn.then === 'function';
|
|
33
|
-
if (callbackInterface && promiseInterface) {
|
|
34
|
-
return {
|
|
35
|
-
error: new Error('function uses multiple asynchronous interfaces: callback and promise\n' +
|
|
36
|
-
'to use the callback interface: do not return a promise\n' +
|
|
37
|
-
'to use the promise interface: remove the last argument to the function'),
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
else if (callbackInterface) {
|
|
41
|
-
racingPromises.push(callbackPromise);
|
|
42
|
-
}
|
|
43
|
-
else if (promiseInterface) {
|
|
44
|
-
racingPromises.push(fnReturn);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
return { result: fnReturn };
|
|
48
|
-
}
|
|
49
|
-
let exceptionHandler;
|
|
50
|
-
const uncaughtExceptionPromise = new Promise((resolve, reject) => {
|
|
51
|
-
exceptionHandler = reject;
|
|
52
|
-
uncaught_exception_manager_1.default.registerHandler(exceptionHandler);
|
|
53
|
-
});
|
|
54
|
-
racingPromises.push(uncaughtExceptionPromise);
|
|
55
|
-
let finalPromise = Promise.race(racingPromises);
|
|
56
|
-
if (timeoutInMilliseconds >= 0) {
|
|
57
|
-
const timeoutMessage = 'function timed out, ensure the ' +
|
|
58
|
-
(callbackInterface ? 'callback is executed' : 'promise resolves') +
|
|
59
|
-
` within ${timeoutInMilliseconds.toString()} milliseconds`;
|
|
60
|
-
finalPromise = (0, time_1.wrapPromiseWithTimeout)(finalPromise, timeoutInMilliseconds, timeoutMessage);
|
|
61
|
-
}
|
|
62
|
-
let error, result;
|
|
63
|
-
try {
|
|
64
|
-
result = await finalPromise;
|
|
65
|
-
}
|
|
66
|
-
catch (e) {
|
|
67
|
-
if (e instanceof Error) {
|
|
68
|
-
error = e;
|
|
69
|
-
}
|
|
70
|
-
else if ((0, value_checker_1.doesHaveValue)(e)) {
|
|
71
|
-
error = util_1.default.format(e);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
error = new Error('Promise rejected without a reason');
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
uncaught_exception_manager_1.default.unregisterHandler(exceptionHandler);
|
|
78
|
-
return { error, result };
|
|
79
|
-
},
|
|
80
|
-
};
|
|
81
|
-
exports.default = UserCodeRunner;
|
|
1
|
+
"use strict";
|
|
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 time_1 = require("./time");
|
|
7
|
+
const uncaught_exception_manager_1 = __importDefault(require("./uncaught_exception_manager"));
|
|
8
|
+
const util_1 = __importDefault(require("util"));
|
|
9
|
+
const value_checker_1 = require("./value_checker");
|
|
10
|
+
const UserCodeRunner = {
|
|
11
|
+
async run({ argsArray, thisArg, fn, timeoutInMilliseconds, }) {
|
|
12
|
+
const callbackPromise = new Promise((resolve, reject) => {
|
|
13
|
+
argsArray.push((error, result) => {
|
|
14
|
+
if ((0, value_checker_1.doesHaveValue)(error)) {
|
|
15
|
+
reject(error);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
resolve(result);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
let fnReturn;
|
|
23
|
+
try {
|
|
24
|
+
fnReturn = fn.apply(thisArg, argsArray);
|
|
25
|
+
}
|
|
26
|
+
catch (e) {
|
|
27
|
+
const error = e instanceof Error ? e : util_1.default.format(e);
|
|
28
|
+
return { error };
|
|
29
|
+
}
|
|
30
|
+
const racingPromises = [];
|
|
31
|
+
const callbackInterface = fn.length === argsArray.length;
|
|
32
|
+
const promiseInterface = (0, value_checker_1.doesHaveValue)(fnReturn) && typeof fnReturn.then === 'function';
|
|
33
|
+
if (callbackInterface && promiseInterface) {
|
|
34
|
+
return {
|
|
35
|
+
error: new Error('function uses multiple asynchronous interfaces: callback and promise\n' +
|
|
36
|
+
'to use the callback interface: do not return a promise\n' +
|
|
37
|
+
'to use the promise interface: remove the last argument to the function'),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
else if (callbackInterface) {
|
|
41
|
+
racingPromises.push(callbackPromise);
|
|
42
|
+
}
|
|
43
|
+
else if (promiseInterface) {
|
|
44
|
+
racingPromises.push(fnReturn);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
return { result: fnReturn };
|
|
48
|
+
}
|
|
49
|
+
let exceptionHandler;
|
|
50
|
+
const uncaughtExceptionPromise = new Promise((resolve, reject) => {
|
|
51
|
+
exceptionHandler = reject;
|
|
52
|
+
uncaught_exception_manager_1.default.registerHandler(exceptionHandler);
|
|
53
|
+
});
|
|
54
|
+
racingPromises.push(uncaughtExceptionPromise);
|
|
55
|
+
let finalPromise = Promise.race(racingPromises);
|
|
56
|
+
if (timeoutInMilliseconds >= 0) {
|
|
57
|
+
const timeoutMessage = 'function timed out, ensure the ' +
|
|
58
|
+
(callbackInterface ? 'callback is executed' : 'promise resolves') +
|
|
59
|
+
` within ${timeoutInMilliseconds.toString()} milliseconds`;
|
|
60
|
+
finalPromise = (0, time_1.wrapPromiseWithTimeout)(finalPromise, timeoutInMilliseconds, timeoutMessage);
|
|
61
|
+
}
|
|
62
|
+
let error, result;
|
|
63
|
+
try {
|
|
64
|
+
result = await finalPromise;
|
|
65
|
+
}
|
|
66
|
+
catch (e) {
|
|
67
|
+
if (e instanceof Error) {
|
|
68
|
+
error = e;
|
|
69
|
+
}
|
|
70
|
+
else if ((0, value_checker_1.doesHaveValue)(e)) {
|
|
71
|
+
error = util_1.default.format(e);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
error = new Error('Promise rejected without a reason');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
uncaught_exception_manager_1.default.unregisterHandler(exceptionHandler);
|
|
78
|
+
return { error, result };
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
exports.default = UserCodeRunner;
|
|
82
82
|
//# sourceMappingURL=user_code_runner.js.map
|
package/lib/value_checker.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare function doesHaveValue<T>(value: T): boolean;
|
|
2
|
-
export declare function doesNotHaveValue<T>(value: T): boolean;
|
|
3
|
-
export declare function valueOrDefault<T>(value: T, defaultValue: T): T;
|
|
1
|
+
export declare function doesHaveValue<T>(value: T): boolean;
|
|
2
|
+
export declare function doesNotHaveValue<T>(value: T): boolean;
|
|
3
|
+
export declare function valueOrDefault<T>(value: T, defaultValue: T): T;
|
package/lib/value_checker.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.valueOrDefault = exports.doesNotHaveValue = exports.doesHaveValue = void 0;
|
|
4
|
-
function doesHaveValue(value) {
|
|
5
|
-
return !doesNotHaveValue(value);
|
|
6
|
-
}
|
|
7
|
-
exports.doesHaveValue = doesHaveValue;
|
|
8
|
-
function doesNotHaveValue(value) {
|
|
9
|
-
return value === null || value === undefined;
|
|
10
|
-
}
|
|
11
|
-
exports.doesNotHaveValue = doesNotHaveValue;
|
|
12
|
-
function valueOrDefault(value, defaultValue) {
|
|
13
|
-
if (doesHaveValue(value)) {
|
|
14
|
-
return value;
|
|
15
|
-
}
|
|
16
|
-
return defaultValue;
|
|
17
|
-
}
|
|
18
|
-
exports.valueOrDefault = valueOrDefault;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.valueOrDefault = exports.doesNotHaveValue = exports.doesHaveValue = void 0;
|
|
4
|
+
function doesHaveValue(value) {
|
|
5
|
+
return !doesNotHaveValue(value);
|
|
6
|
+
}
|
|
7
|
+
exports.doesHaveValue = doesHaveValue;
|
|
8
|
+
function doesNotHaveValue(value) {
|
|
9
|
+
return value === null || value === undefined;
|
|
10
|
+
}
|
|
11
|
+
exports.doesNotHaveValue = doesNotHaveValue;
|
|
12
|
+
function valueOrDefault(value, defaultValue) {
|
|
13
|
+
if (doesHaveValue(value)) {
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
return defaultValue;
|
|
17
|
+
}
|
|
18
|
+
exports.valueOrDefault = valueOrDefault;
|
|
19
19
|
//# sourceMappingURL=value_checker.js.map
|
package/lib/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "1.0.
|
|
1
|
+
export declare const version = "1.0.8";
|
package/lib/version.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.version = void 0;
|
|
4
|
-
// Generated by genversion.
|
|
5
|
-
exports.version = '1.0.
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.version = void 0;
|
|
4
|
+
// Generated by genversion.
|
|
5
|
+
exports.version = '1.0.8';
|
|
6
6
|
//# sourceMappingURL=version.js.map
|
package/lib/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAA,2BAA2B;AACd,QAAA,OAAO,GAAG,OAAO,CAAA","sourcesContent":["// Generated by genversion.\nexport const version = '1.0.
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAA,2BAA2B;AACd,QAAA,OAAO,GAAG,OAAO,CAAA","sourcesContent":["// Generated by genversion.\nexport const version = '1.0.8'\n"]}
|
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"gherkin",
|
|
9
9
|
"tests"
|
|
10
10
|
],
|
|
11
|
-
"version": "1.0.
|
|
11
|
+
"version": "1.0.8",
|
|
12
12
|
"homepage": "https://github.com/blinq-io/cucumber-js",
|
|
13
13
|
"author": "blinq.io",
|
|
14
14
|
"contributors": [
|
|
@@ -169,7 +169,7 @@
|
|
|
169
169
|
"prelint-code": "npm run build-local",
|
|
170
170
|
"precck-test": "npm run build-local",
|
|
171
171
|
"prefeature-test": "npm run build-local",
|
|
172
|
-
"prepublishOnly": "rm -rf lib && npm run build-local",
|
|
172
|
+
"prepublishOnly": "shx rm -rf lib && npm run build-local",
|
|
173
173
|
"pretest-coverage": "npm run build-local",
|
|
174
174
|
"pretypes-test": "npm run build-local",
|
|
175
175
|
"test-coverage": "nyc --silent mocha 'src/**/*_spec.ts' 'compatibility/**/*_spec.ts' && nyc --silent --no-clean node bin/cucumber.js --tags \"not @source-mapping\" && nyc report --reporter=lcov",
|