@jsenv/core 35.0.3 → 35.0.5

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 (117) hide show
  1. package/dist/html/explorer.html +107 -107
  2. package/dist/js/new_stylesheet.js +3 -0
  3. package/dist/js/s.js.map +3 -3
  4. package/package.json +2 -2
  5. package/src/build/build.js +589 -587
  6. package/src/build/build_urls_generator.js +44 -44
  7. package/src/build/graph_utils.js +14 -14
  8. package/src/build/jsenv_plugin_line_break_normalization.js +6 -6
  9. package/src/build/line_break_unix.js +11 -11
  10. package/src/build/start_build_server.js +37 -37
  11. package/src/build/version_generator.js +7 -7
  12. package/src/build/version_mappings_injection.js +23 -23
  13. package/src/dev/file_service.js +132 -132
  14. package/src/dev/start_dev_server.js +56 -56
  15. package/src/dev/user_agent.js +8 -8
  16. package/src/helpers/basic_fetch.js +24 -24
  17. package/src/helpers/command/command.js +28 -28
  18. package/src/helpers/lookup_package_directory.js +19 -16
  19. package/src/helpers/ping_server.js +17 -17
  20. package/src/helpers/require_from_jsenv.js +2 -2
  21. package/src/helpers/watch_source_files.js +9 -9
  22. package/src/helpers/web_url_converter.js +10 -10
  23. package/src/helpers/worker_reload.js +27 -27
  24. package/src/kitchen/compat/features_compatibility.js +1 -1
  25. package/src/kitchen/compat/runtime_compat.js +26 -24
  26. package/src/kitchen/errors.js +75 -75
  27. package/src/kitchen/fetched_content_compliance.js +8 -8
  28. package/src/kitchen/kitchen.js +251 -250
  29. package/src/kitchen/url_graph/sort_by_dependencies.js +17 -17
  30. package/src/kitchen/url_graph/url_graph_loader.js +30 -30
  31. package/src/kitchen/url_graph/url_graph_report.js +57 -57
  32. package/src/kitchen/url_graph/url_info_transformations.js +77 -77
  33. package/src/kitchen/url_graph.js +121 -121
  34. package/src/kitchen/url_specifier_encoding.js +21 -21
  35. package/src/kitchen/web_workers.js +5 -5
  36. package/src/main.js +3 -3
  37. package/src/plugins/autoreload/client/autoreload.js +96 -96
  38. package/src/plugins/autoreload/client/reload.js +56 -56
  39. package/src/plugins/autoreload/client/url_helpers.js +13 -13
  40. package/src/plugins/autoreload/jsenv_plugin_autoreload.js +5 -5
  41. package/src/plugins/autoreload/jsenv_plugin_autoreload_client.js +9 -9
  42. package/src/plugins/autoreload/jsenv_plugin_autoreload_server.js +61 -60
  43. package/src/plugins/autoreload/jsenv_plugin_hmr.js +15 -15
  44. package/src/plugins/cache_control/jsenv_plugin_cache_control.js +5 -5
  45. package/src/plugins/commonjs_globals/jsenv_plugin_commonjs_globals.js +57 -57
  46. package/src/plugins/explorer/client/explorer.html +107 -107
  47. package/src/plugins/explorer/jsenv_plugin_explorer.js +20 -20
  48. package/src/plugins/file_urls/jsenv_plugin_file_urls.js +60 -60
  49. package/src/plugins/global_scenarios/jsenv_plugin_global_scenarios.js +5 -5
  50. package/src/plugins/http_urls/jsenv_plugin_http_urls.js +3 -3
  51. package/src/plugins/import_meta_hot/babel_plugin_metadata_import_meta_hot.js +35 -35
  52. package/src/plugins/import_meta_hot/client/import_meta_hot.js +26 -26
  53. package/src/plugins/import_meta_hot/html_hot_dependencies.js +43 -43
  54. package/src/plugins/import_meta_hot/jsenv_plugin_import_meta_hot.js +44 -40
  55. package/src/plugins/import_meta_scenarios/jsenv_plugin_import_meta_scenarios.js +35 -35
  56. package/src/plugins/import_meta_url/client/import_meta_url_browser.js +21 -21
  57. package/src/plugins/import_meta_url/client/import_meta_url_commonjs.mjs +3 -3
  58. package/src/plugins/importmap/jsenv_plugin_importmap.js +54 -54
  59. package/src/plugins/inline_content_analysis/client/inline_content.js +3 -3
  60. package/src/plugins/inline_content_analysis/jsenv_plugin_data_urls.js +26 -26
  61. package/src/plugins/inline_content_analysis/jsenv_plugin_html_inline_content_analysis.js +47 -47
  62. package/src/plugins/inline_content_analysis/jsenv_plugin_inline_content_analysis.js +9 -9
  63. package/src/plugins/inline_content_analysis/jsenv_plugin_js_inline_content_analysis.js +101 -101
  64. package/src/plugins/inlining/jsenv_plugin_inlining.js +9 -9
  65. package/src/plugins/inlining/jsenv_plugin_inlining_as_data_url.js +11 -11
  66. package/src/plugins/inlining/jsenv_plugin_inlining_into_html.js +48 -46
  67. package/src/plugins/node_runtime/jsenv_plugin_node_runtime.js +4 -4
  68. package/src/plugins/plugin_controller.js +124 -124
  69. package/src/plugins/plugins.js +27 -27
  70. package/src/plugins/ribbon/client/ribbon.js +6 -6
  71. package/src/plugins/ribbon/jsenv_plugin_ribbon.js +15 -15
  72. package/src/plugins/server_events/client/connection_manager.js +52 -52
  73. package/src/plugins/server_events/client/event_source_connection.js +36 -36
  74. package/src/plugins/server_events/client/events_manager.js +37 -37
  75. package/src/plugins/server_events/client/server_events_client.js +7 -7
  76. package/src/plugins/server_events/client/web_socket_connection.js +39 -39
  77. package/src/plugins/server_events/jsenv_plugin_server_events_client_injection.js +9 -9
  78. package/src/plugins/server_events/server_events_dispatcher.js +43 -43
  79. package/src/plugins/supervisor/client/supervisor.js +455 -450
  80. package/src/plugins/supervisor/html_supervisor_injection.js +64 -62
  81. package/src/plugins/supervisor/js_supervisor_injection.js +67 -67
  82. package/src/plugins/supervisor/jsenv_plugin_supervisor.js +54 -51
  83. package/src/plugins/transpilation/as_js_module/convert_js_classic_to_js_module.js +13 -13
  84. package/src/plugins/transpilation/as_js_module/jsenv_plugin_as_js_module.js +19 -19
  85. package/src/plugins/transpilation/babel/global_this/babel_plugin_global_this_as_jsenv_import.js +10 -10
  86. package/src/plugins/transpilation/babel/global_this/client/global_this.js +8 -8
  87. package/src/plugins/transpilation/babel/helpers/babel_plugin_babel_helpers_as_jsenv_imports.js +16 -16
  88. package/src/plugins/transpilation/babel/helpers/babel_plugin_structure.js +36 -36
  89. package/src/plugins/transpilation/babel/helpers/babel_plugins_compatibility.js +3 -3
  90. package/src/plugins/transpilation/babel/jsenv_plugin_babel.js +24 -24
  91. package/src/plugins/transpilation/babel/new_stylesheet/babel_plugin_new_stylesheet_as_jsenv_import.js +44 -44
  92. package/src/plugins/transpilation/babel/new_stylesheet/client/new_stylesheet.js +166 -166
  93. package/src/plugins/transpilation/babel/regenerator_runtime/babel_plugin_regenerator_runtime_as_jsenv_import.js +10 -10
  94. package/src/plugins/transpilation/babel/require_babel_plugin.js +6 -6
  95. package/src/plugins/transpilation/css/jsenv_plugin_css_transpilation.js +20 -20
  96. package/src/plugins/transpilation/import_assertions/jsenv_plugin_import_assertions.js +62 -62
  97. package/src/plugins/transpilation/js_module_fallback/client/s.js +214 -209
  98. package/src/plugins/transpilation/js_module_fallback/convert_js_module_to_js_classic.js +45 -45
  99. package/src/plugins/transpilation/js_module_fallback/helpers/babel_plugin_transform_import_meta_resolve.js +6 -6
  100. package/src/plugins/transpilation/js_module_fallback/helpers/babel_plugin_transform_import_meta_url.js +17 -17
  101. package/src/plugins/transpilation/js_module_fallback/helpers-string.js +1 -1
  102. package/src/plugins/transpilation/js_module_fallback/jsenv_plugin_js_module_conversion.js +32 -32
  103. package/src/plugins/transpilation/js_module_fallback/jsenv_plugin_js_module_fallback.js +17 -17
  104. package/src/plugins/transpilation/js_module_fallback/jsenv_plugin_js_module_fallback_inside_html.js +63 -63
  105. package/src/plugins/transpilation/js_module_fallback/jsenv_plugin_js_module_fallback_on_workers.js +15 -15
  106. package/src/plugins/transpilation/jsenv_plugin_import_meta_resolve.js +20 -20
  107. package/src/plugins/transpilation/jsenv_plugin_top_level_await.js +23 -23
  108. package/src/plugins/transpilation/jsenv_plugin_transpilation.js +11 -11
  109. package/src/plugins/url_analysis/css/css_urls.js +12 -12
  110. package/src/plugins/url_analysis/html/html_urls.js +85 -85
  111. package/src/plugins/url_analysis/js/js_urls.js +16 -16
  112. package/src/plugins/url_analysis/jsenv_plugin_reference_expected_types.js +16 -16
  113. package/src/plugins/url_analysis/jsenv_plugin_url_analysis.js +40 -40
  114. package/src/plugins/url_analysis/webmanifest/webmanifest_urls.js +12 -12
  115. package/src/plugins/url_resolution/jsenv_plugin_url_resolution.js +35 -35
  116. package/src/plugins/url_resolution/node_esm_resolver.js +26 -26
  117. package/src/plugins/url_version/jsenv_plugin_url_version.js +11 -11
