monaco-editor-core
Version:
A browser based code editor
25 lines (24 loc) • 1.11 kB
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);
}
}