vscode/extensions/markdown-language-features/preview-src/messaging.ts
mxwj 018ff30de3
Some checks failed
Monaco Editor checks / Monaco Editor checks (push) Has been cancelled
Initial commit
2024-11-15 14:29:18 +08:00

34 lines
1017 B
TypeScript

/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { SettingsManager } from './settings';
import type { FromWebviewMessage } from '../types/previewMessaging';
export interface MessagePoster {
/**
* Post a message to the markdown extension
*/
postMessage<T extends FromWebviewMessage.Type>(
type: T['type'],
body: Omit<T, 'source' | 'type'>
): void;
}
export const createPosterForVsCode = (vscode: any, settingsManager: SettingsManager): MessagePoster => {
return {
postMessage<T extends FromWebviewMessage.Type>(
type: T['type'],
body: Omit<T, 'source' | 'type'>
): void {
vscode.postMessage({
type,
source: settingsManager.settings!.source,
...body
});
}
};
};