@@ -3,7 +3,7 @@ const READY_STATES = {
3
3
  OPEN: "open",
4
4
  CLOSING: "closing",
5
5
  CLOSED: "closed",
6
- }
6
+ };
7
7
 
8
8
  export const createConnectionManager = (
9
9
  attemptConnection,
@@ -13,74 +13,74 @@ export const createConnectionManager = (
13
13
  value: READY_STATES.CLOSED,
14
14
  goTo: (value) => {
15
15
  if (value === readyState.value) {
16
- return
16
+ return;
17
17
  }
18
- readyState.value = value
19
- readyState.onchange()
18
+ readyState.value = value;
19
+ readyState.onchange();
20
20
  },
21
21
  onchange: () => {},
22
- }
22
+ };
23
23
 
24
- let _disconnect = () => {}
24
+ let _disconnect = () => {};
25
25
  const connect = () => {
26
26
  if (
27
27
  readyState.value === READY_STATES.CONNECTING ||
28
28
  readyState.value === READY_STATES.OPEN
29
29
  ) {
30
- return
30
+ return;
31
31
  }
32
32
 
33
- let retryCount = 0
34
- let msSpent = 0
33
+ let retryCount = 0;
34
+ let msSpent = 0;
35
35
  const attempt = () => {
36
- readyState.goTo(READY_STATES.CONNECTING)
37
- let timeout
36
+ readyState.goTo(READY_STATES.CONNECTING);
37
+ let timeout;
38
38
  const cancelAttempt = attemptConnection({
39
39
  onClosed: () => {
40
40
  if (!retry) {
41
- readyState.goTo(READY_STATES.CLOSED)
42
- console.info(`[jsenv] failed to connect to server`)
43
- return
41
+ readyState.goTo(READY_STATES.CLOSED);
42
+ console.info(`[jsenv] failed to connect to server`);
43
+ return;
44
44
  }
45
45
  if (retryCount > retryMaxAttempt) {
46
- readyState.goTo(READY_STATES.CLOSED)
46
+ readyState.goTo(READY_STATES.CLOSED);
47
47
  console.info(
48
48
  `[jsenv] could not connect to server after ${retryMaxAttempt} attempt`,
49
- )
50
- return
49
+ );
50
+ return;
51
51
  }
52
52
  if (retryAllocatedMs && msSpent > retryAllocatedMs) {
53
- readyState.goTo(READY_STATES.CLOSED)
53
+ readyState.goTo(READY_STATES.CLOSED);
54
54
  console.info(
55
55
  `[jsenv] could not connect to server in less than ${retryAllocatedMs}ms`,
56
- )
57
- return
56
+ );
57
+ return;
58
58
  }
59
59
  // if closed while open -> connection lost
60
60
  // otherwise it's the attempt to connect for the first time
61
61
  // or to reconnect
62
62
  if (readyState.value === READY_STATES.OPEN) {
63
- console.info(`[jsenv] server connection lost; retrying to connect`)
63
+ console.info(`[jsenv] server connection lost; retrying to connect`);
64
64
  }
65
- retryCount++
65
+ retryCount++;
66
66
  timeout = setTimeout(() => {
67
- msSpent += retryAfter
68
- attempt()
69
- }, retryAfter)
67
+ msSpent += retryAfter;
68
+ attempt();
69
+ }, retryAfter);
70
70
  },
