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