mirror of
https://github.com/neocities/neocities.git
synced 2025-05-08 07:48:29 +02:00
24 lines
1.1 KiB
JavaScript
24 lines
1.1 KiB
JavaScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
import { isHotReloadEnabled, registerHotReloadHandler } from './hotReload.js';
|
|
import { observableSignalFromEvent } from './observable.js';
|
|
export function readHotReloadableExport(value, reader) {
|
|
observeHotReloadableExports([value], reader);
|
|
return value;
|
|
}
|
|
export function observeHotReloadableExports(values, reader) {
|
|
if (isHotReloadEnabled()) {
|
|
const o = observableSignalFromEvent('reload', event => registerHotReloadHandler(({ oldExports }) => {
|
|
if (![...Object.values(oldExports)].some(v => values.includes(v))) {
|
|
return undefined;
|
|
}
|
|
return (_newExports) => {
|
|
event(undefined);
|
|
return true;
|
|
};
|
|
}));
|
|
o.read(reader);
|
|
}
|
|
}
|