71
71
  onOpen: () => {
72
- readyState.goTo(READY_STATES.OPEN)
72
+ readyState.goTo(READY_STATES.OPEN);
73
73
  // console.info(`[jsenv] connected to server`)
74
74
  },
75
- })
75
+ });
76
76
  _disconnect = () => {
77
- cancelAttempt()
78
- clearTimeout(timeout)
79
- readyState.goTo(READY_STATES.CLOSED)
80
- }
81
- }
82
- attempt()
83
- }
77
+ cancelAttempt();
78
+ clearTimeout(timeout);
79
+ readyState.goTo(READY_STATES.CLOSED);
80
+ };
81
+ };
82
+ attempt();
83
+ };
84
84
 
85
85
  const disconnect = () => {
86
86
  if (
@@ -89,31 +89,31 @@ export const createConnectionManager = (
89
89
  ) {
90
90
  console.warn(
91
91
  `disconnect() ignored because connection is ${readyState.value}`,
92
- )
93
- return null
92
+ );
93
+ return null;
94
94
  }
95
- return _disconnect()
96
- }
95
+ return _disconnect();
96
+ };
97
97
 
98
98
  const removePageUnloadListener = listenPageUnload(() => {
99
99
  if (
100
100
  readyState.value === READY_STATES.CONNECTING ||
101
101
  readyState.value === READY_STATES.OPEN
102
102
  ) {
103
- _disconnect()
103
+ _disconnect();
104
104
  }
105
- })
105
+ });
106
106
 
