@jsenv/core 27.0.0-alpha.2 → 27.0.0-alpha.20
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/main.js +4 -0
- package/package.json +16 -12
- package/readme.md +4 -12
- package/src/build/build.js +512 -304
- package/src/build/build_urls_generator.js +33 -21
- package/src/build/graph_utils.js +31 -0
- package/src/build/{inject_version_mappings.js → inject_global_version_mappings.js} +33 -15
- package/src/build/inject_service_worker_urls.js +79 -0
- package/src/build/resync_ressource_hints.js +83 -0
- package/src/build/start_build_server.js +188 -0
- package/src/dev/plugins/explorer/jsenv_plugin_explorer.js +2 -2
- package/src/dev/plugins/toolbar/jsenv_plugin_toolbar.js +3 -1
- package/src/dev/start_dev_server.js +19 -22
- package/src/execute/execute.js +23 -4
- package/src/execute/run.js +17 -54
- package/src/execute/runtimes/browsers/from_playwright.js +167 -146
- package/src/execute/runtimes/node/node_process.js +281 -37
- package/src/omega/{runtime_support/default_runtime_support.js → compat/default_runtime_compat.js} +3 -5
- package/src/omega/{runtime_support/features_compatibility.js → compat/features_compats.js} +66 -4
- package/src/omega/compat/runtime_compat.js +50 -0
- package/src/omega/errors.js +51 -58
- package/src/omega/fetched_content_compliance.js +24 -0
- package/src/omega/file_url_converter.js +8 -50
- package/src/omega/kitchen.js +405 -286
- package/src/omega/server/file_service.js +9 -11
- package/src/omega/url_graph/url_graph_load.js +14 -7
- package/src/omega/url_graph/url_graph_report.js +7 -5
- package/src/omega/url_graph.js +22 -9
- package/src/omega/web_workers.js +42 -0
- package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/autoreload_preference.js +0 -0
- package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/event_source_client.js +2 -2
- package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/reload.js +0 -0
- package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/url_helpers.js +0 -0
- package/src/plugins/autoreload/dev_sse/jsenv_plugin_dev_sse_client.js +41 -0
- package/src/{dev/plugins/autoreload/jsenv_plugin_autoreload.js → plugins/autoreload/dev_sse/jsenv_plugin_dev_sse_server.js} +27 -168
- package/src/plugins/autoreload/jsenv_plugin_autoreload.js +25 -0
- package/src/plugins/autoreload/jsenv_plugin_hmr.js +35 -0
- package/src/plugins/bundling/css/bundle_css.js +21 -0
- package/src/plugins/bundling/js_classic_workers/bundle_js_classic_workers.js +13 -0
- package/src/{build/plugins/bundle_js_module/jsenv_plugin_bundle_js_module.js → plugins/bundling/js_module/bundle_js_module.js} +105 -78
- package/src/plugins/bundling/jsenv_plugin_bundling.js +51 -0
- package/src/{omega/core_plugins → plugins}/commonjs_globals/jsenv_plugin_commonjs_globals.js +48 -41
- package/src/plugins/file_urls/jsenv_plugin_file_urls.js +66 -0
- package/src/{omega/core_plugins → plugins}/filesystem_magic/jsenv_plugin_filesystem_magic.js +7 -4
- package/src/{omega/core_plugins → plugins}/html_supervisor/client/error_in_document.js +0 -0
- package/src/{omega/core_plugins → plugins}/html_supervisor/client/error_in_notification.js +0 -0
- package/src/{omega/core_plugins → plugins}/html_supervisor/client/html_supervisor_installer.js +3 -2
- package/src/{omega/core_plugins → plugins}/html_supervisor/client/html_supervisor_setup.js +0 -0
- package/src/{omega/core_plugins → plugins}/html_supervisor/client/perf_browser.js +0 -0
- package/src/{omega/core_plugins → plugins}/html_supervisor/client/uneval_exception.js +0 -0
- package/src/{omega/core_plugins → plugins}/html_supervisor/jsenv_plugin_html_supervisor.js +38 -46
- package/src/plugins/http_urls/jsenv_plugin_http_urls.js +12 -0
- package/src/{dev/plugins/autoreload → plugins/import_meta_hot}/babel_plugin_metadata_import_meta_hot.js +4 -5
- package/src/{dev/plugins/autoreload → plugins/import_meta_hot}/client/import_meta_hot.js +3 -1
- package/src/{dev/plugins/autoreload → plugins/import_meta_hot}/html_hot_dependencies.js +2 -2
- package/src/plugins/import_meta_hot/jsenv_plugin_import_meta_hot.js +98 -0
- package/src/{omega/core_plugins → plugins}/import_meta_scenarios/jsenv_plugin_import_meta_scenarios.js +41 -13
- package/src/plugins/import_meta_url/client/import_meta_url_browser.js +52 -0
- package/src/plugins/import_meta_url/client/import_meta_url_commonjs.mjs +9 -0
- package/src/{omega/core_plugins → plugins}/importmap/jsenv_plugin_importmap.js +37 -31
- package/src/plugins/inject_globals/jsenv_plugin_inject_globals.js +25 -0
- package/src/{omega/core_plugins → plugins}/inline/client/inline_content.js +0 -0
- package/src/{omega/core_plugins → plugins}/inline/jsenv_plugin_data_urls.js +18 -14
- package/src/{omega/core_plugins/inline/jsenv_plugin_js_and_css_inside_html.js → plugins/inline/jsenv_plugin_html_inline_content.js} +61 -40
- package/src/plugins/inline/jsenv_plugin_inline.js +36 -0
- package/src/{omega/core_plugins → plugins}/inline/jsenv_plugin_inline_query_param.js +6 -6
- package/src/plugins/inline/jsenv_plugin_js_inline_content.js +263 -0
- package/src/plugins/leading_slash/jsenv_plugin_leading_slash.js +13 -0
- package/src/plugins/minification/css/minify_css.js +9 -0
- package/src/plugins/minification/html/minify_html.js +15 -0
- package/src/{build/plugins/minify_js/jsenv_plugin_minify_js.js → plugins/minification/js/minify_js.js} +6 -22
- package/src/plugins/minification/jsenv_plugin_minification.js +78 -0
- package/src/plugins/minification/json/minify_json.js +8 -0
- package/src/{omega/core_plugins → plugins}/node_esm_resolution/jsenv_plugin_node_esm_resolution.js +15 -15
- package/src/{omega → plugins}/plugin_controller.js +18 -10
- package/src/plugins/plugins.js +73 -0
- package/src/plugins/transpilation/as_js_classic/client/s.js +808 -0
- package/src/plugins/transpilation/as_js_classic/client/s.js.md +1 -0
- package/src/plugins/transpilation/as_js_classic/helpers/babel_plugin_transform_import_meta_url.js +47 -0
- package/src/plugins/transpilation/as_js_classic/helpers/systemjs_old.js +43 -0
- package/src/plugins/transpilation/as_js_classic/jsenv_plugin_as_js_classic.js +191 -0
- package/src/plugins/transpilation/as_js_classic/jsenv_plugin_script_type_module_as_classic.js +156 -0
- package/src/plugins/transpilation/as_js_classic/jsenv_plugin_top_level_await.js +37 -0
- package/src/plugins/transpilation/as_js_classic/jsenv_plugin_workers_type_module_as_classic.js +133 -0
- package/src/{omega/core_plugins → plugins/transpilation}/babel/global_this/babel_plugin_global_this_as_jsenv_import.js +0 -0
- package/src/{omega/core_plugins → plugins/transpilation}/babel/global_this/client/global_this.js +0 -0
- package/src/{omega/core_plugins/babel/babel_helper → plugins/transpilation/babel/helpers}/babel_plugin_babel_helpers_as_jsenv_imports.js +1 -2
- package/src/plugins/transpilation/babel/helpers/babel_plugin_structure.js +158 -0
- package/src/{omega/core_plugins → plugins/transpilation}/babel/helpers/babel_plugins_compatibility.js +0 -0
- package/src/{omega/core_plugins → plugins/transpilation}/babel/jsenv_plugin_babel.js +38 -22
- package/src/{omega/core_plugins → plugins/transpilation}/babel/new_stylesheet/babel_plugin_new_stylesheet_as_jsenv_import.js +0 -0
- package/src/{omega/core_plugins → plugins/transpilation}/babel/new_stylesheet/client/.eslintrc.cjs +0 -0
- package/src/{omega/core_plugins → plugins/transpilation}/babel/new_stylesheet/client/new_stylesheet.js +0 -0
- package/src/{omega/core_plugins → plugins/transpilation}/babel/regenerator_runtime/babel_plugin_regenerator_runtime_as_jsenv_import.js +0 -0
- package/src/{omega/core_plugins → plugins/transpilation}/babel/regenerator_runtime/client/regenerator_runtime.js +0 -0
- package/src/plugins/transpilation/css_parcel/jsenv_plugin_css_parcel.js +18 -0
- package/src/{omega/core_plugins → plugins/transpilation}/import_assertions/helpers/babel_plugin_metadata_import_assertions.js +0 -0
- package/src/plugins/transpilation/import_assertions/jsenv_plugin_import_assertions.js +243 -0
- package/src/plugins/transpilation/jsenv_plugin_transpilation.js +40 -0
- package/src/plugins/url_references/css/css_urls.js +49 -0
- package/src/plugins/url_references/html/html_urls.js +273 -0
- package/src/plugins/url_references/js/js_urls.js +170 -0
- package/src/plugins/url_references/jsenv_plugin_url_references.js +18 -0
- package/src/plugins/url_references/webmanifest/webmanifest_urls.js +17 -0
- package/src/{omega/core_plugins → plugins}/url_resolution/jsenv_plugin_url_resolution.js +12 -5
- package/src/{omega/core_plugins → plugins}/url_version/jsenv_plugin_url_version.js +8 -8
- package/src/test/execute_plan.js +25 -11
- package/src/test/execute_test_plan.js +14 -1
- package/src/test/logs_file_execution.js +8 -7
- package/src/build/plugins/minify_html/jsenv_plugin_minify_html.js +0 -30
- package/src/dev/plugins/autoreload/client/event_source_connection.js +0 -195
- package/src/dev/plugins/autoreload/sse_service.js +0 -149
- package/src/execute/runtimes/node/controlled_process.js +0 -316
- package/src/omega/core_plugins/babel/babel_helper/babel_helper_directory.js +0 -29
- package/src/omega/core_plugins/babel/babel_helper/client/.eslintrc.cjs +0 -24
- package/src/omega/core_plugins/babel/babel_helper/client/AsyncGenerator/AsyncGenerator.js +0 -81
- package/src/omega/core_plugins/babel/babel_helper/client/AwaitValue/AwaitValue.js +0 -3
- package/src/omega/core_plugins/babel/babel_helper/client/applyDecoratorDescriptor/applyDecoratorDescriptor.js +0 -33
- package/src/omega/core_plugins/babel/babel_helper/client/arrayLikeToArray/arrayLikeToArray.js +0 -7
- package/src/omega/core_plugins/babel/babel_helper/client/arrayWithHoles/arrayWithHoles.js +0 -4
- package/src/omega/core_plugins/babel/babel_helper/client/arrayWithoutHoles/arrayWithoutHoles.js +0 -6
- package/src/omega/core_plugins/babel/babel_helper/client/assertThisInitialized/assertThisInitialized.js +0 -7
- package/src/omega/core_plugins/babel/babel_helper/client/asyncGeneratorDelegate/asyncGeneratorDelegate.js +0 -40
- package/src/omega/core_plugins/babel/babel_helper/client/asyncIterator/asyncIterator.js +0 -65
- package/src/omega/core_plugins/babel/babel_helper/client/asyncToGenerator/asyncToGenerator.js +0 -34
- package/src/omega/core_plugins/babel/babel_helper/client/awaitAsyncGenerator/awaitAsyncGenerator.js +0 -5
- package/src/omega/core_plugins/babel/babel_helper/client/classApplyDescriptorDestructureSet/classApplyDescriptorDestructureSet.js +0 -20
- package/src/omega/core_plugins/babel/babel_helper/client/classApplyDescriptorGet/classApplyDescriptorGet.js +0 -6
- package/src/omega/core_plugins/babel/babel_helper/client/classApplyDescriptorSet/classApplyDescriptorSet.js +0 -13
- package/src/omega/core_plugins/babel/babel_helper/client/classCallCheck/classCallCheck.js +0 -5
- package/src/omega/core_plugins/babel/babel_helper/client/classCheckPrivateStaticAccess/classCheckPrivateStaticAccess.js +0 -5
- package/src/omega/core_plugins/babel/babel_helper/client/classCheckPrivateStaticFieldDescriptor/classCheckPrivateStaticFieldDescriptor.js +0 -6
- package/src/omega/core_plugins/babel/babel_helper/client/classExtractFieldDescriptor/classExtractFieldDescriptor.js +0 -7
- package/src/omega/core_plugins/babel/babel_helper/client/classNameTDZError/classNameTDZError.js +0 -4
- package/src/omega/core_plugins/babel/babel_helper/client/classPrivateFieldDestructureSet/classPrivateFieldDestructureSet.js +0 -7
- package/src/omega/core_plugins/babel/babel_helper/client/classPrivateFieldGet/classPrivateFieldGet.js +0 -7
- package/src/omega/core_plugins/babel/babel_helper/client/classPrivateFieldLooseBase/classPrivateFieldLooseBase.js +0 -6
- package/src/omega/core_plugins/babel/babel_helper/client/classPrivateFieldLooseKey/classPrivateFieldLooseKey.js +0 -5
- package/src/omega/core_plugins/babel/babel_helper/client/classPrivateFieldSet/classPrivateFieldSet.js +0 -8
- package/src/omega/core_plugins/babel/babel_helper/client/classPrivateMethodGet/classPrivateMethodGet.js +0 -6
- package/src/omega/core_plugins/babel/babel_helper/client/classPrivateMethodSet/classPrivateMethodSet.js +0 -3
- package/src/omega/core_plugins/babel/babel_helper/client/classStaticPrivateFieldSpecGet/classStaticPrivateFieldSpecGet.js +0 -9
- package/src/omega/core_plugins/babel/babel_helper/client/classStaticPrivateFieldSpecSet/classStaticPrivateFieldSpecSet.js +0 -15
- package/src/omega/core_plugins/babel/babel_helper/client/classStaticPrivateMethodGet/classStaticPrivateMethodGet.js +0 -6
- package/src/omega/core_plugins/babel/babel_helper/client/classStaticPrivateMethodSet/classStaticPrivateMethodSet.js +0 -3
- package/src/omega/core_plugins/babel/babel_helper/client/construct/construct.js +0 -16
- package/src/omega/core_plugins/babel/babel_helper/client/createClass/createClass.js +0 -15
- package/src/omega/core_plugins/babel/babel_helper/client/createForOfIteratorHelper/createForOfIteratorHelper.js +0 -60
- package/src/omega/core_plugins/babel/babel_helper/client/createForOfIteratorHelperLoose/createForOfIteratorHelperLoose.js +0 -23
- package/src/omega/core_plugins/babel/babel_helper/client/createRawReactElement/createRawReactElement.js +0 -50
- package/src/omega/core_plugins/babel/babel_helper/client/createSuper/createSuper.js +0 -22
- package/src/omega/core_plugins/babel/babel_helper/client/decorate/decorate.js +0 -403
- package/src/omega/core_plugins/babel/babel_helper/client/defaults/defaults.js +0 -11
- package/src/omega/core_plugins/babel/babel_helper/client/defineEnumerableProperties/defineEnumerableProperties.js +0 -23
- package/src/omega/core_plugins/babel/babel_helper/client/defineProperty/defineProperty.js +0 -18
- package/src/omega/core_plugins/babel/babel_helper/client/extends/extends.js +0 -14
- package/src/omega/core_plugins/babel/babel_helper/client/get/get.js +0 -19
- package/src/omega/core_plugins/babel/babel_helper/client/getPrototypeOf/getPrototypeOf.js +0 -4
- package/src/omega/core_plugins/babel/babel_helper/client/inherits/inherits.js +0 -19
- package/src/omega/core_plugins/babel/babel_helper/client/inheritsLoose/inheritsLoose.js +0 -7
- package/src/omega/core_plugins/babel/babel_helper/client/initializerDefineProperty/initializerDefineProperty.js +0 -10
- package/src/omega/core_plugins/babel/babel_helper/client/initializerWarningHelper/initializerWarningHelper.js +0 -6
- package/src/omega/core_plugins/babel/babel_helper/client/instanceof/instanceof.js +0 -6
- package/src/omega/core_plugins/babel/babel_helper/client/interopRequireDefault/interopRequireDefault.js +0 -3
- package/src/omega/core_plugins/babel/babel_helper/client/interopRequireWildcard/interopRequireWildcard.js +0 -37
- package/src/omega/core_plugins/babel/babel_helper/client/isNativeFunction/isNativeFunction.js +0 -4
- package/src/omega/core_plugins/babel/babel_helper/client/isNativeReflectConstruct/isNativeReflectConstruct.js +0 -21
- package/src/omega/core_plugins/babel/babel_helper/client/iterableToArray/iterableToArray.js +0 -7
- package/src/omega/core_plugins/babel/babel_helper/client/iterableToArrayLimit/iterableToArrayLimit.js +0 -36
- package/src/omega/core_plugins/babel/babel_helper/client/iterableToArrayLimitLoose/iterableToArrayLimitLoose.js +0 -10
- package/src/omega/core_plugins/babel/babel_helper/client/jsx/jsx.js +0 -50
- package/src/omega/core_plugins/babel/babel_helper/client/maybeArrayLike/maybeArrayLike.js +0 -10
- package/src/omega/core_plugins/babel/babel_helper/client/newArrowCheck/newArrowCheck.js +0 -5
- package/src/omega/core_plugins/babel/babel_helper/client/nonIterableRest/nonIterableRest.js +0 -5
- package/src/omega/core_plugins/babel/babel_helper/client/nonIterableSpread/nonIterableSpread.js +0 -5
- package/src/omega/core_plugins/babel/babel_helper/client/objectDestructuringEmpty/objectDestructuringEmpty.js +0 -3
- package/src/omega/core_plugins/babel/babel_helper/client/objectSpread/objectSpread.js +0 -23
- package/src/omega/core_plugins/babel/babel_helper/client/objectSpread2/objectSpread2.js +0 -41
- package/src/omega/core_plugins/babel/babel_helper/client/objectWithoutProperties/objectWithoutProperties.js +0 -19
- package/src/omega/core_plugins/babel/babel_helper/client/objectWithoutPropertiesLoose/objectWithoutPropertiesLoose.js +0 -13
- package/src/omega/core_plugins/babel/babel_helper/client/possibleConstructorReturn/possibleConstructorReturn.js +0 -10
- package/src/omega/core_plugins/babel/babel_helper/client/readOnlyError/readOnlyError.js +0 -4
- package/src/omega/core_plugins/babel/babel_helper/client/readme.md +0 -8
- package/src/omega/core_plugins/babel/babel_helper/client/set/set.js +0 -44
- package/src/omega/core_plugins/babel/babel_helper/client/setPrototypeOf/setPrototypeOf.js +0 -6
- package/src/omega/core_plugins/babel/babel_helper/client/skipFirstGeneratorNext/skipFirstGeneratorNext.js +0 -8
- package/src/omega/core_plugins/babel/babel_helper/client/slicedToArray/slicedToArray.js +0 -10
- package/src/omega/core_plugins/babel/babel_helper/client/slicedToArrayLoose/slicedToArrayLoose.js +0 -13
- package/src/omega/core_plugins/babel/babel_helper/client/superPropBase/superPropBase.js +0 -10
- package/src/omega/core_plugins/babel/babel_helper/client/taggedTemplateLiteral/taggedTemplateLiteral.js +0 -10
- package/src/omega/core_plugins/babel/babel_helper/client/taggedTemplateLiteralLoose/taggedTemplateLiteralLoose.js +0 -7
- package/src/omega/core_plugins/babel/babel_helper/client/tdz/tdz.js +0 -4
- package/src/omega/core_plugins/babel/babel_helper/client/temporalRef/temporalRef.js +0 -6
- package/src/omega/core_plugins/babel/babel_helper/client/temporalUndefined/temporalUndefined.js +0 -3
- package/src/omega/core_plugins/babel/babel_helper/client/toArray/toArray.js +0 -10
- package/src/omega/core_plugins/babel/babel_helper/client/toConsumableArray/toConsumableArray.js +0 -10
- package/src/omega/core_plugins/babel/babel_helper/client/toPrimitive/toPrimitive.js +0 -10
- package/src/omega/core_plugins/babel/babel_helper/client/toPropertyKey/toPropertyKey.js +0 -6
- package/src/omega/core_plugins/babel/babel_helper/client/typeof/typeof.js +0 -14
- package/src/omega/core_plugins/babel/babel_helper/client/unsupportedIterableToArray/unsupportedIterableToArray.js +0 -12
- package/src/omega/core_plugins/babel/babel_helper/client/wrapAsyncGenerator/wrapAsyncGenerator.js +0 -8
- package/src/omega/core_plugins/babel/babel_helper/client/wrapNativeSuper/wrapNativeSuper.js +0 -30
- package/src/omega/core_plugins/babel/babel_helper/client/wrapRegExp/wrapRegExp.js +0 -63
- package/src/omega/core_plugins/babel/babel_helper/client/writeOnlyError/writeOnlyError.js +0 -4
- package/src/omega/core_plugins/babel/helpers/babel_plugin_structure.js +0 -187
- package/src/omega/core_plugins/file_urls/jsenv_plugin_file_urls.js +0 -67
- package/src/omega/core_plugins/import_assertions/helpers/json_module.js +0 -12
- package/src/omega/core_plugins/import_assertions/helpers/text_module.js +0 -6
- package/src/omega/core_plugins/import_assertions/jsenv_plugin_import_assertions.js +0 -211
- package/src/omega/core_plugins/inline/jsenv_plugin_inline.js +0 -13
- package/src/omega/core_plugins/inline/jsenv_plugin_new_inline_content.js +0 -210
- package/src/omega/core_plugins/leading_slash/jsenv_plugin_leading_slash.js +0 -12
- package/src/omega/core_plugins.js +0 -39
- package/src/omega/runtime_support/runtime_support.js +0 -20
- package/src/omega/url_mentions/css_url_mentions.js +0 -63
- package/src/omega/url_mentions/html_url_mentions.js +0 -185
- package/src/omega/url_mentions/js_module_url_mentions.js +0 -91
- package/src/omega/url_mentions/parse_url_mentions.js +0 -37
- package/src/omega/url_mentions/worker_classic_url_mentions.js +0 -37
package/src/execute/execute.js
CHANGED
|
@@ -3,8 +3,8 @@ import { Abort, raceProcessTeardownEvents } from "@jsenv/abort"
|
|
|
3
3
|
import { assertAndNormalizeDirectoryUrl } from "@jsenv/filesystem"
|
|
4
4
|
import { createLogger } from "@jsenv/logger"
|
|
5
5
|
|
|
6
|
+
import { getCorePlugins } from "@jsenv/core/src/plugins/plugins.js"
|
|
6
7
|
import { createUrlGraph } from "@jsenv/core/src/omega/url_graph.js"
|
|
7
|
-
import { getCorePlugins } from "@jsenv/core/src/omega/core_plugins.js"
|
|
8
8
|
import { createKitchen } from "@jsenv/core/src/omega/kitchen.js"
|
|
9
9
|
import { startOmegaServer } from "@jsenv/core/src/omega/omega_server.js"
|
|
10
10
|
|
|
@@ -26,9 +26,13 @@ export const execute = async ({
|
|
|
26
26
|
runtime,
|
|
27
27
|
runtimeParams,
|
|
28
28
|
|
|
29
|
-
plugins = [],
|
|
30
29
|
scenario = "dev",
|
|
31
30
|
sourcemaps = "inline",
|
|
31
|
+
plugins = [],
|
|
32
|
+
nodeEsmResolution,
|
|
33
|
+
fileSystemMagicResolution,
|
|
34
|
+
injectedGlobals,
|
|
35
|
+
transpilation,
|
|
32
36
|
|
|
33
37
|
port,
|
|
34
38
|
protocol,
|
|
@@ -53,6 +57,7 @@ export const execute = async ({
|
|
|
53
57
|
})
|
|
54
58
|
}
|
|
55
59
|
|
|
60
|
+
let resultTransformer = (result) => result
|
|
56
61
|
runtimeParams = {
|
|
57
62
|
rootDirectoryUrl,
|
|
58
63
|
fileRelativeUrl,
|
|
@@ -65,9 +70,18 @@ export const execute = async ({
|
|
|
65
70
|
logger,
|
|
66
71
|
rootDirectoryUrl,
|
|
67
72
|
urlGraph,
|
|
68
|
-
plugins: [...plugins, ...getCorePlugins()],
|
|
69
73
|
scenario,
|
|
70
74
|
sourcemaps,
|
|
75
|
+
plugins: [
|
|
76
|
+
...plugins,
|
|
77
|
+
...getCorePlugins({
|
|
78
|
+
scenario,
|
|
79
|
+
nodeEsmResolution,
|
|
80
|
+
fileSystemMagicResolution,
|
|
81
|
+
injectedGlobals,
|
|
82
|
+
transpilation,
|
|
83
|
+
}),
|
|
84
|
+
],
|
|
71
85
|
})
|
|
72
86
|
const serverLogger = createLogger({ logLevel: "warn" })
|
|
73
87
|
const server = await startOmegaServer({
|
|
@@ -91,9 +105,13 @@ export const execute = async ({
|
|
|
91
105
|
...runtimeParams,
|
|
92
106
|
server,
|
|
93
107
|
}
|
|
108
|
+
resultTransformer = (result) => {
|
|
109
|
+
result.server = server
|
|
110
|
+
return result
|
|
111
|
+
}
|
|
94
112
|
}
|
|
95
113
|
|
|
96
|
-
|
|
114
|
+
let result = await run({
|
|
97
115
|
signal: executeOperation.signal,
|
|
98
116
|
logger,
|
|
99
117
|
allocatedMs,
|
|
@@ -105,6 +123,7 @@ export const execute = async ({
|
|
|
105
123
|
runtime,
|
|
106
124
|
runtimeParams,
|
|
107
125
|
})
|
|
126
|
+
result = resultTransformer(result)
|
|
108
127
|
|
|
109
128
|
try {
|
|
110
129
|
if (result.status === "errored") {
|
package/src/execute/run.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import cuid from "cuid"
|
|
2
2
|
import { Abort, raceCallbacks } from "@jsenv/abort"
|
|
3
3
|
import { resolveUrl, writeFile } from "@jsenv/filesystem"
|
|
4
|
-
import { createDetailedMessage } from "@jsenv/logger"
|
|
5
4
|
|
|
6
5
|
export const run = async ({
|
|
7
6
|
signal = new AbortController().signal,
|
|
@@ -18,9 +17,7 @@ export const run = async ({
|
|
|
18
17
|
runtime,
|
|
19
18
|
runtimeParams,
|
|
20
19
|
}) => {
|
|
21
|
-
const onErrorRef = { current: () => {} }
|
|
22
20
|
const onConsoleRef = { current: () => {} }
|
|
23
|
-
const onStopRef = { current: () => {} }
|
|
24
21
|
const stopSignal = { notify: () => {} }
|
|
25
22
|
|
|
26
23
|
let resultTransformer = (result) => result
|
|
@@ -105,7 +102,7 @@ export const run = async ({
|
|
|
105
102
|
try {
|
|
106
103
|
logger.debug(`run() ${runtimeLabel}`)
|
|
107
104
|
runOperation.throwIfAborted()
|
|
108
|
-
const winnerPromise = new Promise((resolve
|
|
105
|
+
const winnerPromise = new Promise((resolve) => {
|
|
109
106
|
raceCallbacks(
|
|
110
107
|
{
|
|
111
108
|
aborted: (cb) => {
|
|
@@ -114,35 +111,22 @@ export const run = async ({
|
|
|
114
111
|
runOperation.signal.removeEventListener("abort", cb)
|
|
115
112
|
}
|
|
116
113
|
},
|
|
117
|
-
errored: (cb) => {
|
|
118
|
-
onErrorRef.current = (error) => {
|
|
119
|
-
logger.debug(
|
|
120
|
-
createDetailedMessage(`error during execution`, {
|
|
121
|
-
["error stack"]: error.stack,
|
|
122
|
-
["runtime"]: runtimeLabel,
|
|
123
|
-
}),
|
|
124
|
-
)
|
|
125
|
-
cb(error)
|
|
126
|
-
}
|
|
127
|
-
},
|
|
128
|
-
stopped: (cb) => {
|
|
129
|
-
onStopRef.current = cb
|
|
130
|
-
},
|
|
131
114
|
runned: async (cb) => {
|
|
132
115
|
try {
|
|
133
|
-
await runtime.run({
|
|
134
|
-
signal,
|
|
116
|
+
const result = await runtime.run({
|
|
117
|
+
signal: runOperation.signal,
|
|
135
118
|
logger,
|
|
136
119
|
...runtimeParams,
|
|
137
120
|
keepRunning,
|
|
138
121
|
stopSignal,
|
|
139
|
-
onStop: (stopInfo) => onStopRef.current(stopInfo),
|
|
140
|
-
onError: (error) => onErrorRef.current(error),
|
|
141
122
|
onConsole: (log) => onConsoleRef.current(log),
|
|
142
|
-
onResult: cb,
|
|
143
123
|
})
|
|
124
|
+
cb(result)
|
|
144
125
|
} catch (e) {
|
|
145
|
-
|
|
126
|
+
cb({
|
|
127
|
+
status: "errored",
|
|
128
|
+
error: e,
|
|
129
|
+
})
|
|
146
130
|
}
|
|
147
131
|
},
|
|
148
132
|
},
|
|
@@ -153,31 +137,16 @@ export const run = async ({
|
|
|
153
137
|
if (winner.name === "aborted") {
|
|
154
138
|
runOperation.throwIfAborted()
|
|
155
139
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
if (winner.name === "stopped") {
|
|
164
|
-
return await resultTransformer(
|
|
165
|
-
createErroredExecutionResult({
|
|
166
|
-
error: new Error(`runtime stopped during execution`),
|
|
167
|
-
}),
|
|
168
|
-
)
|
|
169
|
-
}
|
|
170
|
-
onErrorRef.current = (error) => {
|
|
171
|
-
throw error
|
|
140
|
+
let result = winner.data
|
|
141
|
+
result = await resultTransformer(result)
|
|
142
|
+
return result
|
|
143
|
+
} catch (e) {
|
|
144
|
+
let result = {
|
|
145
|
+
status: "errored",
|
|
146
|
+
error: e,
|
|
172
147
|
}
|
|
173
|
-
|
|
174
|
-
return
|
|
175
|
-
} catch (error) {
|
|
176
|
-
return await resultTransformer(
|
|
177
|
-
createErroredExecutionResult({
|
|
178
|
-
error,
|
|
179
|
-
}),
|
|
180
|
-
)
|
|
148
|
+
result = await resultTransformer(result)
|
|
149
|
+
return result
|
|
181
150
|
} finally {
|
|
182
151
|
await runOperation.end()
|
|
183
152
|
}
|
|
@@ -200,9 +169,3 @@ const createTimedoutResult = () => {
|
|
|
200
169
|
status: "timedout",
|
|
201
170
|
}
|
|
202
171
|
}
|
|
203
|
-
const createErroredExecutionResult = ({ error }) => {
|
|
204
|
-
return {
|
|
205
|
-
status: "errored",
|
|
206
|
-
error,
|
|
207
|
-
}
|
|
208
|
-
}
|
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
Abort,
|
|
5
5
|
createCallbackListNotifiedOnce,
|
|
6
6
|
raceProcessTeardownEvents,
|
|
7
|
+
raceCallbacks,
|
|
7
8
|
} from "@jsenv/abort"
|
|
8
9
|
import { moveUrl } from "@jsenv/filesystem"
|
|
9
10
|
|
|
@@ -42,10 +43,7 @@ export const createRuntimeFromPlaywright = ({
|
|
|
42
43
|
stopAfterAllSignal,
|
|
43
44
|
stopSignal,
|
|
44
45
|
keepRunning,
|
|
45
|
-
onStop,
|
|
46
|
-
onError,
|
|
47
46
|
onConsole,
|
|
48
|
-
onResult,
|
|
49
47
|
|
|
50
48
|
executablePath,
|
|
51
49
|
headful = false,
|
|
@@ -74,11 +72,27 @@ export const createRuntimeFromPlaywright = ({
|
|
|
74
72
|
}
|
|
75
73
|
const { browser, browserContext } = await browserAndContextPromise
|
|
76
74
|
const closeBrowser = async () => {
|
|
75
|
+
const disconnected = browser.isConnected()
|
|
76
|
+
? new Promise((resolve) => {
|
|
77
|
+
const disconnectedCallback = () => {
|
|
78
|
+
browser.removeListener("disconnected", disconnectedCallback)
|
|
79
|
+
resolve()
|
|
80
|
+
}
|
|
81
|
+
browser.on("disconnected", disconnectedCallback)
|
|
82
|
+
})
|
|
83
|
+
: Promise.resolve()
|
|
84
|
+
// for some reason without this 100ms timeout
|
|
85
|
+
// browser.close() never resolves (playwright does not like something)
|
|
86
|
+
await new Promise((resolve) => setTimeout(resolve, 100))
|
|
77
87
|
try {
|
|
78
|
-
await
|
|
88
|
+
await browser.close()
|
|
79
89
|
} catch (e) {
|
|
80
|
-
|
|
90
|
+
if (isTargetClosedError(e)) {
|
|
91
|
+
return
|
|
92
|
+
}
|
|
93
|
+
throw e
|
|
81
94
|
}
|
|
95
|
+
await disconnected
|
|
82
96
|
}
|
|
83
97
|
const page = await browserContext.newPage()
|
|
84
98
|
const closePage = async () => {
|
|
@@ -88,44 +102,9 @@ export const createRuntimeFromPlaywright = ({
|
|
|
88
102
|
if (isTargetClosedError(e)) {
|
|
89
103
|
return
|
|
90
104
|
}
|
|
91
|
-
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
// https://github.com/GoogleChrome/puppeteer/blob/v1.4.0/docs/api.md#event-disconnected
|
|
95
|
-
if (isBrowserDedicatedToExecution) {
|
|
96
|
-
browser.on("disconnected", async () => {
|
|
97
|
-
await cleanup("browser disconnected")
|
|
98
|
-
onStop({ reason: "browser disconnected" })
|
|
99
|
-
})
|
|
100
|
-
cleanupCallbackList.add(closePage)
|
|
101
|
-
cleanupCallbackList.add(closeBrowser)
|
|
102
|
-
} else {
|
|
103
|
-
const disconnectedCallback = async () => {
|
|
104
|
-
await cleanup("browser disconnected")
|
|
105
|
-
onError(new Error("browser disconnected during execution"))
|
|
106
|
-
}
|
|
107
|
-
browser.on("disconnected", disconnectedCallback)
|
|
108
|
-
page.on("close", () => {
|
|
109
|
-
onStop({ reason: "page closed" })
|
|
110
|
-
})
|
|
111
|
-
cleanupCallbackList.add(closePage)
|
|
112
|
-
const notifyPrevious = stopAfterAllSignal.notify
|
|
113
|
-
stopAfterAllSignal.notify = async () => {
|
|
114
|
-
await notifyPrevious()
|
|
115
|
-
browser.removeListener("disconnected", disconnectedCallback)
|
|
116
|
-
await closeBrowser()
|
|
105
|
+
throw e
|
|
117
106
|
}
|
|
118
107
|
}
|
|
119
|
-
const stopTrackingToNotify = trackPageToNotify(page, {
|
|
120
|
-
onError: (error) => {
|
|
121
|
-
error = transformErrorHook(error)
|
|
122
|
-
if (!ignoreErrorHook(error)) {
|
|
123
|
-
onError(error)
|
|
124
|
-
}
|
|
125
|
-
},
|
|
126
|
-
onConsole,
|
|
127
|
-
})
|
|
128
|
-
cleanupCallbackList.add(stopTrackingToNotify)
|
|
129
108
|
|
|
130
109
|
let resultTransformer = (result) => result
|
|
131
110
|
if (collectCoverage) {
|
|
@@ -169,30 +148,164 @@ export const createRuntimeFromPlaywright = ({
|
|
|
169
148
|
resultTransformer = composeTransformer(
|
|
170
149
|
resultTransformer,
|
|
171
150
|
async (result) => {
|
|
172
|
-
|
|
151
|
+
const scriptExecutionResults = result.namespace
|
|
152
|
+
if (scriptExecutionResults) {
|
|
153
|
+
result.coverage = generateCoverageForPage(scriptExecutionResults)
|
|
154
|
+
}
|
|
173
155
|
return result
|
|
174
156
|
},
|
|
175
157
|
)
|
|
176
158
|
}
|
|
177
159
|
} else {
|
|
178
160
|
resultTransformer = composeTransformer(resultTransformer, (result) => {
|
|
179
|
-
const
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
161
|
+
const scriptExecutionResults = result.namespace
|
|
162
|
+
if (scriptExecutionResults) {
|
|
163
|
+
Object.keys(scriptExecutionResults).forEach((fileRelativeUrl) => {
|
|
164
|
+
delete scriptExecutionResults[fileRelativeUrl].coverage
|
|
165
|
+
})
|
|
166
|
+
}
|
|
183
167
|
return result
|
|
184
168
|
})
|
|
185
169
|
}
|
|
186
170
|
const fileClientUrl = new URL(fileRelativeUrl, `${server.origin}/`).href
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
171
|
+
|
|
172
|
+
// https://github.com/GoogleChrome/puppeteer/blob/v1.4.0/docs/api.md#event-console
|
|
173
|
+
const removeConsoleListener = registerEvent({
|
|
174
|
+
object: page,
|
|
175
|
+
eventType: "console",
|
|
176
|
+
// https://github.com/microsoft/playwright/blob/master/docs/api.md#event-console
|
|
177
|
+
callback: async (consoleMessage) => {
|
|
178
|
+
onConsole({
|
|
179
|
+
type: consoleMessage.type(),
|
|
180
|
+
text: `${extractTextFromConsoleMessage(consoleMessage)}
|
|
181
|
+
`,
|
|
182
|
+
})
|
|
183
|
+
},
|
|
184
|
+
})
|
|
185
|
+
cleanupCallbackList.add(removeConsoleListener)
|
|
186
|
+
const winnerPromise = new Promise((resolve, reject) => {
|
|
187
|
+
raceCallbacks(
|
|
188
|
+
{
|
|
189
|
+
// https://github.com/GoogleChrome/puppeteer/blob/v1.4.0/docs/api.md#event-error
|
|
190
|
+
error: (cb) => {
|
|
191
|
+
return registerEvent({
|
|
192
|
+
object: page,
|
|
193
|
+
eventType: "error",
|
|
194
|
+
callback: (error) => {
|
|
195
|
+
if (ignoreErrorHook(error)) {
|
|
196
|
+
return
|
|
197
|
+
}
|
|
198
|
+
cb(transformErrorHook(error))
|
|
199
|
+
},
|
|
200
|
+
})
|
|
201
|
+
},
|
|
202
|
+
// https://github.com/GoogleChrome/puppeteer/blob/v1.4.0/docs/api.md#event-pageerror
|
|
203
|
+
pageerror: (cb) => {
|
|
204
|
+
return registerEvent({
|
|
205
|
+
object: page,
|
|
206
|
+
eventType: "pageerror",
|
|
207
|
+
callback: (error) => {
|
|
208
|
+
if (ignoreErrorHook(error)) {
|
|
209
|
+
return
|
|
210
|
+
}
|
|
211
|
+
cb(transformErrorHook(error))
|
|
212
|
+
},
|
|
213
|
+
})
|
|
214
|
+
},
|
|
215
|
+
closed: (cb) => {
|
|
216
|
+
// https://github.com/GoogleChrome/puppeteer/blob/v1.4.0/docs/api.md#event-disconnected
|
|
217
|
+
if (isBrowserDedicatedToExecution) {
|
|
218
|
+
browser.on("disconnected", async () => {
|
|
219
|
+
cb({ reason: "browser disconnected" })
|
|
220
|
+
})
|
|
221
|
+
cleanupCallbackList.add(closePage)
|
|
222
|
+
cleanupCallbackList.add(closeBrowser)
|
|
223
|
+
} else {
|
|
224
|
+
const disconnectedCallback = async () => {
|
|
225
|
+
throw new Error("browser disconnected during execution")
|
|
226
|
+
}
|
|
227
|
+
browser.on("disconnected", disconnectedCallback)
|
|
228
|
+
page.on("close", () => {
|
|
229
|
+
cb({ reason: "page closed" })
|
|
230
|
+
})
|
|
231
|
+
cleanupCallbackList.add(closePage)
|
|
232
|
+
const notifyPrevious = stopAfterAllSignal.notify
|
|
233
|
+
stopAfterAllSignal.notify = async () => {
|
|
234
|
+
await notifyPrevious()
|
|
235
|
+
browser.removeListener("disconnected", disconnectedCallback)
|
|
236
|
+
await closeBrowser()
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
response: async (cb) => {
|
|
241
|
+
try {
|
|
242
|
+
await page.goto(fileClientUrl, { timeout: 0 })
|
|
243
|
+
const result = await page.evaluate(
|
|
244
|
+
/* eslint-disable no-undef */
|
|
245
|
+
/* istanbul ignore next */
|
|
246
|
+
() => {
|
|
247
|
+
return window.__html_supervisor__.getScriptExecutionResults()
|
|
248
|
+
},
|
|
249
|
+
/* eslint-enable no-undef */
|
|
250
|
+
)
|
|
251
|
+
const { status, scriptExecutionResults } = result
|
|
252
|
+
if (status === "errored") {
|
|
253
|
+
const { exceptionSource } = result
|
|
254
|
+
const error = evalException(exceptionSource, {
|
|
255
|
+
rootDirectoryUrl,
|
|
256
|
+
server,
|
|
257
|
+
transformErrorHook,
|
|
258
|
+
})
|
|
259
|
+
cb({
|
|
260
|
+
status: "errored",
|
|
261
|
+
error,
|
|
262
|
+
namespace: scriptExecutionResults,
|
|
263
|
+
})
|
|
264
|
+
} else {
|
|
265
|
+
cb({
|
|
266
|
+
status: "completed",
|
|
267
|
+
namespace: scriptExecutionResults,
|
|
268
|
+
})
|
|
269
|
+
}
|
|
270
|
+
} catch (e) {
|
|
271
|
+
reject(e)
|
|
272
|
+
}
|
|
273
|
+
},
|
|
274
|
+
},
|
|
275
|
+
resolve,
|
|
276
|
+
)
|
|
193
277
|
})
|
|
194
|
-
|
|
195
|
-
|
|
278
|
+
|
|
279
|
+
const getResult = async () => {
|
|
280
|
+
const winner = await winnerPromise
|
|
281
|
+
if (winner.name === "error" || winner.name === "pageerror") {
|
|
282
|
+
const error = winner.data
|
|
283
|
+
return {
|
|
284
|
+
status: "errored",
|
|
285
|
+
error,
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
if (winner.name === "closed") {
|
|
289
|
+
return {
|
|
290
|
+
status: "errored",
|
|
291
|
+
error: isBrowserDedicatedToExecution
|
|
292
|
+
? new Error(`browser disconnected during execution`)
|
|
293
|
+
: new Error(`page closed during execution`),
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
return winner.data
|
|
297
|
+
}
|
|
298
|
+
let result
|
|
299
|
+
|
|
300
|
+
try {
|
|
301
|
+
result = await getResult()
|
|
302
|
+
result = await resultTransformer(result)
|
|
303
|
+
} catch (e) {
|
|
304
|
+
result = {
|
|
305
|
+
status: "errored",
|
|
306
|
+
error: e,
|
|
307
|
+
}
|
|
308
|
+
}
|
|
196
309
|
if (keepRunning) {
|
|
197
310
|
stopSignal.notify = cleanup
|
|
198
311
|
} else {
|
|
@@ -214,40 +327,6 @@ export const createRuntimeFromPlaywright = ({
|
|
|
214
327
|
return runtime
|
|
215
328
|
}
|
|
216
329
|
|
|
217
|
-
const getResult = async ({
|
|
218
|
-
page,
|
|
219
|
-
rootDirectoryUrl,
|
|
220
|
-
server,
|
|
221
|
-
transformErrorHook,
|
|
222
|
-
}) => {
|
|
223
|
-
const result = await page.evaluate(
|
|
224
|
-
/* eslint-disable no-undef */
|
|
225
|
-
/* istanbul ignore next */
|
|
226
|
-
() => {
|
|
227
|
-
return window.__html_supervisor__.getScriptExecutionResults()
|
|
228
|
-
},
|
|
229
|
-
/* eslint-enable no-undef */
|
|
230
|
-
)
|
|
231
|
-
const { status, scriptExecutionResults } = result
|
|
232
|
-
if (status === "errored") {
|
|
233
|
-
const { exceptionSource } = result
|
|
234
|
-
const error = evalException(exceptionSource, {
|
|
235
|
-
rootDirectoryUrl,
|
|
236
|
-
server,
|
|
237
|
-
transformErrorHook,
|
|
238
|
-
})
|
|
239
|
-
return {
|
|
240
|
-
status: "errored",
|
|
241
|
-
error,
|
|
242
|
-
namespace: scriptExecutionResults,
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
return {
|
|
246
|
-
status: "completed",
|
|
247
|
-
namespace: scriptExecutionResults,
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
|
|
251
330
|
const generateCoverageForPage = (scriptExecutionResults) => {
|
|
252
331
|
let istanbulCoverageComposed = null
|
|
253
332
|
Object.keys(scriptExecutionResults).forEach((fileRelativeUrl) => {
|
|
@@ -262,31 +341,6 @@ const generateCoverageForPage = (scriptExecutionResults) => {
|
|
|
262
341
|
return istanbulCoverageComposed
|
|
263
342
|
}
|
|
264
343
|
|
|
265
|
-
const stopBrowser = async (browser) => {
|
|
266
|
-
const disconnected = browser.isConnected()
|
|
267
|
-
? new Promise((resolve) => {
|
|
268
|
-
const disconnectedCallback = () => {
|
|
269
|
-
browser.removeListener("disconnected", disconnectedCallback)
|
|
270
|
-
resolve()
|
|
271
|
-
}
|
|
272
|
-
browser.on("disconnected", disconnectedCallback)
|
|
273
|
-
})
|
|
274
|
-
: Promise.resolve()
|
|
275
|
-
|
|
276
|
-
// for some reason without this 100ms timeout
|
|
277
|
-
// browser.close() never resolves (playwright does not like something)
|
|
278
|
-
await new Promise((resolve) => setTimeout(resolve, 100))
|
|
279
|
-
try {
|
|
280
|
-
await browser.close()
|
|
281
|
-
} catch (e) {
|
|
282
|
-
if (isTargetClosedError(e)) {
|
|
283
|
-
return
|
|
284
|
-
}
|
|
285
|
-
throw e
|
|
286
|
-
}
|
|
287
|
-
await disconnected
|
|
288
|
-
}
|
|
289
|
-
|
|
290
344
|
const launchBrowserUsingPlaywright = async ({
|
|
291
345
|
signal,
|
|
292
346
|
browserName,
|
|
@@ -366,39 +420,6 @@ const isTargetClosedError = (error) => {
|
|
|
366
420
|
return false
|
|
367
421
|
}
|
|
368
422
|
|
|
369
|
-
const trackPageToNotify = (page, { onError, onConsole }) => {
|
|
370
|
-
// https://github.com/GoogleChrome/puppeteer/blob/v1.4.0/docs/api.md#event-error
|
|
371
|
-
const removeErrorListener = registerEvent({
|
|
372
|
-
object: page,
|
|
373
|
-
eventType: "error",
|
|
374
|
-
callback: onError,
|
|
375
|
-
})
|
|
376
|
-
// https://github.com/GoogleChrome/puppeteer/blob/v1.4.0/docs/api.md#event-pageerror
|
|
377
|
-
const removePageErrorListener = registerEvent({
|
|
378
|
-
object: page,
|
|
379
|
-
eventType: "pageerror",
|
|
380
|
-
callback: onError,
|
|
381
|
-
})
|
|
382
|
-
// https://github.com/GoogleChrome/puppeteer/blob/v1.4.0/docs/api.md#event-console
|
|
383
|
-
const removeConsoleListener = registerEvent({
|
|
384
|
-
object: page,
|
|
385
|
-
eventType: "console",
|
|
386
|
-
// https://github.com/microsoft/playwright/blob/master/docs/api.md#event-console
|
|
387
|
-
callback: async (consoleMessage) => {
|
|
388
|
-
onConsole({
|
|
389
|
-
type: consoleMessage.type(),
|
|
390
|
-
text: `${extractTextFromConsoleMessage(consoleMessage)}
|
|
391
|
-
`,
|
|
392
|
-
})
|
|
393
|
-
},
|
|
394
|
-
})
|
|
395
|
-
return () => {
|
|
396
|
-
removeErrorListener()
|
|
397
|
-
removePageErrorListener()
|
|
398
|
-
removeConsoleListener()
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
|
|
402
423
|
const composeTransformer = (previousTransformer, transformer) => {
|
|
403
424
|
return async (value) => {
|
|
404
425
|
const transformedValue = await previousTransformer(value)
|