Buckets:
| ; | |
| /* global __resourceQuery */ | |
| if (typeof EventSource !== "function") { | |
| throw new Error( | |
| "Environment doesn't support lazy compilation (requires EventSource)" | |
| ); | |
| } | |
| var urlBase = decodeURIComponent(__resourceQuery.slice(1)); | |
| /** @type {EventSource | undefined} */ | |
| var activeEventSource; | |
| var activeKeys = new Map(); | |
| var errorHandlers = new Set(); | |
| var updateEventSource = function updateEventSource() { | |
| if (activeEventSource) activeEventSource.close(); | |
| if (activeKeys.size) { | |
| activeEventSource = new EventSource( | |
| urlBase + Array.from(activeKeys.keys()).join("@") | |
| ); | |
| /** | |
| * @this {EventSource} | |
| * @param {Event & { message?: string, filename?: string, lineno?: number, colno?: number, error?: Error }} event event | |
| */ | |
| activeEventSource.onerror = function (event) { | |
| errorHandlers.forEach(function (onError) { | |
| onError( | |
| new Error( | |
| "Problem communicating active modules to the server: " + | |
| event.message + | |
| " " + | |
| event.filename + | |
| ":" + | |
| event.lineno + | |
| ":" + | |
| event.colno + | |
| " " + | |
| event.error | |
| ) | |
| ); | |
| }); | |
| }; | |
| } else { | |
| activeEventSource = undefined; | |
| } | |
| }; | |
| /** | |
| * @param {{ data: string, onError: (err: Error) => void, active: boolean, module: module }} options options | |
| * @returns {() => void} function to destroy response | |
| */ | |
| exports.keepAlive = function (options) { | |
| var data = options.data; | |
| var onError = options.onError; | |
| errorHandlers.add(onError); | |
| var value = activeKeys.get(data) || 0; | |
| activeKeys.set(data, value + 1); | |
| if (value === 0) { | |
| updateEventSource(); | |
| } | |
| if (!options.active && !options.module.hot) { | |
| console.log( | |
| "Hot Module Replacement is not enabled. Waiting for process restart..." | |
| ); | |
| } | |
| return function () { | |
| errorHandlers.delete(onError); | |
| setTimeout(function () { | |
| var value = activeKeys.get(data); | |
| if (value === 1) { | |
| activeKeys.delete(data); | |
| updateEventSource(); | |
| } else { | |
| activeKeys.set(data, value - 1); | |
| } | |
| }, 1000); | |
| }; | |
| }; | |
| /** | |
| * @param {string} value new url value | |
| */ | |
| exports.setUrl = function (value) { | |
| urlBase = value; | |
| }; | |
Xet Storage Details
- Size:
- 2.12 kB
- Xet hash:
- dddea9153ea32daf51f3861586e7941d8ba2a30e40c22454a2a4131fa425de38
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.