107
107
  return {
108
108
  readyState,
109
109
  connect,
110
110
  disconnect,
111
111
  destroy: () => {
112
- removePageUnloadListener()
113
- disconnect()
112
+ removePageUnloadListener();
113
+ disconnect();
114
114
  },
115
- }
116
- }
115
+ };
116
+ };
117
117
 
118
118
  // const listenPageMightFreeze = (callback) => {
119
119
  // const removePageHideListener = listenEvent(window, "pagehide", (pageHideEvent) => {
@@ -155,16 +155,16 @@ const listenPageUnload = (callback) => {
155
155
  "pagehide",
156
156
  (pageHideEvent) => {
157
157
  if (pageHideEvent.persisted !== true) {
158
- callback(pageHideEvent)
158
+ callback(pageHideEvent);
159
159
  }
160
160
  },
161
- )
162
- return removePageHideListener
163
- }
161
+ );
162
+ return removePageHideListener;
163
+ };
164
164
 
165
165
  const listenEvent = (emitter, event, callback) => {
166
- emitter.addEventListener(event, callback)
166
+ emitter.addEventListener(event, callback);
167
167
  return () => {
168
- emitter.removeEventListener(event, callback)
169
- }
170
- }
168
+ emitter.removeEventListener(event, callback);
169
+ };
170
+ };
@@ -1,5 +1,5 @@
1
- import { createConnectionManager } from "./connection_manager.js"
2
- import { createEventsManager } from "./events_manager.js"
1
+ import { createConnectionManager } from "./connection_manager.js";
2
+ import { createEventsManager } from "./events_manager.js";
3
3
 
