awa
This commit is contained in:
43
_internal/editor/esm/vs/base/common/hotReloadHelpers.js
Normal file
43
_internal/editor/esm/vs/base/common/hotReloadHelpers.js
Normal file
@@ -0,0 +1,43 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* 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 { constObservable, observableSignalFromEvent, observableValue } 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);
|
||||
}
|
||||
}
|
||||
const classes = new Map();
|
||||
export function createHotClass(clazz) {
|
||||
if (!isHotReloadEnabled()) {
|
||||
return constObservable(clazz);
|
||||
}
|
||||
const id = clazz.name;
|
||||
let existing = classes.get(id);
|
||||
if (!existing) {
|
||||
existing = observableValue(id, clazz);
|
||||
classes.set(id, existing);
|
||||
}
|
||||
else {
|
||||
setTimeout(() => {
|
||||
existing.set(clazz, undefined);
|
||||
}, 0);
|
||||
}
|
||||
return existing;
|
||||
}
|
||||
//# sourceMappingURL=hotReloadHelpers.js.map
|
||||
Reference in New Issue
Block a user