sussudio
Version:
An unofficial VS Code Internal API
50 lines (49 loc) • 2.5 kB
text/typescript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { AutorunObserver } from "./autorun.mjs";
import { IObservable, ObservableValue, TransactionImpl } from "./base.mjs";
import { Derived } from "./derived.mjs";
import { FromEventObservable } from "./utils.mjs";
export declare function setLogger(logger: IObservableLogger): void;
export declare function getLogger(): IObservableLogger | undefined;
interface IChangeInformation {
oldValue: unknown;
newValue: unknown;
change: unknown;
didChange: boolean;
}
export interface IObservableLogger {
handleObservableChanged(observable: ObservableValue<unknown, unknown>, info: IChangeInformation): void;
handleFromEventObservableTriggered(observable: FromEventObservable<any, any>, info: IChangeInformation): void;
handleAutorunCreated(autorun: AutorunObserver): void;
handleAutorunTriggered(autorun: AutorunObserver): void;
handleDerivedCreated(observable: Derived<unknown>): void;
handleDerivedRecomputed(observable: Derived<unknown>, info: IChangeInformation): void;
handleBeginTransaction(transaction: TransactionImpl): void;
handleEndTransaction(): void;
}
export declare class ConsoleObservableLogger implements IObservableLogger {
private indentation;
private textToConsoleArgs;
private formatInfo;
handleObservableChanged(observable: IObservable<unknown, unknown>, info: IChangeInformation): void;
private readonly changedObservablesSets;
formatChanges(changes: Set<IObservable<any, any>>): ConsoleText | undefined;
handleDerivedCreated(derived: Derived<unknown>): void;
handleDerivedRecomputed(derived: Derived<unknown>, info: IChangeInformation): void;
handleFromEventObservableTriggered(observable: FromEventObservable<any, any>, info: IChangeInformation): void;
handleAutorunCreated(autorun: AutorunObserver): void;
handleAutorunTriggered(autorun: AutorunObserver): void;
handleBeginTransaction(transaction: TransactionImpl): void;
handleEndTransaction(): void;
}
type ConsoleText = (ConsoleText | undefined)[] | {
text: string;
style: string;
data?: Record<string, unknown>;
} | {
data: Record<string, unknown>;
};
export {};