4
4
  export const createEventSourceConnection = (
5
5
  eventSourceUrl,
@@ -12,72 +12,72 @@ export const createEventSourceConnection = (
12
12
  retryAllocatedMs = Infinity,
13
13
  } = {},
14
14
  ) => {
15
- const eventSourceOrigin = new URL(eventSourceUrl).origin
15
+ const eventSourceOrigin = new URL(eventSourceUrl).origin;
16
16
  const attemptConnection = ({ onOpen, onClosed }) => {
17
17
  const url = lastEventId
18
18
  ? addLastEventIdIntoUrlSearchParams(eventSourceUrl, lastEventId)
19
- : eventSourceUrl
20
- let eventSource = new EventSource(url, { withCredentials })
19
+ : eventSourceUrl;
20
+ let eventSource = new EventSource(url, { withCredentials });
21
21
  eventSource.onerror = () => {
22
- eventSource.onerror = null
23
- eventSource.onopen = null
24
- eventSource.onmessage = null
25
- eventSource = null
26
- onClosed()
27
- }
22
+ eventSource.onerror = null;
23
+ eventSource.onopen = null;
24
+ eventSource.onmessage = null;
25
+ eventSource = null;
26
+ onClosed();
27
+ };
28
28
  eventSource.onopen = () => {
29
- eventSource.onopen = null
30
- onOpen()
31
- }
29
+ eventSource.onopen = null;
30
+ onOpen();
31
+ };
32
32
  eventSource.onmessage = (messageEvent) => {
33
33
  if (messageEvent.origin === eventSourceOrigin) {
34
34
  if (messageEvent.lastEventId) {
35
- lastEventId = messageEvent.lastEventId
35
+ lastEventId = messageEvent.lastEventId;
36
36
  }
37
- const event = JSON.parse(messageEvent.data)
38
- eventsManager.triggerCallbacks(event)
37
+ const event = JSON.parse(messageEvent.data);
38
+ eventsManager.triggerCallbacks(event);
39
39
  }
40
- }
40
+ };
41
41
  return () => {
42
42
  if (eventSource) {
43
- eventSource.close()
43
+ eventSource.close();
44
44
  }
45
- }
46
- }
45
+ };
46
+ };
47
47
  const connectionManager = createConnectionManager(attemptConnection, {
48
48
  retry,
49
49
  retryMaxAttempt,
50
50
  retryAllocatedMs,
51
- })
51
+ });
52
52
  const eventsManager = createEventsManager({
53
53
  effect: () => {
54
54
  if (useEventsToManageConnection) {
55
- connectionManager.connect()
55
+ connectionManager.connect();
56
56
  return () => {
57
- connectionManager.disconnect()
58
- }
57
+ connectionManager.disconnect();
58
+ };
59
59
  }
60
- return null
60
+ return null;
61
61
  },
62
- })
62
+ });
63
63
 
