@dev-blinq/cucumber-js 1.0.36 → 1.0.38

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.
Files changed (239) hide show
  1. package/bin/cucumber-js +0 -0
  2. package/bin/cucumber.js +0 -0
  3. package/lib/api/console_logger.d.ts +12 -12
  4. package/lib/api/console_logger.js +23 -23
  5. package/lib/api/convert_configuration.d.ts +4 -4
  6. package/lib/api/convert_configuration.js +65 -65
  7. package/lib/api/environment.d.ts +2 -2
  8. package/lib/api/environment.js +13 -13
  9. package/lib/api/formatters.d.ts +20 -20
  10. package/lib/api/formatters.js +60 -60
  11. package/lib/api/gherkin.d.ts +21 -21
  12. package/lib/api/gherkin.js +99 -99
  13. package/lib/api/index.d.ts +12 -12
  14. package/lib/api/index.js +27 -27
  15. package/lib/api/load_configuration.d.ts +9 -9
  16. package/lib/api/load_configuration.js +40 -40
  17. package/lib/api/load_sources.d.ts +9 -9
  18. package/lib/api/load_sources.js +52 -52
  19. package/lib/api/load_support.d.ts +10 -10
  20. package/lib/api/load_support.js +29 -29
  21. package/lib/api/paths.d.ts +8 -8
  22. package/lib/api/paths.js +101 -101
  23. package/lib/api/plugins.d.ts +4 -4
  24. package/lib/api/plugins.js +18 -18
  25. package/lib/api/run_cucumber.d.ts +11 -11
  26. package/lib/api/run_cucumber.js +114 -114
  27. package/lib/api/runtime.d.ts +21 -21
  28. package/lib/api/runtime.js +35 -35
  29. package/lib/api/support.d.ts +9 -9
  30. package/lib/api/support.js +25 -25
  31. package/lib/api/test_helpers.d.ts +3 -3
  32. package/lib/api/test_helpers.js +30 -30
  33. package/lib/api/types.d.ts +177 -177
  34. package/lib/api/types.js +2 -2
  35. package/lib/cli/helpers.d.ts +39 -39
  36. package/lib/cli/helpers.js +223 -223
  37. package/lib/cli/i18n.d.ts +2 -2
  38. package/lib/cli/i18n.js +69 -69
  39. package/lib/cli/index.d.ts +21 -21
  40. package/lib/cli/index.js +63 -63
  41. package/lib/cli/install_validator.d.ts +1 -1
  42. package/lib/cli/install_validator.js +13 -13
  43. package/lib/cli/run.d.ts +1 -1
  44. package/lib/cli/run.js +43 -43
  45. package/lib/cli/validate_node_engine_version.d.ts +10 -10
  46. package/lib/cli/validate_node_engine_version.js +23 -23
  47. package/lib/configuration/argv_parser.d.ts +20 -20
  48. package/lib/configuration/argv_parser.js +102 -102
  49. package/lib/configuration/check_schema.d.ts +2 -2
  50. package/lib/configuration/check_schema.js +59 -59
  51. package/lib/configuration/default_configuration.d.ts +2 -2
  52. package/lib/configuration/default_configuration.js +28 -28
  53. package/lib/configuration/from_file.d.ts +3 -3
  54. package/lib/configuration/from_file.js +84 -84
  55. package/lib/configuration/helpers.d.ts +1 -1
  56. package/lib/configuration/helpers.js +10 -10
  57. package/lib/configuration/index.d.ts +7 -7
  58. package/lib/configuration/index.js +28 -28
  59. package/lib/configuration/locate_file.d.ts +1 -1
  60. package/lib/configuration/locate_file.js +20 -20
  61. package/lib/configuration/merge_configurations.d.ts +2 -2
  62. package/lib/configuration/merge_configurations.js +47 -47
  63. package/lib/configuration/option_splitter.d.ts +3 -3
  64. package/lib/configuration/option_splitter.js +22 -22
  65. package/lib/configuration/types.d.ts +30 -30
  66. package/lib/configuration/types.js +2 -2
  67. package/lib/configuration/validate_configuration.d.ts +3 -3
  68. package/lib/configuration/validate_configuration.js +12 -12
  69. package/lib/filter_stack_trace.d.ts +3 -3
  70. package/lib/filter_stack_trace.js +37 -37
  71. package/lib/formatter/builder.d.ts +37 -37
  72. package/lib/formatter/builder.js +100 -100
  73. package/lib/formatter/bvt_analysis_formatter.d.ts +18 -18
  74. package/lib/formatter/bvt_analysis_formatter.js +192 -192
  75. package/lib/formatter/feature_data_format.d.ts +14 -14
  76. package/lib/formatter/feature_data_format.js +80 -80
  77. package/lib/formatter/fixtures/typescript.d.ts +2 -2
  78. package/lib/formatter/fixtures/typescript.js +5 -5
  79. package/lib/formatter/get_color_fns.d.ts +15 -15
  80. package/lib/formatter/get_color_fns.js +55 -55
  81. package/lib/formatter/helpers/duration_helpers.d.ts +2 -2
  82. package/lib/formatter/helpers/duration_helpers.js +8 -8
  83. package/lib/formatter/helpers/event_data_collector.d.ts +30 -30
  84. package/lib/formatter/helpers/event_data_collector.js +125 -125
  85. package/lib/formatter/helpers/formatters.d.ts +6 -6
  86. package/lib/formatter/helpers/formatters.js +44 -44
  87. package/lib/formatter/helpers/gherkin_document_parser.d.ts +5 -5
  88. package/lib/formatter/helpers/gherkin_document_parser.js +65 -65
  89. package/lib/formatter/helpers/index.d.ts +10 -10
  90. package/lib/formatter/helpers/index.js +51 -51
  91. package/lib/formatter/helpers/issue_helpers.d.ts +19 -19
  92. package/lib/formatter/helpers/issue_helpers.js +58 -58
  93. package/lib/formatter/helpers/keyword_type.d.ts +11 -11
  94. package/lib/formatter/helpers/keyword_type.js +31 -31
  95. package/lib/formatter/helpers/location_helpers.d.ts +2 -2
  96. package/lib/formatter/helpers/location_helpers.js +16 -16
  97. package/lib/formatter/helpers/pickle_parser.d.ts +17 -17
  98. package/lib/formatter/helpers/pickle_parser.js +27 -27
  99. package/lib/formatter/helpers/report_generator.d.ts +107 -103
  100. package/lib/formatter/helpers/report_generator.js +310 -247
  101. package/lib/formatter/helpers/report_generator.js.map +1 -1
  102. package/lib/formatter/helpers/step_argument_formatter.d.ts +2 -2
  103. package/lib/formatter/helpers/step_argument_formatter.js +47 -47
  104. package/lib/formatter/helpers/summary_helpers.d.ts +9 -9
  105. package/lib/formatter/helpers/summary_helpers.js +95 -95
  106. package/lib/formatter/helpers/test_case_attempt_formatter.d.ts +12 -12
  107. package/lib/formatter/helpers/test_case_attempt_formatter.js +113 -113
  108. package/lib/formatter/helpers/test_case_attempt_parser.d.ts +32 -32
  109. package/lib/formatter/helpers/test_case_attempt_parser.js +134 -134
  110. package/lib/formatter/helpers/upload_serivce.d.ts +9 -9
  111. package/lib/formatter/helpers/upload_serivce.js +46 -46
  112. package/lib/formatter/helpers/uploader.d.ts +11 -11
  113. package/lib/formatter/helpers/uploader.js +56 -56
  114. package/lib/formatter/helpers/usage_helpers/index.d.ts +23 -23
  115. package/lib/formatter/helpers/usage_helpers/index.js +110 -110
  116. package/lib/formatter/html_formatter.d.ts +7 -7
  117. package/lib/formatter/html_formatter.js +29 -29
  118. package/lib/formatter/index.d.ts +53 -53
  119. package/lib/formatter/index.js +20 -20
  120. package/lib/formatter/json_formatter.d.ts +78 -78
  121. package/lib/formatter/json_formatter.js +229 -229
  122. package/lib/formatter/junit_formatter.d.ts +17 -17
  123. package/lib/formatter/junit_formatter.js +180 -180
  124. package/lib/formatter/message_formatter.d.ts +5 -5
  125. package/lib/formatter/message_formatter.js +14 -14
  126. package/lib/formatter/progress_bar_formatter.d.ts +18 -18
  127. package/lib/formatter/progress_bar_formatter.js +98 -98
  128. package/lib/formatter/progress_formatter.d.ts +9 -9
  129. package/lib/formatter/progress_formatter.js +58 -58
  130. package/lib/formatter/rerun_formatter.d.ts +13 -13
  131. package/lib/formatter/rerun_formatter.js +79 -79
  132. package/lib/formatter/snippets_formatter.d.ts +6 -6
  133. package/lib/formatter/snippets_formatter.js +60 -60
  134. package/lib/formatter/step_definition_snippet_builder/index.d.ts +20 -20
  135. package/lib/formatter/step_definition_snippet_builder/index.js +45 -45
  136. package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.d.ts +7 -7
  137. package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.js +45 -45
  138. package/lib/formatter/step_definition_snippet_builder/snippet_syntax.d.ts +16 -16
  139. package/lib/formatter/step_definition_snippet_builder/snippet_syntax.js +10 -10
  140. package/lib/formatter/summary_formatter.d.ts +14 -14
  141. package/lib/formatter/summary_formatter.js +67 -67
  142. package/lib/formatter/usage_formatter.d.ts +6 -6
  143. package/lib/formatter/usage_formatter.js +97 -97
  144. package/lib/formatter/usage_json_formatter.d.ts +7 -7
  145. package/lib/formatter/usage_json_formatter.js +33 -33
  146. package/lib/index.d.ts +58 -58
  147. package/lib/index.js +108 -108
  148. package/lib/logger.d.ts +5 -5
  149. package/lib/logger.js +2 -2
  150. package/lib/models/data_table.d.ts +10 -10
  151. package/lib/models/data_table.js +45 -45
  152. package/lib/models/definition.d.ts +55 -55
  153. package/lib/models/definition.js +21 -21
  154. package/lib/models/gherkin_step_keyword.d.ts +1 -1
  155. package/lib/models/gherkin_step_keyword.js +2 -2
  156. package/lib/models/pickle_order.d.ts +1 -1
  157. package/lib/models/pickle_order.js +2 -2
  158. package/lib/models/step_definition.d.ts +11 -11
  159. package/lib/models/step_definition.js +36 -36
  160. package/lib/models/test_case_hook_definition.d.ts +10 -10
  161. package/lib/models/test_case_hook_definition.js +26 -26
  162. package/lib/models/test_run_hook_definition.d.ts +3 -3
  163. package/lib/models/test_run_hook_definition.js +9 -9
  164. package/lib/models/test_step_hook_definition.d.ts +9 -9
  165. package/lib/models/test_step_hook_definition.js +25 -25
  166. package/lib/pickle_filter.d.ts +42 -42
  167. package/lib/pickle_filter.js +98 -98
  168. package/lib/plugin/index.d.ts +2 -2
  169. package/lib/plugin/index.js +18 -18
  170. package/lib/plugin/plugin_manager.d.ts +13 -13
  171. package/lib/plugin/plugin_manager.js +35 -35
  172. package/lib/plugin/types.d.ts +14 -14
  173. package/lib/plugin/types.js +2 -2
  174. package/lib/publish/http_stream.d.ts +30 -30
  175. package/lib/publish/http_stream.js +111 -111
  176. package/lib/publish/index.d.ts +2 -2
  177. package/lib/publish/index.js +4 -4
  178. package/lib/publish/publish_plugin.d.ts +2 -2
  179. package/lib/publish/publish_plugin.js +47 -47
  180. package/lib/runtime/assemble_test_cases.d.ts +13 -13
  181. package/lib/runtime/assemble_test_cases.js +87 -87
  182. package/lib/runtime/attachment_manager/index.d.ts +33 -33
  183. package/lib/runtime/attachment_manager/index.js +118 -118
  184. package/lib/runtime/format_error.d.ts +2 -2
  185. package/lib/runtime/format_error.js +35 -35
  186. package/lib/runtime/helpers.d.ts +6 -6
  187. package/lib/runtime/helpers.js +100 -100
  188. package/lib/runtime/index.d.ts +40 -40
  189. package/lib/runtime/index.js +75 -75
  190. package/lib/runtime/parallel/command_types.d.ts +32 -32
  191. package/lib/runtime/parallel/command_types.js +2 -2
  192. package/lib/runtime/parallel/coordinator.d.ts +72 -72
  193. package/lib/runtime/parallel/coordinator.js +221 -221
  194. package/lib/runtime/parallel/run_worker.d.ts +1 -1
  195. package/lib/runtime/parallel/run_worker.js +28 -28
  196. package/lib/runtime/parallel/worker.d.ts +26 -26
  197. package/lib/runtime/parallel/worker.js +86 -86
  198. package/lib/runtime/run_test_run_hooks.d.ts +3 -3
  199. package/lib/runtime/run_test_run_hooks.js +27 -27
  200. package/lib/runtime/step_runner.d.ts +16 -16
  201. package/lib/runtime/step_runner.js +87 -87
  202. package/lib/runtime/stopwatch.d.ts +12 -12
  203. package/lib/runtime/stopwatch.js +33 -33
  204. package/lib/runtime/test_case_runner.d.ts +54 -54
  205. package/lib/runtime/test_case_runner.js +267 -267
  206. package/lib/step_arguments.d.ts +6 -6
  207. package/lib/step_arguments.js +18 -18
  208. package/lib/support_code_library_builder/build_parameter_type.d.ts +3 -3
  209. package/lib/support_code_library_builder/build_parameter_type.js +12 -12
  210. package/lib/support_code_library_builder/get_definition_line_and_uri.d.ts +3 -3
  211. package/lib/support_code_library_builder/get_definition_line_and_uri.js +28 -28
  212. package/lib/support_code_library_builder/index.d.ts +74 -74
  213. package/lib/support_code_library_builder/index.js +296 -296
  214. package/lib/support_code_library_builder/parallel_can_assign_helpers.d.ts +2 -2
  215. package/lib/support_code_library_builder/parallel_can_assign_helpers.js +15 -15
  216. package/lib/support_code_library_builder/sourced_parameter_type_registry.d.ts +7 -7
  217. package/lib/support_code_library_builder/sourced_parameter_type_registry.js +18 -18
  218. package/lib/support_code_library_builder/types.d.ts +88 -88
  219. package/lib/support_code_library_builder/types.js +2 -2
  220. package/lib/support_code_library_builder/validate_arguments.d.ts +12 -12
  221. package/lib/support_code_library_builder/validate_arguments.js +72 -72
  222. package/lib/support_code_library_builder/world.d.ts +18 -18
  223. package/lib/support_code_library_builder/world.js +10 -10
  224. package/lib/time.d.ts +18 -18
  225. package/lib/time.js +60 -60
  226. package/lib/try_require.d.ts +7 -7
  227. package/lib/try_require.js +22 -22
  228. package/lib/types/index.d.ts +4 -4
  229. package/lib/types/index.js +2 -2
  230. package/lib/uncaught_exception_manager.d.ts +7 -7
  231. package/lib/uncaught_exception_manager.js +11 -11
  232. package/lib/user_code_runner.d.ts +14 -14
  233. package/lib/user_code_runner.js +81 -81
  234. package/lib/value_checker.d.ts +3 -3
  235. package/lib/value_checker.js +18 -18
  236. package/lib/version.d.ts +1 -1
  237. package/lib/version.js +5 -5
  238. package/lib/version.js.map +1 -1
  239. package/package.json +1 -1
@@ -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
@@ -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
+ }
@@ -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;
@@ -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
@@ -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;
@@ -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.36";
1
+ export declare const version = "1.0.38";
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.36';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.version = void 0;
4
+ // Generated by genversion.
5
+ exports.version = '1.0.38';
6
6
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAA,2BAA2B;AACd,QAAA,OAAO,GAAG,QAAQ,CAAA","sourcesContent":["// Generated by genversion.\nexport const version = '1.0.36'\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAA,2BAA2B;AACd,QAAA,OAAO,GAAG,QAAQ,CAAA","sourcesContent":["// Generated by genversion.\nexport const version = '1.0.38'\n"]}
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "gherkin",
9
9
  "tests"
10
10
  ],
11
- "version": "1.0.36",
11
+ "version": "1.0.38",
12
12
  "homepage": "https://github.com/blinq-io/cucumber-js",
13
13
  "author": "blinq.io",
14
14
  "contributors": [