neocities/public/js/monaco/esm/vs/base/common/hotReloadHelpers.js

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);
}
}