64
64
  return {
65
65
  readyState: connectionManager.readyState,
66
66
  listenEvents: (namedCallbacks) => {
67
- return eventsManager.addCallbacks(namedCallbacks)
67
+ return eventsManager.addCallbacks(namedCallbacks);
68
68
  },
69
69
  destroy: () => {
70
- connectionManager.destroy()
71
- eventsManager.destroy()
70
+ connectionManager.destroy();
71
+ eventsManager.destroy();
72
72
  },
73
- }
74
- }
73
+ };
74
+ };
75
75
 
76
76
  const addLastEventIdIntoUrlSearchParams = (url, lastEventId) => {
77
77
  if (url.indexOf("?") === -1) {
78
- url += "?"
78
+ url += "?";
79
79
  } else {
80
- url += "&"
80
+ url += "&";
81
81
  }
82
- return `${url}last-event-id=${encodeURIComponent(lastEventId)}`
83
- }
82
+ return `${url}last-event-id=${encodeURIComponent(lastEventId)}`;
83
+ };
@@ -1,75 +1,75 @@
1
1
  export const createEventsManager = ({ effect = () => {} } = {}) => {
2
- const callbacksMap = new Map()
3
- let cleanup
2
+ const callbacksMap = new Map();
3
+ let cleanup;
4
4
  const addCallbacks = (namedCallbacks) => {
5
- let callbacksMapSize = callbacksMap.size
5
+ let callbacksMapSize = callbacksMap.size;
6
6
  Object.keys(namedCallbacks).forEach((eventName) => {
7
- const callback = namedCallbacks[eventName]
8
- const existingCallbacks = callbacksMap.get(eventName)
9
- let callbacks
7
+ const callback = namedCallbacks[eventName];
8
+ const existingCallbacks = callbacksMap.get(eventName);
9
+ let callbacks;
10
10
  if (existingCallbacks) {
11
- callbacks = existingCallbacks
11
+ callbacks = existingCallbacks;
12
12
  } else {
13
- callbacks = []
14
- callbacksMap.set(eventName, callbacks)
13
+ callbacks = [];
14
+ callbacksMap.set(eventName, callbacks);
15
15
  }
16
- callbacks.push(callback)
17
- })
16
+ callbacks.push(callback);
17
+ });
18
18
  if (effect && callbacksMapSize === 0 && callbacksMapSize.size > 0) {
19
- cleanup = effect()
19
+ cleanup = effect();
20
20
  }
21
21
 
22
- let removed = false
22
+ let removed = false;
23
23
  return () => {
24
- if (removed) return
25
- removed = true
26
- callbacksMapSize = callbacksMap.size
24
+ if (removed) return;
25
+ removed = true;
26
+ callbacksMapSize = callbacksMap.size;
27
27
  Object.keys(namedCallbacks).forEach((eventName) => {
28
- const callback = namedCallbacks[eventName]
29
- const callbacks = callbacksMap.get(eventName)
28
+ const callback = namedCallbacks[eventName];
29
+ const callbacks = callbacksMap.get(eventName);
30
30
  if (callbacks) {
31
- const index = callbacks.indexOf(callback)
31
+ const index = callbacks.indexOf(callback);
32
32
  if (index > -1) {
33
- callbacks.splice(index, 1)
33
+ callbacks.splice(index, 1);
34
34
  if (callbacks.length === 0) {
35
- callbacksMap.delete(eventName)
35
+ callbacksMap.delete(eventName);
36
36
  }
37
37
  }
38
38
  }
39
- })
40
- namedCallbacks = null // allow garbage collect
39
+ });
40
+ namedCallbacks = null; // allow garbage collect
41
41
  if (
42
42
  cleanup &&
43
43
  typeof cleanup === "function" &&
44
44
  callbacksMapSize > 0 &&
45
45
  callbacksMapSize.size === 0
46
46
  ) {
47
- cleanup()
48
- cleanup = null
47
+ cleanup();
48
+ cleanup = null;
49
49
  }
50
- }
51
- }
50
+ };
51
+ };
52
52
 
53
53
  const triggerCallbacks = (event) => {
54
- const callbacks = callbacksMap.get(event.type)
54
+ const callbacks = callbacksMap.get(event.type);
55
55
  if (callbacks) {
56
56
  callbacks.forEach((callback) => {
57
- callback(event)
58
- })
57
+ callback(event);
58
+ });
59
59
  }
60
- }
60
+ };
61
61
 
62
62
  const destroy = () => {
63
- callbacksMap.clear()
63
+ callbacksMap.clear();
64
64
  if (cleanup) {
65
- cleanup()
66
- cleanup = null
65
+ cleanup();
66
+ cleanup = null;
67
67
  }
68
- }
68
+ };
69
69
 
70
70
  return {
71
71
  addCallbacks,
72
72
  triggerCallbacks,
73
73
  destroy,
74
- }
75
- }
74
+ };
75
+ };
@@ -1,16 +1,16 @@
1
- import { createWebSocketConnection } from "./web_socket_connection.js"
1
+ import { createWebSocketConnection } from "./web_socket_connection.js";
2
2
 
3
- const websocketScheme = self.location.protocol === "https:" ? "wss" : "ws"
4
- const websocketUrl = `${websocketScheme}://${self.location.host}${self.location.pathname}${self.location.search}`
3
+ const websocketScheme = self.location.protocol === "https:" ? "wss" : "ws";
4
+ const websocketUrl = `${websocketScheme}://${self.location.host}${self.location.pathname}${self.location.search}`;
5
5
  const websocketConnection = createWebSocketConnection(websocketUrl, {
6
6
  retry: true,
7
7
  retryAllocatedMs: 10_000,
8
- })
9
- const { readyState, connect, disconnect, listenEvents } = websocketConnection
8
+ });
9
+ const { readyState, connect, disconnect, listenEvents } = websocketConnection;
10
10
  window.__server_events__ = {
11
11
  readyState,
12
12
  connect,
13
13
  disconnect,
14
14
  listenEvents,
15
- }
16
- connect()
15
+ };
16
+ connect();
@@ -1,5 +1,5 @@
1
- import { createConnectionManager } from "./connection_manager.js"
2
- import { createEventsManager } from "./events_manager.js"
1
+ import { createConnectionManager } from "./connection_manager.js";
2
+ import { createEventsManager } from "./events_manager.js";
3
3
 
4
4
  export const createWebSocketConnection = (
5
5
  websocketUrl,
@@ -14,68 +14,68 @@ export const createWebSocketConnection = (
14
14
  ) => {
15
15
  const connectionManager = createConnectionManager(
16
16
  ({ onClosed, onOpen }) => {
17
- let socket = new WebSocket(websocketUrl, protocols)
18
- let interval
17
+ let socket = new WebSocket(websocketUrl, protocols);
18
+ let interval;
19
19
  const cleanup = () => {
20
20
  if (socket) {
21
- socket.onerror = null
22
- socket.onopen = null
23
- socket.onclose = null
24
- socket.onmessage = null
25
- socket = null
26
- clearInterval(interval)
21
+ socket.onerror = null;
22
+ socket.onopen = null;
23
+ socket.onclose = null;
24
+ socket.onmessage = null;
25
+ socket = null;
26
+ clearInterval(interval);
27
27
  }
28
- }
28
+ };
29
29
  socket.onerror = () => {
30
- cleanup()
31
- onClosed()
32
- }
30
+ cleanup();
31
+ onClosed();
32
+ };
33
33
  socket.onopen = () => {
34
- socket.onopen = null
35
- onOpen()
34
+ socket.onopen = null;
35
+ onOpen();
36
36
  interval = setInterval(() => {
37
- socket.send('{"type":"ping"}')
38
- }, 30_000)
39
- }
37
+ socket.send('{"type":"ping"}');
38
+ }, 30_000);
39
+ };
40
40
  socket.onclose = () => {
41
- cleanup()
42
- onClosed()
43
- }
41
+ cleanup();
42
+ onClosed();
43
+ };
44
44
  socket.onmessage = (messageEvent) => {
45
- const event = JSON.parse(messageEvent.data)
46
- eventsManager.triggerCallbacks(event)
47
- }
45
+ const event = JSON.parse(messageEvent.data);
46
+ eventsManager.triggerCallbacks(event);
47
+ };
48
48
  return () => {
49
49
  if (socket) {
50
- socket.close()
51
- cleanup()
50
+ socket.close();
51
+ cleanup();
52
52
  }
53
- }
53
+ };
54
54
  },
55
55
  { retry, retryAfter, retryMaxAttempt, retryAllocatedMs },
56
- )
56
+ );
57
57
  const eventsManager = createEventsManager({
58
58
  effect: () => {
59
59
  if (useEventsToManageConnection) {
60
- connectionManager.connect()
60
+ connectionManager.connect();
61
61
  return () => {
62
- connectionManager.disconnect()
63
- }
62
+ connectionManager.disconnect();
63
+ };
64
64
  }
65
- return null
65
+ return null;
66
66
  },
67
- })
67
+ });
68
68
 
69
69
  return {
70
70
  readyState: connectionManager.readyState,
71
71
  connect: connectionManager.connect,
72
72
  disconnect: connectionManager.disconnect,
73
73
  listenEvents: (namedCallbacks) => {
74
- return eventsManager.addCallbacks(namedCallbacks)
74
+ return eventsManager.addCallbacks(namedCallbacks);
75
75
  },
76
76
  destroy: () => {
77
- connectionManager.destroy()
78
- eventsManager.destroy()
77
+ connectionManager.destroy();
78
+ eventsManager.destroy();
79
79
  },
80
- }
81
- }
80
+ };
81
+ };
@@ -8,12 +8,12 @@ import {
8
8
  stringifyHtmlAst,
9
9
  injectHtmlNodeAsEarlyAsPossible,
10
10
  createHtmlNode,
11
- } from "@jsenv/ast"
11
+ } from "@jsenv/ast";
12
12
 
13
13
  const serverEventsClientFileUrl = new URL(
14
14
  "./client/server_events_client.js",
15
15
  import.meta.url,
16
- ).href
16
+ ).href;
17
17
 
18
18
  export const jsenvPluginServerEventsClientInjection = () => {
19
19
  return {
@@ -21,7 +21,7 @@ export const jsenvPluginServerEventsClientInjection = () => {
21
21
  appliesDuring: "*",
22
22
  transformUrlContent: {
23
23
  html: (htmlUrlInfo, context) => {
24
- const htmlAst = parseHtmlString(htmlUrlInfo.content)
24
+ const htmlAst = parseHtmlString(htmlUrlInfo.content);
25
25
  const [serverEventsClientFileReference] = context.referenceUtils.inject(
26
26
  {
27
27
  type: "script",
@@ -29,7 +29,7 @@ export const jsenvPluginServerEventsClientInjection = () => {
29
29
  expectedType: "js_module",
30
30
  specifier: serverEventsClientFileUrl,
31
31
  },
32
- )
32
+ );
33
33
  injectHtmlNodeAsEarlyAsPossible(
34
34
  htmlAst,
35
35
  createHtmlNode({
@@ -38,12 +38,12 @@ export const jsenvPluginServerEventsClientInjection = () => {
38
38
  src: serverEventsClientFileReference.generatedSpecifier,
39
39
  }),
40
40
  "jsenv:server_events",
41
- )
42
- const htmlModified = stringifyHtmlAst(htmlAst)
41
+ );
42
+ const htmlModified = stringifyHtmlAst(htmlAst);
43
43
  return {
44
44
  content: htmlModified,
45
- }
45
+ };
46
46
  },
47
47
  },
48
- }
49
- }
48
+ };
49
+ };