monaco-editor-core 0.54.0 → 0.55.0-dev-20251007
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/nls.messages.de.js +1 -1
- package/esm/nls.messages.es.js +1 -1
- package/esm/nls.messages.fr.js +1 -1
- package/esm/nls.messages.it.js +1 -1
- package/esm/nls.messages.ja.js +1 -1
- package/esm/nls.messages.ko.js +1 -1
- package/esm/nls.messages.ru.js +1 -1
- package/esm/nls.messages.zh-cn.js +1 -1
- package/esm/nls.messages.zh-tw.js +1 -1
- package/esm/vs/base/browser/canIUse.js +1 -0
- package/esm/vs/base/browser/canIUse.js.map +1 -1
- package/esm/vs/base/browser/dom.js +9 -0
- package/esm/vs/base/browser/dom.js.map +1 -1
- package/esm/vs/base/browser/fastDomNode.js.map +1 -1
- package/esm/vs/base/browser/mouseEvent.js +3 -0
- package/esm/vs/base/browser/mouseEvent.js.map +1 -1
- package/esm/vs/base/browser/trustedTypes.js +2 -0
- package/esm/vs/base/browser/trustedTypes.js.map +1 -1
- package/esm/vs/base/browser/ui/list/listWidget.js +5 -5
- package/esm/vs/base/browser/ui/list/listWidget.js.map +1 -1
- package/esm/vs/base/browser/ui/sash/sash.css +1 -1
- package/esm/vs/base/browser/ui/sash/sash.js +4 -0
- package/esm/vs/base/browser/ui/sash/sash.js.map +1 -1
- package/esm/vs/base/browser/ui/scrollbar/scrollableElement.js +1 -1
- package/esm/vs/base/browser/ui/scrollbar/scrollableElement.js.map +1 -1
- package/esm/vs/base/browser/ui/table/table.css +2 -2
- package/esm/vs/base/browser/ui/tree/abstractTree.js +7 -3
- package/esm/vs/base/browser/ui/tree/abstractTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/asyncDataTree.js +4 -0
- package/esm/vs/base/browser/ui/tree/asyncDataTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/indexTreeModel.js +1 -0
- package/esm/vs/base/browser/ui/tree/indexTreeModel.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/media/tree.css +2 -2
- package/esm/vs/base/browser/webWorkerFactory.js +3 -0
- package/esm/vs/base/browser/webWorkerFactory.js.map +1 -1
- package/esm/vs/base/common/buffer.js.map +1 -1
- package/esm/vs/base/common/decorators.js +1 -0
- package/esm/vs/base/common/decorators.js.map +1 -1
- package/esm/vs/base/common/errors.js +1 -0
- package/esm/vs/base/common/errors.js.map +1 -1
- package/esm/vs/base/common/glob.js +1 -1
- package/esm/vs/base/common/glob.js.map +1 -1
- package/esm/vs/base/common/hash.js.map +1 -1
- package/esm/vs/base/common/hotReload.js +2 -0
- package/esm/vs/base/common/hotReload.js.map +1 -1
- package/esm/vs/base/common/hotReloadHelpers.js +1 -0
- package/esm/vs/base/common/hotReloadHelpers.js.map +1 -1
- package/esm/vs/base/common/lifecycle.js +19 -0
- package/esm/vs/base/common/lifecycle.js.map +1 -1
- package/esm/vs/base/common/map.js.map +1 -1
- package/esm/vs/base/common/marshalling.js +4 -0
- package/esm/vs/base/common/marshalling.js.map +1 -1
- package/esm/vs/base/common/network.js +1 -0
- package/esm/vs/base/common/network.js.map +1 -1
- package/esm/vs/base/common/objects.js +1 -0
- package/esm/vs/base/common/objects.js.map +1 -1
- package/esm/vs/base/common/observableInternal/changeTracker.js +4 -0
- package/esm/vs/base/common/observableInternal/changeTracker.js.map +1 -1
- package/esm/vs/base/common/observableInternal/debugLocation.js +1 -0
- package/esm/vs/base/common/observableInternal/debugLocation.js.map +1 -1
- package/esm/vs/base/common/observableInternal/debugName.js +1 -0
- package/esm/vs/base/common/observableInternal/debugName.js.map +1 -1
- package/esm/vs/base/common/observableInternal/logging/consoleObservableLogger.js +1 -0
- package/esm/vs/base/common/observableInternal/logging/consoleObservableLogger.js.map +1 -1
- package/esm/vs/base/common/observableInternal/logging/debugger/debuggerRpc.js +1 -0
- package/esm/vs/base/common/observableInternal/logging/debugger/debuggerRpc.js.map +1 -1
- package/esm/vs/base/common/observableInternal/logging/debugger/rpc.js +1 -0
- package/esm/vs/base/common/observableInternal/logging/debugger/rpc.js.map +1 -1
- package/esm/vs/base/common/observableInternal/observables/derived.js +7 -1
- package/esm/vs/base/common/observableInternal/observables/derived.js.map +1 -1
- package/esm/vs/base/common/observableInternal/observables/derivedImpl.js +2 -0
- package/esm/vs/base/common/observableInternal/observables/derivedImpl.js.map +1 -1
- package/esm/vs/base/common/observableInternal/observables/observableFromEvent.js +1 -0
- package/esm/vs/base/common/observableInternal/observables/observableFromEvent.js.map +1 -1
- package/esm/vs/base/common/observableInternal/reactions/autorunImpl.js +1 -0
- package/esm/vs/base/common/observableInternal/reactions/autorunImpl.js.map +1 -1
- package/esm/vs/base/common/process.js +1 -0
- package/esm/vs/base/common/process.js.map +1 -1
- package/esm/vs/base/common/product.js.map +1 -1
- package/esm/vs/base/common/types.js +2 -0
- package/esm/vs/base/common/types.js.map +1 -1
- package/esm/vs/base/common/worker/webWorker.js +26 -14
- package/esm/vs/base/common/worker/webWorker.js.map +1 -1
- package/esm/vs/base/parts/sandbox/common/sandboxTypes.js +2 -0
- package/esm/vs/base/parts/sandbox/common/sandboxTypes.js.map +1 -0
- package/esm/vs/editor/browser/config/editorConfiguration.js +3 -2
- package/esm/vs/editor/browser/config/editorConfiguration.js.map +1 -1
- package/esm/vs/editor/browser/config/migrateOptions.js +1 -1
- package/esm/vs/editor/browser/config/migrateOptions.js.map +1 -1
- package/esm/vs/editor/browser/controller/editContext/native/editContextFactory.js.map +1 -1
- package/esm/vs/editor/browser/controller/editContext/native/nativeEditContextUtils.js +2 -0
- package/esm/vs/editor/browser/controller/editContext/native/nativeEditContextUtils.js.map +1 -1
- package/esm/vs/editor/browser/controller/mouseHandler.js +2 -1
- package/esm/vs/editor/browser/controller/mouseHandler.js.map +1 -1
- package/esm/vs/editor/browser/controller/mouseTarget.js +7 -0
- package/esm/vs/editor/browser/controller/mouseTarget.js.map +1 -1
- package/esm/vs/editor/browser/controller/pointerHandler.js.map +1 -1
- package/esm/vs/editor/browser/coreCommands.js.map +1 -1
- package/esm/vs/editor/browser/editorBrowser.js.map +1 -1
- package/esm/vs/editor/browser/editorDom.js.map +1 -1
- package/esm/vs/editor/browser/editorExtensions.js.map +1 -1
- package/esm/vs/editor/browser/gpu/gpuUtils.js +1 -0
- package/esm/vs/editor/browser/gpu/gpuUtils.js.map +1 -1
- package/esm/vs/editor/browser/gpu/viewGpuContext.js +1 -0
- package/esm/vs/editor/browser/gpu/viewGpuContext.js.map +1 -1
- package/esm/vs/editor/browser/services/abstractCodeEditorService.js.map +1 -1
- package/esm/vs/editor/browser/services/bulkEditService.js.map +1 -1
- package/esm/vs/editor/browser/services/codeEditorService.js.map +1 -1
- package/esm/vs/editor/browser/services/editorWorkerService.js.map +1 -1
- package/esm/vs/editor/browser/services/hoverService/hover.css +2 -0
- package/esm/vs/editor/browser/services/hoverService/hoverService.js.map +1 -1
- package/esm/vs/editor/browser/services/hoverService/hoverWidget.js +1 -1
- package/esm/vs/editor/browser/services/hoverService/hoverWidget.js.map +1 -1
- package/esm/vs/editor/browser/services/inlineCompletionsService.js +8 -8
- package/esm/vs/editor/browser/services/inlineCompletionsService.js.map +1 -1
- package/esm/vs/editor/browser/services/openerService.js.map +1 -1
- package/esm/vs/editor/browser/view/viewLayer.js +1 -1
- package/esm/vs/editor/browser/view/viewLayer.js.map +1 -1
- package/esm/vs/editor/browser/view.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js +1 -0
- package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/viewZones/viewZones.js +1 -0
- package/esm/vs/editor/browser/viewParts/viewZones/viewZones.js.map +1 -1
- package/esm/vs/editor/browser/widget/codeEditor/codeEditorContributions.js.map +1 -1
- package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +4 -1
- package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js +1 -0
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/delegatingEditorImpl.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/diffEditorOptions.js +1 -0
- package/esm/vs/editor/browser/widget/diffEditor/diffEditorOptions.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +1 -0
- package/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/utils.js +2 -0
- package/esm/vs/editor/browser/widget/diffEditor/utils.js.map +1 -1
- package/esm/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js +2 -0
- package/esm/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js.map +1 -1
- package/esm/vs/editor/common/config/editorOptions.js +122 -68
- package/esm/vs/editor/common/config/editorOptions.js.map +1 -1
- package/esm/vs/editor/common/config/fontInfo.js +32 -16
- package/esm/vs/editor/common/config/fontInfo.js.map +1 -1
- package/esm/vs/editor/common/config/fontInfoFromSettings.js +16 -0
- package/esm/vs/editor/common/config/fontInfoFromSettings.js.map +1 -0
- package/esm/vs/editor/common/core/edits/edit.js +1 -0
- package/esm/vs/editor/common/core/edits/edit.js.map +1 -1
- package/esm/vs/editor/common/core/edits/stringEdit.js +2 -0
- package/esm/vs/editor/common/core/edits/stringEdit.js.map +1 -1
- package/esm/vs/editor/common/core/position.js +1 -1
- package/esm/vs/editor/common/core/position.js.map +1 -1
- package/esm/vs/editor/common/core/range.js +1 -1
- package/esm/vs/editor/common/core/range.js.map +1 -1
- package/esm/vs/editor/common/core/selection.js +1 -1
- package/esm/vs/editor/common/core/selection.js.map +1 -1
- package/esm/vs/editor/common/cursor/cursorMoveCommands.js.map +1 -1
- package/esm/vs/editor/common/editorCommon.js.map +1 -1
- package/esm/vs/editor/common/languages.js +1 -1
- package/esm/vs/editor/common/languages.js.map +1 -1
- package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/length.js +14 -0
- package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/length.js.map +1 -1
- package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/smallImmutableSet.js +2 -0
- package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/smallImmutableSet.js.map +1 -1
- package/esm/vs/editor/common/model/textModel.js +1 -1
- package/esm/vs/editor/common/model/textModel.js.map +1 -1
- package/esm/vs/editor/common/model.js +1 -1
- package/esm/vs/editor/common/model.js.map +1 -1
- package/esm/vs/editor/common/services/editorBaseApi.js.map +1 -1
- package/esm/vs/editor/common/services/editorWebWorker.js +1 -0
- package/esm/vs/editor/common/services/editorWebWorker.js.map +1 -1
- package/esm/vs/editor/common/services/editorWorkerHost.js.map +1 -1
- package/esm/vs/editor/common/services/modelService.js +14 -21
- package/esm/vs/editor/common/services/modelService.js.map +1 -1
- package/esm/vs/editor/common/textModelEditSource.js +2 -0
- package/esm/vs/editor/common/textModelEditSource.js.map +1 -1
- package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +40 -1
- package/esm/vs/editor/common/viewLayout/viewLineRenderer.js.map +1 -1
- package/esm/vs/editor/common/viewModel/viewModelImpl.js +2 -1
- package/esm/vs/editor/common/viewModel/viewModelImpl.js.map +1 -1
- package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js +1 -1
- package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js.map +1 -1
- package/esm/vs/editor/contrib/codelens/browser/codelensController.js +1 -1
- package/esm/vs/editor/contrib/codelens/browser/codelensController.js.map +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/colorDetector.js +1 -0
- package/esm/vs/editor/contrib/colorPicker/browser/colorDetector.js.map +1 -1
- package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +1 -0
- package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js.map +1 -1
- package/esm/vs/editor/contrib/find/browser/findModel.js +1 -0
- package/esm/vs/editor/contrib/find/browser/findModel.js.map +1 -1
- package/esm/vs/editor/contrib/find/browser/findWidget.css +5 -5
- package/esm/vs/editor/contrib/folding/browser/folding.css +4 -4
- package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js.map +1 -1
- package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
- package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js.map +1 -1
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js +30 -14
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +4 -3
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js +56 -7
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/structuredLogger.js +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/structuredLogger.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js +2 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js.map +1 -1
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +1 -1
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js.map +1 -1
- package/esm/vs/editor/contrib/rename/browser/renameWidget.js.map +1 -1
- package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.css +2 -0
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +2 -0
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js.map +1 -1
- package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js.map +1 -1
- package/esm/vs/editor/editor.api.d.ts +8 -8
- package/esm/vs/editor/editor.api.js +4 -0
- package/esm/vs/editor/editor.api.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneCodeEditor.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneEditor.js +37 -0
- package/esm/vs/editor/standalone/browser/standaloneEditor.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneLanguages.js +37 -0
- package/esm/vs/editor/standalone/browser/standaloneLanguages.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneServices.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneWebWorker.js.map +1 -1
- package/esm/vs/editor/standalone/common/monarch/monarchCompile.js +3 -0
- package/esm/vs/editor/standalone/common/monarch/monarchCompile.js.map +1 -1
- package/esm/vs/platform/accessibility/browser/accessibilityService.js +2 -2
- package/esm/vs/platform/accessibility/browser/accessibilityService.js.map +1 -1
- package/esm/vs/platform/actions/common/actions.js.map +1 -1
- package/esm/vs/platform/commands/common/commands.js.map +1 -1
- package/esm/vs/platform/contextkey/common/contextkey.js +5 -0
- package/esm/vs/platform/contextkey/common/contextkey.js.map +1 -1
- package/esm/vs/platform/dataChannel/browser/forwardingTelemetryService.js +1 -0
- package/esm/vs/platform/dataChannel/browser/forwardingTelemetryService.js.map +1 -1
- package/esm/vs/platform/dnd/browser/dnd.js +2 -0
- package/esm/vs/platform/dnd/browser/dnd.js.map +1 -1
- package/esm/vs/platform/instantiation/common/descriptors.js.map +1 -1
- package/esm/vs/platform/instantiation/common/instantiation.js.map +1 -1
- package/esm/vs/platform/instantiation/common/instantiationService.js +1 -0
- package/esm/vs/platform/instantiation/common/instantiationService.js.map +1 -1
- package/esm/vs/platform/list/browser/listService.js +5 -0
- package/esm/vs/platform/list/browser/listService.js.map +1 -1
- package/esm/vs/platform/log/common/log.js.map +1 -1
- package/esm/vs/platform/log/common/logService.js.map +1 -1
- package/esm/vs/platform/observable/common/wrapInHotClass.js +2 -0
- package/esm/vs/platform/observable/common/wrapInHotClass.js.map +1 -1
- package/esm/vs/platform/observable/common/wrapInReloadableClass.js +3 -0
- package/esm/vs/platform/observable/common/wrapInReloadableClass.js.map +1 -1
- package/esm/vs/platform/product/common/product.js +69 -0
- package/esm/vs/platform/product/common/product.js.map +1 -0
- package/esm/vs/platform/quickinput/browser/quickInput.js +1 -1
- package/esm/vs/platform/quickinput/browser/quickInput.js.map +1 -1
- package/monaco.d.ts +8 -8
- package/package.json +2 -2
|
@@ -10,6 +10,7 @@ import { BugIndicatingError } from './commonFacade/deps.js';
|
|
|
10
10
|
export function recordChanges(obs) {
|
|
11
11
|
return {
|
|
12
12
|
createChangeSummary: (_previousChangeSummary) => {
|
|
13
|
+
// eslint-disable-next-line local/code-no-any-casts
|
|
13
14
|
return {
|
|
14
15
|
changes: [],
|
|
15
16
|
};
|
|
@@ -17,6 +18,7 @@ export function recordChanges(obs) {
|
|
|
17
18
|
handleChange(ctx, changeSummary) {
|
|
18
19
|
for (const key in obs) {
|
|
19
20
|
if (ctx.didChange(obs[key])) {
|
|
21
|
+
// eslint-disable-next-line local/code-no-any-casts
|
|
20
22
|
changeSummary.changes.push({ key, change: ctx.change });
|
|
21
23
|
}
|
|
22
24
|
}
|
|
@@ -40,6 +42,7 @@ export function recordChangesLazy(getObs) {
|
|
|
40
42
|
let obs = undefined;
|
|
41
43
|
return {
|
|
42
44
|
createChangeSummary: (_previousChangeSummary) => {
|
|
45
|
+
// eslint-disable-next-line local/code-no-any-casts
|
|
43
46
|
return {
|
|
44
47
|
changes: [],
|
|
45
48
|
};
|
|
@@ -50,6 +53,7 @@ export function recordChangesLazy(getObs) {
|
|
|
50
53
|
}
|
|
51
54
|
for (const key in obs) {
|
|
52
55
|
if (ctx.didChange(obs[key])) {
|
|
56
|
+
// eslint-disable-next-line local/code-no-any-casts
|
|
53
57
|
changeSummary.changes.push({ key, change: ctx.change });
|
|
54
58
|
}
|
|
55
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/observableInternal/changeTracker.ts","vs/base/common/observableInternal/changeTracker.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAmB5D;;;EAGE;AACF,MAAM,UAAU,aAAa,CAA4D,GAAS;IAGjG,OAAO;QACN,mBAAmB,EAAE,CAAC,sBAAsB,EAAE,EAAE;YAC/C,OAAO;gBACN,OAAO,EAAE,EAAE;aACJ,CAAC;QACV,CAAC;QACD,YAAY,CAAC,GAAG,EAAE,aAAa;YAC9B,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;gBACvB,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/observableInternal/changeTracker.ts","vs/base/common/observableInternal/changeTracker.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAmB5D;;;EAGE;AACF,MAAM,UAAU,aAAa,CAA4D,GAAS;IAGjG,OAAO;QACN,mBAAmB,EAAE,CAAC,sBAAsB,EAAE,EAAE;YAC/C,mDAAmD;YACnD,OAAO;gBACN,OAAO,EAAE,EAAE;aACJ,CAAC;QACV,CAAC;QACD,YAAY,CAAC,GAAG,EAAE,aAAa;YAC9B,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;gBACvB,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC7B,mDAAmD;oBAClD,aAAa,CAAC,OAAe,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBAClE,CAAC;YACF,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QACD,YAAY,CAAC,MAAM,EAAE,aAAa;YACjC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;gBACvB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;oBACvB,MAAM,IAAI,kBAAkB,CAAC,yDAAyD,CAAC,CAAC;gBACzF,CAAC;gBACD,aAAa,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5C,CAAC;QACF,CAAC;KACD,CAAC;AACH,CAAC;AAED;;;EAGE;AACF,MAAM,UAAU,iBAAiB,CAA4D,MAAkB;IAG9G,IAAI,GAAG,GAAqB,SAAS,CAAC;IACtC,OAAO;QACN,mBAAmB,EAAE,CAAC,sBAAsB,EAAE,EAAE;YAC/C,mDAAmD;YACnD,OAAO;gBACN,OAAO,EAAE,EAAE;aACJ,CAAC;QACV,CAAC;QACD,YAAY,CAAC,GAAG,EAAE,aAAa;YAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;gBACV,GAAG,GAAG,MAAM,EAAE,CAAC;YAChB,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;gBACvB,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC7B,mDAAmD;oBAClD,aAAa,CAAC,OAAe,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBAClE,CAAC;YACF,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QACD,YAAY,CAAC,MAAM,EAAE,aAAa;YACjC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACV,GAAG,GAAG,MAAM,EAAE,CAAC;YAChB,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;gBACvB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;oBACvB,MAAM,IAAI,kBAAkB,CAAC,yDAAyD,CAAC,CAAC;gBACzF,CAAC;gBACD,aAAa,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5C,CAAC;QACF,CAAC;KACD,CAAC;AACH,CAAC","file":"changeTracker.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { BugIndicatingError } from './commonFacade/deps.js';\nimport { IObservableWithChange, IReader } from './base.js';\n\nexport interface IChangeTracker<TChangeSummary> {\n\tcreateChangeSummary(previousChangeSummary: TChangeSummary | undefined): TChangeSummary;\n\thandleChange(ctx: IChangeContext, change: TChangeSummary): boolean;\n\tbeforeUpdate?(reader: IReader, change: TChangeSummary): void;\n}\n\nexport interface IChangeContext {\n\treadonly changedObservable: IObservableWithChange<any, any>;\n\treadonly change: unknown;\n\n\t/**\n\t * Returns if the given observable caused the change.\n\t */\n\tdidChange<T, TChange>(observable: IObservableWithChange<T, TChange>): this is { change: TChange };\n}\n\n/**\n * Subscribes to and records changes and the last value of the given observables.\n * Don't use the key \"changes\", as it is reserved for the changes array!\n*/\nexport function recordChanges<TObs extends Record<any, IObservableWithChange<any, any>>>(obs: TObs):\n\tIChangeTracker<{ [TKey in keyof TObs]: ReturnType<TObs[TKey]['get']> }\n\t\t& { changes: readonly ({ [TKey in keyof TObs]: { key: TKey; change: TObs[TKey]['TChange'] } }[keyof TObs])[] }> {\n\treturn {\n\t\tcreateChangeSummary: (_previousChangeSummary) => {\n\t\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\t\treturn {\n\t\t\t\tchanges: [],\n\t\t\t} as any;\n\t\t},\n\t\thandleChange(ctx, changeSummary) {\n\t\t\tfor (const key in obs) {\n\t\t\t\tif (ctx.didChange(obs[key])) {\n\t\t\t\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\t\t\t\t(changeSummary.changes as any).push({ key, change: ctx.change });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\t\tbeforeUpdate(reader, changeSummary) {\n\t\t\tfor (const key in obs) {\n\t\t\t\tif (key === 'changes') {\n\t\t\t\t\tthrow new BugIndicatingError('property name \"changes\" is reserved for change tracking');\n\t\t\t\t}\n\t\t\t\tchangeSummary[key] = obs[key].read(reader);\n\t\t\t}\n\t\t}\n\t};\n}\n\n/**\n * Subscribes to and records changes and the last value of the given observables.\n * Don't use the key \"changes\", as it is reserved for the changes array!\n*/\nexport function recordChangesLazy<TObs extends Record<any, IObservableWithChange<any, any>>>(getObs: () => TObs):\n\tIChangeTracker<{ [TKey in keyof TObs]: ReturnType<TObs[TKey]['get']> }\n\t\t& { changes: readonly ({ [TKey in keyof TObs]: { key: TKey; change: TObs[TKey]['TChange'] } }[keyof TObs])[] }> {\n\tlet obs: TObs | undefined = undefined;\n\treturn {\n\t\tcreateChangeSummary: (_previousChangeSummary) => {\n\t\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\t\treturn {\n\t\t\t\tchanges: [],\n\t\t\t} as any;\n\t\t},\n\t\thandleChange(ctx, changeSummary) {\n\t\t\tif (!obs) {\n\t\t\t\tobs = getObs();\n\t\t\t}\n\t\t\tfor (const key in obs) {\n\t\t\t\tif (ctx.didChange(obs[key])) {\n\t\t\t\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\t\t\t\t(changeSummary.changes as any).push({ key, change: ctx.change });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\t\tbeforeUpdate(reader, changeSummary) {\n\t\t\tif (!obs) {\n\t\t\t\tobs = getObs();\n\t\t\t}\n\t\t\tfor (const key in obs) {\n\t\t\t\tif (key === 'changes') {\n\t\t\t\t\tthrow new BugIndicatingError('property name \"changes\" is reserved for change tracking');\n\t\t\t\t}\n\t\t\t\tchangeSummary[key] = obs[key].read(reader);\n\t\t\t}\n\t\t}\n\t};\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { BugIndicatingError } from './commonFacade/deps.js';\nimport { IObservableWithChange, IReader } from './base.js';\n\nexport interface IChangeTracker<TChangeSummary> {\n\tcreateChangeSummary(previousChangeSummary: TChangeSummary | undefined): TChangeSummary;\n\thandleChange(ctx: IChangeContext, change: TChangeSummary): boolean;\n\tbeforeUpdate?(reader: IReader, change: TChangeSummary): void;\n}\n\nexport interface IChangeContext {\n\treadonly changedObservable: IObservableWithChange<any, any>;\n\treadonly change: unknown;\n\n\t/**\n\t * Returns if the given observable caused the change.\n\t */\n\tdidChange<T, TChange>(observable: IObservableWithChange<T, TChange>): this is { change: TChange };\n}\n\n/**\n * Subscribes to and records changes and the last value of the given observables.\n * Don't use the key \"changes\", as it is reserved for the changes array!\n*/\nexport function recordChanges<TObs extends Record<any, IObservableWithChange<any, any>>>(obs: TObs):\n\tIChangeTracker<{ [TKey in keyof TObs]: ReturnType<TObs[TKey]['get']> }\n\t\t& { changes: readonly ({ [TKey in keyof TObs]: { key: TKey; change: TObs[TKey]['TChange'] } }[keyof TObs])[] }> {\n\treturn {\n\t\tcreateChangeSummary: (_previousChangeSummary) => {\n\t\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\t\treturn {\n\t\t\t\tchanges: [],\n\t\t\t} as any;\n\t\t},\n\t\thandleChange(ctx, changeSummary) {\n\t\t\tfor (const key in obs) {\n\t\t\t\tif (ctx.didChange(obs[key])) {\n\t\t\t\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\t\t\t\t(changeSummary.changes as any).push({ key, change: ctx.change });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\t\tbeforeUpdate(reader, changeSummary) {\n\t\t\tfor (const key in obs) {\n\t\t\t\tif (key === 'changes') {\n\t\t\t\t\tthrow new BugIndicatingError('property name \"changes\" is reserved for change tracking');\n\t\t\t\t}\n\t\t\t\tchangeSummary[key] = obs[key].read(reader);\n\t\t\t}\n\t\t}\n\t};\n}\n\n/**\n * Subscribes to and records changes and the last value of the given observables.\n * Don't use the key \"changes\", as it is reserved for the changes array!\n*/\nexport function recordChangesLazy<TObs extends Record<any, IObservableWithChange<any, any>>>(getObs: () => TObs):\n\tIChangeTracker<{ [TKey in keyof TObs]: ReturnType<TObs[TKey]['get']> }\n\t\t& { changes: readonly ({ [TKey in keyof TObs]: { key: TKey; change: TObs[TKey]['TChange'] } }[keyof TObs])[] }> {\n\tlet obs: TObs | undefined = undefined;\n\treturn {\n\t\tcreateChangeSummary: (_previousChangeSummary) => {\n\t\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\t\treturn {\n\t\t\t\tchanges: [],\n\t\t\t} as any;\n\t\t},\n\t\thandleChange(ctx, changeSummary) {\n\t\t\tif (!obs) {\n\t\t\t\tobs = getObs();\n\t\t\t}\n\t\t\tfor (const key in obs) {\n\t\t\t\tif (ctx.didChange(obs[key])) {\n\t\t\t\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\t\t\t\t(changeSummary.changes as any).push({ key, change: ctx.change });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\t\tbeforeUpdate(reader, changeSummary) {\n\t\t\tif (!obs) {\n\t\t\t\tobs = getObs();\n\t\t\t}\n\t\t\tfor (const key in obs) {\n\t\t\t\tif (key === 'changes') {\n\t\t\t\t\tthrow new BugIndicatingError('property name \"changes\" is reserved for change tracking');\n\t\t\t\t}\n\t\t\t\tchangeSummary[key] = obs[key].read(reader);\n\t\t\t}\n\t\t}\n\t};\n}\n"]}
|
|
@@ -13,6 +13,7 @@ export var DebugLocation;
|
|
|
13
13
|
if (!enabled) {
|
|
14
14
|
return undefined;
|
|
15
15
|
}
|
|
16
|
+
// eslint-disable-next-line local/code-no-any-casts
|
|
16
17
|
const Err = Error; // For the monaco editor checks, which don't have the nodejs types.
|
|
17
18
|
const l = Err.stackTraceLimit;
|
|
18
19
|
Err.stackTraceLimit = 3;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/observableInternal/debugLocation.ts","vs/base/common/observableInternal/debugLocation.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAIhG,MAAM,KAAW,aAAa,
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/observableInternal/debugLocation.ts","vs/base/common/observableInternal/debugLocation.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAIhG,MAAM,KAAW,aAAa,CAqB7B;AArBD,WAAiB,aAAa;IAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,SAAgB,MAAM;QACrB,OAAO,GAAG,IAAI,CAAC;IAChB,CAAC;IAFe,oBAAM,SAErB,CAAA;IAED,SAAgB,QAAQ;QACvB,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,mDAAmD;QACnD,MAAM,GAAG,GAAG,KAA2C,CAAC,CAAC,mEAAmE;QAE5H,MAAM,CAAC,GAAG,GAAG,CAAC,eAAe,CAAC;QAC9B,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAM,CAAC;QACjC,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC;QAExB,OAAO,iBAAiB,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;IAbe,sBAAQ,WAavB,CAAA;AACF,CAAC,EArBgB,aAAa,KAAb,aAAa,QAqB7B;AAED,MAAM,iBAAiB;IACf,MAAM,CAAC,SAAS,CAAC,KAAa,EAAE,SAAiB;QACvD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,iBAAiB,CAC3B,QAAQ,CAAC,QAAQ,EACjB,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,EAAE,CACX,CAAC;QACH,CAAC;aAAM,CAAC;YACP,OAAO,SAAS,CAAC;QAClB,CAAC;IACF,CAAC;IAED,YACiB,QAAgB,EAChB,IAAY,EACZ,MAAc,EACd,EAAU;QAHV,aAAQ,GAAR,QAAQ,CAAQ;QAChB,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAQ;QACd,OAAE,GAAF,EAAE,CAAQ;IAE3B,CAAC;CACD;AAUD,SAAS,SAAS,CAAC,SAAiB;IACnC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACtD,IAAI,KAAK,EAAE,CAAC;QACX,OAAO;YACN,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YAClB,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,EAAE,EAAE,SAAS;SACb,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAE5D,IAAI,MAAM,EAAE,CAAC;QACZ,OAAO;YACN,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;YACnB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3B,EAAE,EAAE,SAAS;SACb,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC","file":"debugLocation.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nexport type DebugLocation = DebugLocationImpl | undefined;\n\nexport namespace DebugLocation {\n\tlet enabled = false;\n\n\texport function enable(): void {\n\t\tenabled = true;\n\t}\n\n\texport function ofCaller(): DebugLocation {\n\t\tif (!enabled) {\n\t\t\treturn undefined;\n\t\t}\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tconst Err = Error as any as { stackTraceLimit: number }; // For the monaco editor checks, which don't have the nodejs types.\n\n\t\tconst l = Err.stackTraceLimit;\n\t\tErr.stackTraceLimit = 3;\n\t\tconst stack = new Error().stack!;\n\t\tErr.stackTraceLimit = l;\n\n\t\treturn DebugLocationImpl.fromStack(stack, 2);\n\t}\n}\n\nclass DebugLocationImpl implements ILocation {\n\tpublic static fromStack(stack: string, parentIdx: number): DebugLocationImpl | undefined {\n\t\tconst lines = stack.split('\\n');\n\t\tconst location = parseLine(lines[parentIdx + 1]);\n\t\tif (location) {\n\t\t\treturn new DebugLocationImpl(\n\t\t\t\tlocation.fileName,\n\t\t\t\tlocation.line,\n\t\t\t\tlocation.column,\n\t\t\t\tlocation.id\n\t\t\t);\n\t\t} else {\n\t\t\treturn undefined;\n\t\t}\n\t}\n\n\tconstructor(\n\t\tpublic readonly fileName: string,\n\t\tpublic readonly line: number,\n\t\tpublic readonly column: number,\n\t\tpublic readonly id: string,\n\t) {\n\t}\n}\n\n\nexport interface ILocation {\n\tfileName: string;\n\tline: number;\n\tcolumn: number;\n\tid: string;\n}\n\nfunction parseLine(stackLine: string): ILocation | undefined {\n\tconst match = stackLine.match(/\\((.*):(\\d+):(\\d+)\\)/);\n\tif (match) {\n\t\treturn {\n\t\t\tfileName: match[1],\n\t\t\tline: parseInt(match[2]),\n\t\t\tcolumn: parseInt(match[3]),\n\t\t\tid: stackLine,\n\t\t};\n\t}\n\n\tconst match2 = stackLine.match(/at ([^\\(\\)]*):(\\d+):(\\d+)/);\n\n\tif (match2) {\n\t\treturn {\n\t\t\tfileName: match2[1],\n\t\t\tline: parseInt(match2[2]),\n\t\t\tcolumn: parseInt(match2[3]),\n\t\t\tid: stackLine,\n\t\t};\n\t}\n\n\treturn undefined;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nexport type DebugLocation = DebugLocationImpl | undefined;\n\nexport namespace DebugLocation {\n\tlet enabled = false;\n\n\texport function enable(): void {\n\t\tenabled = true;\n\t}\n\n\texport function ofCaller(): DebugLocation {\n\t\tif (!enabled) {\n\t\t\treturn undefined;\n\t\t}\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tconst Err = Error as any as { stackTraceLimit: number }; // For the monaco editor checks, which don't have the nodejs types.\n\n\t\tconst l = Err.stackTraceLimit;\n\t\tErr.stackTraceLimit = 3;\n\t\tconst stack = new Error().stack!;\n\t\tErr.stackTraceLimit = l;\n\n\t\treturn DebugLocationImpl.fromStack(stack, 2);\n\t}\n}\n\nclass DebugLocationImpl implements ILocation {\n\tpublic static fromStack(stack: string, parentIdx: number): DebugLocationImpl | undefined {\n\t\tconst lines = stack.split('\\n');\n\t\tconst location = parseLine(lines[parentIdx + 1]);\n\t\tif (location) {\n\t\t\treturn new DebugLocationImpl(\n\t\t\t\tlocation.fileName,\n\t\t\t\tlocation.line,\n\t\t\t\tlocation.column,\n\t\t\t\tlocation.id\n\t\t\t);\n\t\t} else {\n\t\t\treturn undefined;\n\t\t}\n\t}\n\n\tconstructor(\n\t\tpublic readonly fileName: string,\n\t\tpublic readonly line: number,\n\t\tpublic readonly column: number,\n\t\tpublic readonly id: string,\n\t) {\n\t}\n}\n\n\nexport interface ILocation {\n\tfileName: string;\n\tline: number;\n\tcolumn: number;\n\tid: string;\n}\n\nfunction parseLine(stackLine: string): ILocation | undefined {\n\tconst match = stackLine.match(/\\((.*):(\\d+):(\\d+)\\)/);\n\tif (match) {\n\t\treturn {\n\t\t\tfileName: match[1],\n\t\t\tline: parseInt(match[2]),\n\t\t\tcolumn: parseInt(match[3]),\n\t\t\tid: stackLine,\n\t\t};\n\t}\n\n\tconst match2 = stackLine.match(/at ([^\\(\\)]*):(\\d+):(\\d+)/);\n\n\tif (match2) {\n\t\treturn {\n\t\t\tfileName: match2[1],\n\t\t\tline: parseInt(match2[2]),\n\t\t\tcolumn: parseInt(match2[3]),\n\t\t\tid: stackLine,\n\t\t};\n\t}\n\n\treturn undefined;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/observableInternal/debugName.ts","vs/base/common/observableInternal/debugName.ts"],"names":[],"mappings":"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","file":"debugName.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nexport interface IDebugNameData {\n\t/**\n\t * The owner object of an observable.\n\t * Used for debugging only, such as computing a name for the observable by iterating over the fields of the owner.\n\t */\n\treadonly owner?: DebugOwner | undefined;\n\n\t/**\n\t * A string or function that returns a string that represents the name of the observable.\n\t * Used for debugging only.\n\t */\n\treadonly debugName?: DebugNameSource | undefined;\n\n\t/**\n\t * A function that points to the defining function of the object.\n\t * Used for debugging only.\n\t */\n\treadonly debugReferenceFn?: Function | undefined;\n}\n\nexport class DebugNameData {\n\tconstructor(\n\t\tpublic readonly owner: DebugOwner | undefined,\n\t\tpublic readonly debugNameSource: DebugNameSource | undefined,\n\t\tpublic readonly referenceFn: Function | undefined,\n\t) { }\n\n\tpublic getDebugName(target: object): string | undefined {\n\t\treturn getDebugName(target, this);\n\t}\n}\n\n/**\n * The owning object of an observable.\n * Is only used for debugging purposes, such as computing a name for the observable by iterating over the fields of the owner.\n */\nexport type DebugOwner = object | undefined;\nexport type DebugNameSource = string | (() => string | undefined);\n\nconst countPerName = new Map<string, number>();\nconst cachedDebugName = new WeakMap<object, string>();\n\nexport function getDebugName(target: object, data: DebugNameData): string | undefined {\n\tconst cached = cachedDebugName.get(target);\n\tif (cached) {\n\t\treturn cached;\n\t}\n\n\tconst dbgName = computeDebugName(target, data);\n\tif (dbgName) {\n\t\tlet count = countPerName.get(dbgName) ?? 0;\n\t\tcount++;\n\t\tcountPerName.set(dbgName, count);\n\t\tconst result = count === 1 ? dbgName : `${dbgName}#${count}`;\n\t\tcachedDebugName.set(target, result);\n\t\treturn result;\n\t}\n\treturn undefined;\n}\n\nfunction computeDebugName(self: object, data: DebugNameData): string | undefined {\n\tconst cached = cachedDebugName.get(self);\n\tif (cached) {\n\t\treturn cached;\n\t}\n\n\tconst ownerStr = data.owner ? formatOwner(data.owner) + `.` : '';\n\n\tlet result: string | undefined;\n\tconst debugNameSource = data.debugNameSource;\n\tif (debugNameSource !== undefined) {\n\t\tif (typeof debugNameSource === 'function') {\n\t\t\tresult = debugNameSource();\n\t\t\tif (result !== undefined) {\n\t\t\t\treturn ownerStr + result;\n\t\t\t}\n\t\t} else {\n\t\t\treturn ownerStr + debugNameSource;\n\t\t}\n\t}\n\n\tconst referenceFn = data.referenceFn;\n\tif (referenceFn !== undefined) {\n\t\tresult = getFunctionName(referenceFn);\n\t\tif (result !== undefined) {\n\t\t\treturn ownerStr + result;\n\t\t}\n\t}\n\n\tif (data.owner !== undefined) {\n\t\tconst key = findKey(data.owner, self);\n\t\tif (key !== undefined) {\n\t\t\treturn ownerStr + key;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction findKey(obj: object, value: object): string | undefined {\n\tfor (const key in obj) {\n\t\tif ((obj as any)[key] === value) {\n\t\t\treturn key;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nconst countPerClassName = new Map<string, number>();\nconst ownerId = new WeakMap<object, string>();\n\nfunction formatOwner(owner: object): string {\n\tconst id = ownerId.get(owner);\n\tif (id) {\n\t\treturn id;\n\t}\n\tconst className = getClassName(owner) ?? 'Object';\n\tlet count = countPerClassName.get(className) ?? 0;\n\tcount++;\n\tcountPerClassName.set(className, count);\n\tconst result = count === 1 ? className : `${className}#${count}`;\n\townerId.set(owner, result);\n\treturn result;\n}\n\nexport function getClassName(obj: object): string | undefined {\n\tconst ctor = obj.constructor;\n\tif (ctor) {\n\t\tif (ctor.name === 'Object') {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn ctor.name;\n\t}\n\treturn undefined;\n}\n\nexport function getFunctionName(fn: Function): string | undefined {\n\tconst fnSrc = fn.toString();\n\t// Pattern: /** @description ... */\n\tconst regexp = /\\/\\*\\*\\s*@description\\s*([^*]*)\\*\\//;\n\tconst match = regexp.exec(fnSrc);\n\tconst result = match ? match[1] : undefined;\n\treturn result?.trim();\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nexport interface IDebugNameData {\n\t/**\n\t * The owner object of an observable.\n\t * Used for debugging only, such as computing a name for the observable by iterating over the fields of the owner.\n\t */\n\treadonly owner?: DebugOwner | undefined;\n\n\t/**\n\t * A string or function that returns a string that represents the name of the observable.\n\t * Used for debugging only.\n\t */\n\treadonly debugName?: DebugNameSource | undefined;\n\n\t/**\n\t * A function that points to the defining function of the object.\n\t * Used for debugging only.\n\t */\n\treadonly debugReferenceFn?: Function | undefined;\n}\n\nexport class DebugNameData {\n\tconstructor(\n\t\tpublic readonly owner: DebugOwner | undefined,\n\t\tpublic readonly debugNameSource: DebugNameSource | undefined,\n\t\tpublic readonly referenceFn: Function | undefined,\n\t) { }\n\n\tpublic getDebugName(target: object): string | undefined {\n\t\treturn getDebugName(target, this);\n\t}\n}\n\n/**\n * The owning object of an observable.\n * Is only used for debugging purposes, such as computing a name for the observable by iterating over the fields of the owner.\n */\nexport type DebugOwner = object | undefined;\nexport type DebugNameSource = string | (() => string | undefined);\n\nconst countPerName = new Map<string, number>();\nconst cachedDebugName = new WeakMap<object, string>();\n\nexport function getDebugName(target: object, data: DebugNameData): string | undefined {\n\tconst cached = cachedDebugName.get(target);\n\tif (cached) {\n\t\treturn cached;\n\t}\n\n\tconst dbgName = computeDebugName(target, data);\n\tif (dbgName) {\n\t\tlet count = countPerName.get(dbgName) ?? 0;\n\t\tcount++;\n\t\tcountPerName.set(dbgName, count);\n\t\tconst result = count === 1 ? dbgName : `${dbgName}#${count}`;\n\t\tcachedDebugName.set(target, result);\n\t\treturn result;\n\t}\n\treturn undefined;\n}\n\nfunction computeDebugName(self: object, data: DebugNameData): string | undefined {\n\tconst cached = cachedDebugName.get(self);\n\tif (cached) {\n\t\treturn cached;\n\t}\n\n\tconst ownerStr = data.owner ? formatOwner(data.owner) + `.` : '';\n\n\tlet result: string | undefined;\n\tconst debugNameSource = data.debugNameSource;\n\tif (debugNameSource !== undefined) {\n\t\tif (typeof debugNameSource === 'function') {\n\t\t\tresult = debugNameSource();\n\t\t\tif (result !== undefined) {\n\t\t\t\treturn ownerStr + result;\n\t\t\t}\n\t\t} else {\n\t\t\treturn ownerStr + debugNameSource;\n\t\t}\n\t}\n\n\tconst referenceFn = data.referenceFn;\n\tif (referenceFn !== undefined) {\n\t\tresult = getFunctionName(referenceFn);\n\t\tif (result !== undefined) {\n\t\t\treturn ownerStr + result;\n\t\t}\n\t}\n\n\tif (data.owner !== undefined) {\n\t\tconst key = findKey(data.owner, self);\n\t\tif (key !== undefined) {\n\t\t\treturn ownerStr + key;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction findKey(obj: object, value: object): string | undefined {\n\tfor (const key in obj) {\n\t\tif ((obj as any)[key] === value) {\n\t\t\treturn key;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nconst countPerClassName = new Map<string, number>();\nconst ownerId = new WeakMap<object, string>();\n\nfunction formatOwner(owner: object): string {\n\tconst id = ownerId.get(owner);\n\tif (id) {\n\t\treturn id;\n\t}\n\tconst className = getClassName(owner) ?? 'Object';\n\tlet count = countPerClassName.get(className) ?? 0;\n\tcount++;\n\tcountPerClassName.set(className, count);\n\tconst result = count === 1 ? className : `${className}#${count}`;\n\townerId.set(owner, result);\n\treturn result;\n}\n\nexport function getClassName(obj: object): string | undefined {\n\tconst ctor = obj.constructor;\n\tif (ctor) {\n\t\tif (ctor.name === 'Object') {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn ctor.name;\n\t}\n\treturn undefined;\n}\n\nexport function getFunctionName(fn: Function): string | undefined {\n\tconst fnSrc = fn.toString();\n\t// Pattern: /** @description ... */\n\tconst regexp = /\\/\\*\\*\\s*@description\\s*([^*]*)\\*\\//;\n\tconst match = regexp.exec(fnSrc);\n\tconst result = match ? match[1] : undefined;\n\treturn result?.trim();\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/observableInternal/debugName.ts","vs/base/common/observableInternal/debugName.ts"],"names":[],"mappings":"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","file":"debugName.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nexport interface IDebugNameData {\n\t/**\n\t * The owner object of an observable.\n\t * Used for debugging only, such as computing a name for the observable by iterating over the fields of the owner.\n\t */\n\treadonly owner?: DebugOwner | undefined;\n\n\t/**\n\t * A string or function that returns a string that represents the name of the observable.\n\t * Used for debugging only.\n\t */\n\treadonly debugName?: DebugNameSource | undefined;\n\n\t/**\n\t * A function that points to the defining function of the object.\n\t * Used for debugging only.\n\t */\n\treadonly debugReferenceFn?: Function | undefined;\n}\n\nexport class DebugNameData {\n\tconstructor(\n\t\tpublic readonly owner: DebugOwner | undefined,\n\t\tpublic readonly debugNameSource: DebugNameSource | undefined,\n\t\tpublic readonly referenceFn: Function | undefined,\n\t) { }\n\n\tpublic getDebugName(target: object): string | undefined {\n\t\treturn getDebugName(target, this);\n\t}\n}\n\n/**\n * The owning object of an observable.\n * Is only used for debugging purposes, such as computing a name for the observable by iterating over the fields of the owner.\n */\nexport type DebugOwner = object | undefined;\nexport type DebugNameSource = string | (() => string | undefined);\n\nconst countPerName = new Map<string, number>();\nconst cachedDebugName = new WeakMap<object, string>();\n\nexport function getDebugName(target: object, data: DebugNameData): string | undefined {\n\tconst cached = cachedDebugName.get(target);\n\tif (cached) {\n\t\treturn cached;\n\t}\n\n\tconst dbgName = computeDebugName(target, data);\n\tif (dbgName) {\n\t\tlet count = countPerName.get(dbgName) ?? 0;\n\t\tcount++;\n\t\tcountPerName.set(dbgName, count);\n\t\tconst result = count === 1 ? dbgName : `${dbgName}#${count}`;\n\t\tcachedDebugName.set(target, result);\n\t\treturn result;\n\t}\n\treturn undefined;\n}\n\nfunction computeDebugName(self: object, data: DebugNameData): string | undefined {\n\tconst cached = cachedDebugName.get(self);\n\tif (cached) {\n\t\treturn cached;\n\t}\n\n\tconst ownerStr = data.owner ? formatOwner(data.owner) + `.` : '';\n\n\tlet result: string | undefined;\n\tconst debugNameSource = data.debugNameSource;\n\tif (debugNameSource !== undefined) {\n\t\tif (typeof debugNameSource === 'function') {\n\t\t\tresult = debugNameSource();\n\t\t\tif (result !== undefined) {\n\t\t\t\treturn ownerStr + result;\n\t\t\t}\n\t\t} else {\n\t\t\treturn ownerStr + debugNameSource;\n\t\t}\n\t}\n\n\tconst referenceFn = data.referenceFn;\n\tif (referenceFn !== undefined) {\n\t\tresult = getFunctionName(referenceFn);\n\t\tif (result !== undefined) {\n\t\t\treturn ownerStr + result;\n\t\t}\n\t}\n\n\tif (data.owner !== undefined) {\n\t\tconst key = findKey(data.owner, self);\n\t\tif (key !== undefined) {\n\t\t\treturn ownerStr + key;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction findKey(obj: object, value: object): string | undefined {\n\tfor (const key in obj) {\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tif ((obj as any)[key] === value) {\n\t\t\treturn key;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nconst countPerClassName = new Map<string, number>();\nconst ownerId = new WeakMap<object, string>();\n\nfunction formatOwner(owner: object): string {\n\tconst id = ownerId.get(owner);\n\tif (id) {\n\t\treturn id;\n\t}\n\tconst className = getClassName(owner) ?? 'Object';\n\tlet count = countPerClassName.get(className) ?? 0;\n\tcount++;\n\tcountPerClassName.set(className, count);\n\tconst result = count === 1 ? className : `${className}#${count}`;\n\townerId.set(owner, result);\n\treturn result;\n}\n\nexport function getClassName(obj: object): string | undefined {\n\tconst ctor = obj.constructor;\n\tif (ctor) {\n\t\tif (ctor.name === 'Object') {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn ctor.name;\n\t}\n\treturn undefined;\n}\n\nexport function getFunctionName(fn: Function): string | undefined {\n\tconst fnSrc = fn.toString();\n\t// Pattern: /** @description ... */\n\tconst regexp = /\\/\\*\\*\\s*@description\\s*([^*]*)\\*\\//;\n\tconst match = regexp.exec(fnSrc);\n\tconst result = match ? match[1] : undefined;\n\treturn result?.trim();\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nexport interface IDebugNameData {\n\t/**\n\t * The owner object of an observable.\n\t * Used for debugging only, such as computing a name for the observable by iterating over the fields of the owner.\n\t */\n\treadonly owner?: DebugOwner | undefined;\n\n\t/**\n\t * A string or function that returns a string that represents the name of the observable.\n\t * Used for debugging only.\n\t */\n\treadonly debugName?: DebugNameSource | undefined;\n\n\t/**\n\t * A function that points to the defining function of the object.\n\t * Used for debugging only.\n\t */\n\treadonly debugReferenceFn?: Function | undefined;\n}\n\nexport class DebugNameData {\n\tconstructor(\n\t\tpublic readonly owner: DebugOwner | undefined,\n\t\tpublic readonly debugNameSource: DebugNameSource | undefined,\n\t\tpublic readonly referenceFn: Function | undefined,\n\t) { }\n\n\tpublic getDebugName(target: object): string | undefined {\n\t\treturn getDebugName(target, this);\n\t}\n}\n\n/**\n * The owning object of an observable.\n * Is only used for debugging purposes, such as computing a name for the observable by iterating over the fields of the owner.\n */\nexport type DebugOwner = object | undefined;\nexport type DebugNameSource = string | (() => string | undefined);\n\nconst countPerName = new Map<string, number>();\nconst cachedDebugName = new WeakMap<object, string>();\n\nexport function getDebugName(target: object, data: DebugNameData): string | undefined {\n\tconst cached = cachedDebugName.get(target);\n\tif (cached) {\n\t\treturn cached;\n\t}\n\n\tconst dbgName = computeDebugName(target, data);\n\tif (dbgName) {\n\t\tlet count = countPerName.get(dbgName) ?? 0;\n\t\tcount++;\n\t\tcountPerName.set(dbgName, count);\n\t\tconst result = count === 1 ? dbgName : `${dbgName}#${count}`;\n\t\tcachedDebugName.set(target, result);\n\t\treturn result;\n\t}\n\treturn undefined;\n}\n\nfunction computeDebugName(self: object, data: DebugNameData): string | undefined {\n\tconst cached = cachedDebugName.get(self);\n\tif (cached) {\n\t\treturn cached;\n\t}\n\n\tconst ownerStr = data.owner ? formatOwner(data.owner) + `.` : '';\n\n\tlet result: string | undefined;\n\tconst debugNameSource = data.debugNameSource;\n\tif (debugNameSource !== undefined) {\n\t\tif (typeof debugNameSource === 'function') {\n\t\t\tresult = debugNameSource();\n\t\t\tif (result !== undefined) {\n\t\t\t\treturn ownerStr + result;\n\t\t\t}\n\t\t} else {\n\t\t\treturn ownerStr + debugNameSource;\n\t\t}\n\t}\n\n\tconst referenceFn = data.referenceFn;\n\tif (referenceFn !== undefined) {\n\t\tresult = getFunctionName(referenceFn);\n\t\tif (result !== undefined) {\n\t\t\treturn ownerStr + result;\n\t\t}\n\t}\n\n\tif (data.owner !== undefined) {\n\t\tconst key = findKey(data.owner, self);\n\t\tif (key !== undefined) {\n\t\t\treturn ownerStr + key;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction findKey(obj: object, value: object): string | undefined {\n\tfor (const key in obj) {\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tif ((obj as any)[key] === value) {\n\t\t\treturn key;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nconst countPerClassName = new Map<string, number>();\nconst ownerId = new WeakMap<object, string>();\n\nfunction formatOwner(owner: object): string {\n\tconst id = ownerId.get(owner);\n\tif (id) {\n\t\treturn id;\n\t}\n\tconst className = getClassName(owner) ?? 'Object';\n\tlet count = countPerClassName.get(className) ?? 0;\n\tcount++;\n\tcountPerClassName.set(className, count);\n\tconst result = count === 1 ? className : `${className}#${count}`;\n\townerId.set(owner, result);\n\treturn result;\n}\n\nexport function getClassName(obj: object): string | undefined {\n\tconst ctor = obj.constructor;\n\tif (ctor) {\n\t\tif (ctor.name === 'Object') {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn ctor.name;\n\t}\n\treturn undefined;\n}\n\nexport function getFunctionName(fn: Function): string | undefined {\n\tconst fnSrc = fn.toString();\n\t// Pattern: /** @description ... */\n\tconst regexp = /\\/\\*\\*\\s*@description\\s*([^*]*)\\*\\//;\n\tconst match = regexp.exec(fnSrc);\n\tconst result = match ? match[1] : undefined;\n\treturn result?.trim();\n}\n"]}
|
|
@@ -64,6 +64,7 @@ export class ConsoleObservableLogger {
|
|
|
64
64
|
const debugTrackUpdating = false;
|
|
65
65
|
if (debugTrackUpdating) {
|
|
66
66
|
const updating = [];
|
|
67
|
+
// eslint-disable-next-line local/code-no-any-casts
|
|
67
68
|
derived.__debugUpdating = updating;
|
|
68
69
|
const existingBeginUpdate = derived.beginUpdate;
|
|
69
70
|
derived.beginUpdate = (obs) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/observableInternal/logging/consoleObservableLogger.ts","vs/base/common/observableInternal/logging/consoleObservableLogger.ts"],"names":[],"mappings":"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","file":"consoleObservableLogger.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IObservable } from '../base.js';\nimport { TransactionImpl } from '../transaction.js';\nimport { IObservableLogger, IChangeInformation, addLogger } from './logging.js';\nimport { getClassName } from '../debugName.js';\nimport { Derived } from '../observables/derivedImpl.js';\nimport { AutorunObserver } from '../reactions/autorunImpl.js';\n\nlet consoleObservableLogger: ConsoleObservableLogger | undefined;\n\nexport function logObservableToConsole(obs: IObservable<any>): void {\n\tif (!consoleObservableLogger) {\n\t\tconsoleObservableLogger = new ConsoleObservableLogger();\n\t\taddLogger(consoleObservableLogger);\n\t}\n\tconsoleObservableLogger.addFilteredObj(obs);\n}\n\nexport class ConsoleObservableLogger implements IObservableLogger {\n\tprivate indentation = 0;\n\n\tprivate _filteredObjects: Set<unknown> | undefined;\n\n\tpublic addFilteredObj(obj: unknown): void {\n\t\tif (!this._filteredObjects) {\n\t\t\tthis._filteredObjects = new Set();\n\t\t}\n\t\tthis._filteredObjects.add(obj);\n\t}\n\n\tprivate _isIncluded(obj: unknown): boolean {\n\t\treturn this._filteredObjects?.has(obj) ?? true;\n\t}\n\n\tprivate textToConsoleArgs(text: ConsoleText): unknown[] {\n\t\treturn consoleTextToArgs([\n\t\t\tnormalText(repeat('| ', this.indentation)),\n\t\t\ttext,\n\t\t]);\n\t}\n\n\tprivate formatInfo(info: IChangeInformation): ConsoleText[] {\n\t\tif (!info.hadValue) {\n\t\t\treturn [\n\t\t\t\tnormalText(` `),\n\t\t\t\tstyled(formatValue(info.newValue, 60), {\n\t\t\t\t\tcolor: 'green',\n\t\t\t\t}),\n\t\t\t\tnormalText(` (initial)`),\n\t\t\t];\n\t\t}\n\t\treturn info.didChange\n\t\t\t? [\n\t\t\t\tnormalText(` `),\n\t\t\t\tstyled(formatValue(info.oldValue, 70), {\n\t\t\t\t\tcolor: 'red',\n\t\t\t\t\tstrikeThrough: true,\n\t\t\t\t}),\n\t\t\t\tnormalText(` `),\n\t\t\t\tstyled(formatValue(info.newValue, 60), {\n\t\t\t\t\tcolor: 'green',\n\t\t\t\t}),\n\t\t\t]\n\t\t\t: [normalText(` (unchanged)`)];\n\t}\n\n\thandleObservableCreated(observable: IObservable<any>): void {\n\t\tif (observable instanceof Derived) {\n\t\t\tconst derived = observable;\n\t\t\tthis.changedObservablesSets.set(derived, new Set());\n\n\t\t\tconst debugTrackUpdating = false;\n\t\t\tif (debugTrackUpdating) {\n\t\t\t\tconst updating: IObservable<any>[] = [];\n\t\t\t\t(derived as any).__debugUpdating = updating;\n\n\t\t\t\tconst existingBeginUpdate = derived.beginUpdate;\n\t\t\t\tderived.beginUpdate = (obs) => {\n\t\t\t\t\tupdating.push(obs);\n\t\t\t\t\treturn existingBeginUpdate.apply(derived, [obs]);\n\t\t\t\t};\n\n\t\t\t\tconst existingEndUpdate = derived.endUpdate;\n\t\t\t\tderived.endUpdate = (obs) => {\n\t\t\t\t\tconst idx = updating.indexOf(obs);\n\t\t\t\t\tif (idx === -1) {\n\t\t\t\t\t\tconsole.error('endUpdate called without beginUpdate', derived.debugName, obs.debugName);\n\t\t\t\t\t}\n\t\t\t\t\tupdating.splice(idx, 1);\n\t\t\t\t\treturn existingEndUpdate.apply(derived, [obs]);\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\n\thandleOnListenerCountChanged(observable: IObservable<any>, newCount: number): void {\n\t}\n\n\thandleObservableUpdated(observable: IObservable<unknown>, info: IChangeInformation): void {\n\t\tif (!this._isIncluded(observable)) { return; }\n\t\tif (observable instanceof Derived) {\n\t\t\tthis._handleDerivedRecomputed(observable, info);\n\t\t\treturn;\n\t\t}\n\n\t\tconsole.log(...this.textToConsoleArgs([\n\t\t\tformatKind('observable value changed'),\n\t\t\tstyled(observable.debugName, { color: 'BlueViolet' }),\n\t\t\t...this.formatInfo(info),\n\t\t]));\n\t}\n\n\tprivate readonly changedObservablesSets = new WeakMap<object, Set<IObservable<any>>>();\n\n\tformatChanges(changes: Set<IObservable<any>>): ConsoleText | undefined {\n\t\tif (changes.size === 0) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn styled(\n\t\t\t' (changed deps: ' +\n\t\t\t[...changes].map((o) => o.debugName).join(', ') +\n\t\t\t')',\n\t\t\t{ color: 'gray' }\n\t\t);\n\t}\n\n\thandleDerivedDependencyChanged(derived: Derived<any>, observable: IObservable<any>, change: unknown): void {\n\t\tif (!this._isIncluded(derived)) { return; }\n\n\t\tthis.changedObservablesSets.get(derived)?.add(observable);\n\t}\n\n\t_handleDerivedRecomputed(derived: Derived<unknown>, info: IChangeInformation): void {\n\t\tif (!this._isIncluded(derived)) { return; }\n\n\t\tconst changedObservables = this.changedObservablesSets.get(derived);\n\t\tif (!changedObservables) { return; }\n\t\tconsole.log(...this.textToConsoleArgs([\n\t\t\tformatKind('derived recomputed'),\n\t\t\tstyled(derived.debugName, { color: 'BlueViolet' }),\n\t\t\t...this.formatInfo(info),\n\t\t\tthis.formatChanges(changedObservables),\n\t\t\t{ data: [{ fn: derived._debugNameData.referenceFn ?? derived._computeFn }] }\n\t\t]));\n\t\tchangedObservables.clear();\n\t}\n\n\thandleDerivedCleared(derived: Derived<unknown>): void {\n\t\tif (!this._isIncluded(derived)) { return; }\n\n\t\tconsole.log(...this.textToConsoleArgs([\n\t\t\tformatKind('derived cleared'),\n\t\t\tstyled(derived.debugName, { color: 'BlueViolet' }),\n\t\t]));\n\t}\n\n\thandleAutorunCreated(autorun: AutorunObserver): void {\n\t\tif (!this._isIncluded(autorun)) { return; }\n\n\t\tthis.changedObservablesSets.set(autorun, new Set());\n\t}\n\n\thandleAutorunDisposed(autorun: AutorunObserver): void {\n\t}\n\n\thandleAutorunDependencyChanged(autorun: AutorunObserver, observable: IObservable<any>, change: unknown): void {\n\t\tif (!this._isIncluded(autorun)) { return; }\n\n\t\tthis.changedObservablesSets.get(autorun)!.add(observable);\n\t}\n\n\thandleAutorunStarted(autorun: AutorunObserver): void {\n\t\tconst changedObservables = this.changedObservablesSets.get(autorun);\n\t\tif (!changedObservables) { return; }\n\n\t\tif (this._isIncluded(autorun)) {\n\t\t\tconsole.log(...this.textToConsoleArgs([\n\t\t\t\tformatKind('autorun'),\n\t\t\t\tstyled(autorun.debugName, { color: 'BlueViolet' }),\n\t\t\t\tthis.formatChanges(changedObservables),\n\t\t\t\t{ data: [{ fn: autorun._debugNameData.referenceFn ?? autorun._runFn }] }\n\t\t\t]));\n\t\t}\n\t\tchangedObservables.clear();\n\t\tthis.indentation++;\n\t}\n\n\thandleAutorunFinished(autorun: AutorunObserver): void {\n\t\tthis.indentation--;\n\t}\n\n\thandleBeginTransaction(transaction: TransactionImpl): void {\n\t\tlet transactionName = transaction.getDebugName();\n\t\tif (transactionName === undefined) {\n\t\t\ttransactionName = '';\n\t\t}\n\t\tif (this._isIncluded(transaction)) {\n\t\t\tconsole.log(...this.textToConsoleArgs([\n\t\t\t\tformatKind('transaction'),\n\t\t\t\tstyled(transactionName, { color: 'BlueViolet' }),\n\t\t\t\t{ data: [{ fn: transaction._fn }] }\n\t\t\t]));\n\t\t}\n\t\tthis.indentation++;\n\t}\n\n\thandleEndTransaction(): void {\n\t\tthis.indentation--;\n\t}\n}\ntype ConsoleText = (ConsoleText | undefined)[] |\n{ text: string; style: string; data?: unknown[] } |\n{ data: unknown[] };\nfunction consoleTextToArgs(text: ConsoleText): unknown[] {\n\tconst styles = new Array<any>();\n\tconst data: unknown[] = [];\n\tlet firstArg = '';\n\n\tfunction process(t: ConsoleText): void {\n\t\tif ('length' in t) {\n\t\t\tfor (const item of t) {\n\t\t\t\tif (item) {\n\t\t\t\t\tprocess(item);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ('text' in t) {\n\t\t\tfirstArg += `%c${t.text}`;\n\t\t\tstyles.push(t.style);\n\t\t\tif (t.data) {\n\t\t\t\tdata.push(...t.data);\n\t\t\t}\n\t\t} else if ('data' in t) {\n\t\t\tdata.push(...t.data);\n\t\t}\n\t}\n\n\tprocess(text);\n\n\tconst result = [firstArg, ...styles];\n\tresult.push(...data);\n\treturn result;\n}\nfunction normalText(text: string): ConsoleText {\n\treturn styled(text, { color: 'black' });\n}\nfunction formatKind(kind: string): ConsoleText {\n\treturn styled(padStr(`${kind}: `, 10), { color: 'black', bold: true });\n}\nfunction styled(\n\ttext: string,\n\toptions: { color: string; strikeThrough?: boolean; bold?: boolean } = {\n\t\tcolor: 'black',\n\t}\n): ConsoleText {\n\tfunction objToCss(styleObj: Record<string, string>): string {\n\t\treturn Object.entries(styleObj).reduce(\n\t\t\t(styleString, [propName, propValue]) => {\n\t\t\t\treturn `${styleString}${propName}:${propValue};`;\n\t\t\t},\n\t\t\t''\n\t\t);\n\t}\n\n\tconst style: Record<string, string> = {\n\t\tcolor: options.color,\n\t};\n\tif (options.strikeThrough) {\n\t\tstyle['text-decoration'] = 'line-through';\n\t}\n\tif (options.bold) {\n\t\tstyle['font-weight'] = 'bold';\n\t}\n\n\treturn {\n\t\ttext,\n\t\tstyle: objToCss(style),\n\t};\n}\n\nexport function formatValue(value: unknown, availableLen: number): string {\n\tswitch (typeof value) {\n\t\tcase 'number':\n\t\t\treturn '' + value;\n\t\tcase 'string':\n\t\t\tif (value.length + 2 <= availableLen) {\n\t\t\t\treturn `\"${value}\"`;\n\t\t\t}\n\t\t\treturn `\"${value.substr(0, availableLen - 7)}\"+...`;\n\n\t\tcase 'boolean':\n\t\t\treturn value ? 'true' : 'false';\n\t\tcase 'undefined':\n\t\t\treturn 'undefined';\n\t\tcase 'object':\n\t\t\tif (value === null) {\n\t\t\t\treturn 'null';\n\t\t\t}\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\treturn formatArray(value, availableLen);\n\t\t\t}\n\t\t\treturn formatObject(value, availableLen);\n\t\tcase 'symbol':\n\t\t\treturn value.toString();\n\t\tcase 'function':\n\t\t\treturn `[[Function${value.name ? ' ' + value.name : ''}]]`;\n\t\tdefault:\n\t\t\treturn '' + value;\n\t}\n}\n\nfunction formatArray(value: unknown[], availableLen: number): string {\n\tlet result = '[ ';\n\tlet first = true;\n\tfor (const val of value) {\n\t\tif (!first) {\n\t\t\tresult += ', ';\n\t\t}\n\t\tif (result.length - 5 > availableLen) {\n\t\t\tresult += '...';\n\t\t\tbreak;\n\t\t}\n\t\tfirst = false;\n\t\tresult += `${formatValue(val, availableLen - result.length)}`;\n\t}\n\tresult += ' ]';\n\treturn result;\n}\n\nfunction formatObject(value: object, availableLen: number): string {\n\tif (typeof value.toString === 'function' && value.toString !== Object.prototype.toString) {\n\t\tconst val = value.toString();\n\t\tif (val.length <= availableLen) {\n\t\t\treturn val;\n\t\t}\n\t\treturn val.substring(0, availableLen - 3) + '...';\n\t}\n\n\tconst className = getClassName(value);\n\n\tlet result = className ? className + '(' : '{ ';\n\tlet first = true;\n\tfor (const [key, val] of Object.entries(value)) {\n\t\tif (!first) {\n\t\t\tresult += ', ';\n\t\t}\n\t\tif (result.length - 5 > availableLen) {\n\t\t\tresult += '...';\n\t\t\tbreak;\n\t\t}\n\t\tfirst = false;\n\t\tresult += `${key}: ${formatValue(val, availableLen - result.length)}`;\n\t}\n\tresult += className ? ')' : ' }';\n\treturn result;\n}\n\nfunction repeat(str: string, count: number): string {\n\tlet result = '';\n\tfor (let i = 1; i <= count; i++) {\n\t\tresult += str;\n\t}\n\treturn result;\n}\n\nfunction padStr(str: string, length: number): string {\n\twhile (str.length < length) {\n\t\tstr += ' ';\n\t}\n\treturn str;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IObservable } from '../base.js';\nimport { TransactionImpl } from '../transaction.js';\nimport { IObservableLogger, IChangeInformation, addLogger } from './logging.js';\nimport { getClassName } from '../debugName.js';\nimport { Derived } from '../observables/derivedImpl.js';\nimport { AutorunObserver } from '../reactions/autorunImpl.js';\n\nlet consoleObservableLogger: ConsoleObservableLogger | undefined;\n\nexport function logObservableToConsole(obs: IObservable<any>): void {\n\tif (!consoleObservableLogger) {\n\t\tconsoleObservableLogger = new ConsoleObservableLogger();\n\t\taddLogger(consoleObservableLogger);\n\t}\n\tconsoleObservableLogger.addFilteredObj(obs);\n}\n\nexport class ConsoleObservableLogger implements IObservableLogger {\n\tprivate indentation = 0;\n\n\tprivate _filteredObjects: Set<unknown> | undefined;\n\n\tpublic addFilteredObj(obj: unknown): void {\n\t\tif (!this._filteredObjects) {\n\t\t\tthis._filteredObjects = new Set();\n\t\t}\n\t\tthis._filteredObjects.add(obj);\n\t}\n\n\tprivate _isIncluded(obj: unknown): boolean {\n\t\treturn this._filteredObjects?.has(obj) ?? true;\n\t}\n\n\tprivate textToConsoleArgs(text: ConsoleText): unknown[] {\n\t\treturn consoleTextToArgs([\n\t\t\tnormalText(repeat('| ', this.indentation)),\n\t\t\ttext,\n\t\t]);\n\t}\n\n\tprivate formatInfo(info: IChangeInformation): ConsoleText[] {\n\t\tif (!info.hadValue) {\n\t\t\treturn [\n\t\t\t\tnormalText(` `),\n\t\t\t\tstyled(formatValue(info.newValue, 60), {\n\t\t\t\t\tcolor: 'green',\n\t\t\t\t}),\n\t\t\t\tnormalText(` (initial)`),\n\t\t\t];\n\t\t}\n\t\treturn info.didChange\n\t\t\t? [\n\t\t\t\tnormalText(` `),\n\t\t\t\tstyled(formatValue(info.oldValue, 70), {\n\t\t\t\t\tcolor: 'red',\n\t\t\t\t\tstrikeThrough: true,\n\t\t\t\t}),\n\t\t\t\tnormalText(` `),\n\t\t\t\tstyled(formatValue(info.newValue, 60), {\n\t\t\t\t\tcolor: 'green',\n\t\t\t\t}),\n\t\t\t]\n\t\t\t: [normalText(` (unchanged)`)];\n\t}\n\n\thandleObservableCreated(observable: IObservable<any>): void {\n\t\tif (observable instanceof Derived) {\n\t\t\tconst derived = observable;\n\t\t\tthis.changedObservablesSets.set(derived, new Set());\n\n\t\t\tconst debugTrackUpdating = false;\n\t\t\tif (debugTrackUpdating) {\n\t\t\t\tconst updating: IObservable<any>[] = [];\n\t\t\t\t(derived as any).__debugUpdating = updating;\n\n\t\t\t\tconst existingBeginUpdate = derived.beginUpdate;\n\t\t\t\tderived.beginUpdate = (obs) => {\n\t\t\t\t\tupdating.push(obs);\n\t\t\t\t\treturn existingBeginUpdate.apply(derived, [obs]);\n\t\t\t\t};\n\n\t\t\t\tconst existingEndUpdate = derived.endUpdate;\n\t\t\t\tderived.endUpdate = (obs) => {\n\t\t\t\t\tconst idx = updating.indexOf(obs);\n\t\t\t\t\tif (idx === -1) {\n\t\t\t\t\t\tconsole.error('endUpdate called without beginUpdate', derived.debugName, obs.debugName);\n\t\t\t\t\t}\n\t\t\t\t\tupdating.splice(idx, 1);\n\t\t\t\t\treturn existingEndUpdate.apply(derived, [obs]);\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\n\thandleOnListenerCountChanged(observable: IObservable<any>, newCount: number): void {\n\t}\n\n\thandleObservableUpdated(observable: IObservable<unknown>, info: IChangeInformation): void {\n\t\tif (!this._isIncluded(observable)) { return; }\n\t\tif (observable instanceof Derived) {\n\t\t\tthis._handleDerivedRecomputed(observable, info);\n\t\t\treturn;\n\t\t}\n\n\t\tconsole.log(...this.textToConsoleArgs([\n\t\t\tformatKind('observable value changed'),\n\t\t\tstyled(observable.debugName, { color: 'BlueViolet' }),\n\t\t\t...this.formatInfo(info),\n\t\t]));\n\t}\n\n\tprivate readonly changedObservablesSets = new WeakMap<object, Set<IObservable<any>>>();\n\n\tformatChanges(changes: Set<IObservable<any>>): ConsoleText | undefined {\n\t\tif (changes.size === 0) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn styled(\n\t\t\t' (changed deps: ' +\n\t\t\t[...changes].map((o) => o.debugName).join(', ') +\n\t\t\t')',\n\t\t\t{ color: 'gray' }\n\t\t);\n\t}\n\n\thandleDerivedDependencyChanged(derived: Derived<any>, observable: IObservable<any>, change: unknown): void {\n\t\tif (!this._isIncluded(derived)) { return; }\n\n\t\tthis.changedObservablesSets.get(derived)?.add(observable);\n\t}\n\n\t_handleDerivedRecomputed(derived: Derived<unknown>, info: IChangeInformation): void {\n\t\tif (!this._isIncluded(derived)) { return; }\n\n\t\tconst changedObservables = this.changedObservablesSets.get(derived);\n\t\tif (!changedObservables) { return; }\n\t\tconsole.log(...this.textToConsoleArgs([\n\t\t\tformatKind('derived recomputed'),\n\t\t\tstyled(derived.debugName, { color: 'BlueViolet' }),\n\t\t\t...this.formatInfo(info),\n\t\t\tthis.formatChanges(changedObservables),\n\t\t\t{ data: [{ fn: derived._debugNameData.referenceFn ?? derived._computeFn }] }\n\t\t]));\n\t\tchangedObservables.clear();\n\t}\n\n\thandleDerivedCleared(derived: Derived<unknown>): void {\n\t\tif (!this._isIncluded(derived)) { return; }\n\n\t\tconsole.log(...this.textToConsoleArgs([\n\t\t\tformatKind('derived cleared'),\n\t\t\tstyled(derived.debugName, { color: 'BlueViolet' }),\n\t\t]));\n\t}\n\n\thandleAutorunCreated(autorun: AutorunObserver): void {\n\t\tif (!this._isIncluded(autorun)) { return; }\n\n\t\tthis.changedObservablesSets.set(autorun, new Set());\n\t}\n\n\thandleAutorunDisposed(autorun: AutorunObserver): void {\n\t}\n\n\thandleAutorunDependencyChanged(autorun: AutorunObserver, observable: IObservable<any>, change: unknown): void {\n\t\tif (!this._isIncluded(autorun)) { return; }\n\n\t\tthis.changedObservablesSets.get(autorun)!.add(observable);\n\t}\n\n\thandleAutorunStarted(autorun: AutorunObserver): void {\n\t\tconst changedObservables = this.changedObservablesSets.get(autorun);\n\t\tif (!changedObservables) { return; }\n\n\t\tif (this._isIncluded(autorun)) {\n\t\t\tconsole.log(...this.textToConsoleArgs([\n\t\t\t\tformatKind('autorun'),\n\t\t\t\tstyled(autorun.debugName, { color: 'BlueViolet' }),\n\t\t\t\tthis.formatChanges(changedObservables),\n\t\t\t\t{ data: [{ fn: autorun._debugNameData.referenceFn ?? autorun._runFn }] }\n\t\t\t]));\n\t\t}\n\t\tchangedObservables.clear();\n\t\tthis.indentation++;\n\t}\n\n\thandleAutorunFinished(autorun: AutorunObserver): void {\n\t\tthis.indentation--;\n\t}\n\n\thandleBeginTransaction(transaction: TransactionImpl): void {\n\t\tlet transactionName = transaction.getDebugName();\n\t\tif (transactionName === undefined) {\n\t\t\ttransactionName = '';\n\t\t}\n\t\tif (this._isIncluded(transaction)) {\n\t\t\tconsole.log(...this.textToConsoleArgs([\n\t\t\t\tformatKind('transaction'),\n\t\t\t\tstyled(transactionName, { color: 'BlueViolet' }),\n\t\t\t\t{ data: [{ fn: transaction._fn }] }\n\t\t\t]));\n\t\t}\n\t\tthis.indentation++;\n\t}\n\n\thandleEndTransaction(): void {\n\t\tthis.indentation--;\n\t}\n}\ntype ConsoleText = (ConsoleText | undefined)[] |\n{ text: string; style: string; data?: unknown[] } |\n{ data: unknown[] };\nfunction consoleTextToArgs(text: ConsoleText): unknown[] {\n\tconst styles = new Array<any>();\n\tconst data: unknown[] = [];\n\tlet firstArg = '';\n\n\tfunction process(t: ConsoleText): void {\n\t\tif ('length' in t) {\n\t\t\tfor (const item of t) {\n\t\t\t\tif (item) {\n\t\t\t\t\tprocess(item);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ('text' in t) {\n\t\t\tfirstArg += `%c${t.text}`;\n\t\t\tstyles.push(t.style);\n\t\t\tif (t.data) {\n\t\t\t\tdata.push(...t.data);\n\t\t\t}\n\t\t} else if ('data' in t) {\n\t\t\tdata.push(...t.data);\n\t\t}\n\t}\n\n\tprocess(text);\n\n\tconst result = [firstArg, ...styles];\n\tresult.push(...data);\n\treturn result;\n}\nfunction normalText(text: string): ConsoleText {\n\treturn styled(text, { color: 'black' });\n}\nfunction formatKind(kind: string): ConsoleText {\n\treturn styled(padStr(`${kind}: `, 10), { color: 'black', bold: true });\n}\nfunction styled(\n\ttext: string,\n\toptions: { color: string; strikeThrough?: boolean; bold?: boolean } = {\n\t\tcolor: 'black',\n\t}\n): ConsoleText {\n\tfunction objToCss(styleObj: Record<string, string>): string {\n\t\treturn Object.entries(styleObj).reduce(\n\t\t\t(styleString, [propName, propValue]) => {\n\t\t\t\treturn `${styleString}${propName}:${propValue};`;\n\t\t\t},\n\t\t\t''\n\t\t);\n\t}\n\n\tconst style: Record<string, string> = {\n\t\tcolor: options.color,\n\t};\n\tif (options.strikeThrough) {\n\t\tstyle['text-decoration'] = 'line-through';\n\t}\n\tif (options.bold) {\n\t\tstyle['font-weight'] = 'bold';\n\t}\n\n\treturn {\n\t\ttext,\n\t\tstyle: objToCss(style),\n\t};\n}\n\nexport function formatValue(value: unknown, availableLen: number): string {\n\tswitch (typeof value) {\n\t\tcase 'number':\n\t\t\treturn '' + value;\n\t\tcase 'string':\n\t\t\tif (value.length + 2 <= availableLen) {\n\t\t\t\treturn `\"${value}\"`;\n\t\t\t}\n\t\t\treturn `\"${value.substr(0, availableLen - 7)}\"+...`;\n\n\t\tcase 'boolean':\n\t\t\treturn value ? 'true' : 'false';\n\t\tcase 'undefined':\n\t\t\treturn 'undefined';\n\t\tcase 'object':\n\t\t\tif (value === null) {\n\t\t\t\treturn 'null';\n\t\t\t}\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\treturn formatArray(value, availableLen);\n\t\t\t}\n\t\t\treturn formatObject(value, availableLen);\n\t\tcase 'symbol':\n\t\t\treturn value.toString();\n\t\tcase 'function':\n\t\t\treturn `[[Function${value.name ? ' ' + value.name : ''}]]`;\n\t\tdefault:\n\t\t\treturn '' + value;\n\t}\n}\n\nfunction formatArray(value: unknown[], availableLen: number): string {\n\tlet result = '[ ';\n\tlet first = true;\n\tfor (const val of value) {\n\t\tif (!first) {\n\t\t\tresult += ', ';\n\t\t}\n\t\tif (result.length - 5 > availableLen) {\n\t\t\tresult += '...';\n\t\t\tbreak;\n\t\t}\n\t\tfirst = false;\n\t\tresult += `${formatValue(val, availableLen - result.length)}`;\n\t}\n\tresult += ' ]';\n\treturn result;\n}\n\nfunction formatObject(value: object, availableLen: number): string {\n\tif (typeof value.toString === 'function' && value.toString !== Object.prototype.toString) {\n\t\tconst val = value.toString();\n\t\tif (val.length <= availableLen) {\n\t\t\treturn val;\n\t\t}\n\t\treturn val.substring(0, availableLen - 3) + '...';\n\t}\n\n\tconst className = getClassName(value);\n\n\tlet result = className ? className + '(' : '{ ';\n\tlet first = true;\n\tfor (const [key, val] of Object.entries(value)) {\n\t\tif (!first) {\n\t\t\tresult += ', ';\n\t\t}\n\t\tif (result.length - 5 > availableLen) {\n\t\t\tresult += '...';\n\t\t\tbreak;\n\t\t}\n\t\tfirst = false;\n\t\tresult += `${key}: ${formatValue(val, availableLen - result.length)}`;\n\t}\n\tresult += className ? ')' : ' }';\n\treturn result;\n}\n\nfunction repeat(str: string, count: number): string {\n\tlet result = '';\n\tfor (let i = 1; i <= count; i++) {\n\t\tresult += str;\n\t}\n\treturn result;\n}\n\nfunction padStr(str: string, length: number): string {\n\twhile (str.length < length) {\n\t\tstr += ' ';\n\t}\n\treturn str;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/observableInternal/logging/consoleObservableLogger.ts","vs/base/common/observableInternal/logging/consoleObservableLogger.ts"],"names":[],"mappings":"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","file":"consoleObservableLogger.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IObservable } from '../base.js';\nimport { TransactionImpl } from '../transaction.js';\nimport { IObservableLogger, IChangeInformation, addLogger } from './logging.js';\nimport { getClassName } from '../debugName.js';\nimport { Derived } from '../observables/derivedImpl.js';\nimport { AutorunObserver } from '../reactions/autorunImpl.js';\n\nlet consoleObservableLogger: ConsoleObservableLogger | undefined;\n\nexport function logObservableToConsole(obs: IObservable<any>): void {\n\tif (!consoleObservableLogger) {\n\t\tconsoleObservableLogger = new ConsoleObservableLogger();\n\t\taddLogger(consoleObservableLogger);\n\t}\n\tconsoleObservableLogger.addFilteredObj(obs);\n}\n\nexport class ConsoleObservableLogger implements IObservableLogger {\n\tprivate indentation = 0;\n\n\tprivate _filteredObjects: Set<unknown> | undefined;\n\n\tpublic addFilteredObj(obj: unknown): void {\n\t\tif (!this._filteredObjects) {\n\t\t\tthis._filteredObjects = new Set();\n\t\t}\n\t\tthis._filteredObjects.add(obj);\n\t}\n\n\tprivate _isIncluded(obj: unknown): boolean {\n\t\treturn this._filteredObjects?.has(obj) ?? true;\n\t}\n\n\tprivate textToConsoleArgs(text: ConsoleText): unknown[] {\n\t\treturn consoleTextToArgs([\n\t\t\tnormalText(repeat('| ', this.indentation)),\n\t\t\ttext,\n\t\t]);\n\t}\n\n\tprivate formatInfo(info: IChangeInformation): ConsoleText[] {\n\t\tif (!info.hadValue) {\n\t\t\treturn [\n\t\t\t\tnormalText(` `),\n\t\t\t\tstyled(formatValue(info.newValue, 60), {\n\t\t\t\t\tcolor: 'green',\n\t\t\t\t}),\n\t\t\t\tnormalText(` (initial)`),\n\t\t\t];\n\t\t}\n\t\treturn info.didChange\n\t\t\t? [\n\t\t\t\tnormalText(` `),\n\t\t\t\tstyled(formatValue(info.oldValue, 70), {\n\t\t\t\t\tcolor: 'red',\n\t\t\t\t\tstrikeThrough: true,\n\t\t\t\t}),\n\t\t\t\tnormalText(` `),\n\t\t\t\tstyled(formatValue(info.newValue, 60), {\n\t\t\t\t\tcolor: 'green',\n\t\t\t\t}),\n\t\t\t]\n\t\t\t: [normalText(` (unchanged)`)];\n\t}\n\n\thandleObservableCreated(observable: IObservable<any>): void {\n\t\tif (observable instanceof Derived) {\n\t\t\tconst derived = observable;\n\t\t\tthis.changedObservablesSets.set(derived, new Set());\n\n\t\t\tconst debugTrackUpdating = false;\n\t\t\tif (debugTrackUpdating) {\n\t\t\t\tconst updating: IObservable<any>[] = [];\n\t\t\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\t\t\t(derived as any).__debugUpdating = updating;\n\n\t\t\t\tconst existingBeginUpdate = derived.beginUpdate;\n\t\t\t\tderived.beginUpdate = (obs) => {\n\t\t\t\t\tupdating.push(obs);\n\t\t\t\t\treturn existingBeginUpdate.apply(derived, [obs]);\n\t\t\t\t};\n\n\t\t\t\tconst existingEndUpdate = derived.endUpdate;\n\t\t\t\tderived.endUpdate = (obs) => {\n\t\t\t\t\tconst idx = updating.indexOf(obs);\n\t\t\t\t\tif (idx === -1) {\n\t\t\t\t\t\tconsole.error('endUpdate called without beginUpdate', derived.debugName, obs.debugName);\n\t\t\t\t\t}\n\t\t\t\t\tupdating.splice(idx, 1);\n\t\t\t\t\treturn existingEndUpdate.apply(derived, [obs]);\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\n\thandleOnListenerCountChanged(observable: IObservable<any>, newCount: number): void {\n\t}\n\n\thandleObservableUpdated(observable: IObservable<unknown>, info: IChangeInformation): void {\n\t\tif (!this._isIncluded(observable)) { return; }\n\t\tif (observable instanceof Derived) {\n\t\t\tthis._handleDerivedRecomputed(observable, info);\n\t\t\treturn;\n\t\t}\n\n\t\tconsole.log(...this.textToConsoleArgs([\n\t\t\tformatKind('observable value changed'),\n\t\t\tstyled(observable.debugName, { color: 'BlueViolet' }),\n\t\t\t...this.formatInfo(info),\n\t\t]));\n\t}\n\n\tprivate readonly changedObservablesSets = new WeakMap<object, Set<IObservable<any>>>();\n\n\tformatChanges(changes: Set<IObservable<any>>): ConsoleText | undefined {\n\t\tif (changes.size === 0) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn styled(\n\t\t\t' (changed deps: ' +\n\t\t\t[...changes].map((o) => o.debugName).join(', ') +\n\t\t\t')',\n\t\t\t{ color: 'gray' }\n\t\t);\n\t}\n\n\thandleDerivedDependencyChanged(derived: Derived<any>, observable: IObservable<any>, change: unknown): void {\n\t\tif (!this._isIncluded(derived)) { return; }\n\n\t\tthis.changedObservablesSets.get(derived)?.add(observable);\n\t}\n\n\t_handleDerivedRecomputed(derived: Derived<unknown>, info: IChangeInformation): void {\n\t\tif (!this._isIncluded(derived)) { return; }\n\n\t\tconst changedObservables = this.changedObservablesSets.get(derived);\n\t\tif (!changedObservables) { return; }\n\t\tconsole.log(...this.textToConsoleArgs([\n\t\t\tformatKind('derived recomputed'),\n\t\t\tstyled(derived.debugName, { color: 'BlueViolet' }),\n\t\t\t...this.formatInfo(info),\n\t\t\tthis.formatChanges(changedObservables),\n\t\t\t{ data: [{ fn: derived._debugNameData.referenceFn ?? derived._computeFn }] }\n\t\t]));\n\t\tchangedObservables.clear();\n\t}\n\n\thandleDerivedCleared(derived: Derived<unknown>): void {\n\t\tif (!this._isIncluded(derived)) { return; }\n\n\t\tconsole.log(...this.textToConsoleArgs([\n\t\t\tformatKind('derived cleared'),\n\t\t\tstyled(derived.debugName, { color: 'BlueViolet' }),\n\t\t]));\n\t}\n\n\thandleAutorunCreated(autorun: AutorunObserver): void {\n\t\tif (!this._isIncluded(autorun)) { return; }\n\n\t\tthis.changedObservablesSets.set(autorun, new Set());\n\t}\n\n\thandleAutorunDisposed(autorun: AutorunObserver): void {\n\t}\n\n\thandleAutorunDependencyChanged(autorun: AutorunObserver, observable: IObservable<any>, change: unknown): void {\n\t\tif (!this._isIncluded(autorun)) { return; }\n\n\t\tthis.changedObservablesSets.get(autorun)!.add(observable);\n\t}\n\n\thandleAutorunStarted(autorun: AutorunObserver): void {\n\t\tconst changedObservables = this.changedObservablesSets.get(autorun);\n\t\tif (!changedObservables) { return; }\n\n\t\tif (this._isIncluded(autorun)) {\n\t\t\tconsole.log(...this.textToConsoleArgs([\n\t\t\t\tformatKind('autorun'),\n\t\t\t\tstyled(autorun.debugName, { color: 'BlueViolet' }),\n\t\t\t\tthis.formatChanges(changedObservables),\n\t\t\t\t{ data: [{ fn: autorun._debugNameData.referenceFn ?? autorun._runFn }] }\n\t\t\t]));\n\t\t}\n\t\tchangedObservables.clear();\n\t\tthis.indentation++;\n\t}\n\n\thandleAutorunFinished(autorun: AutorunObserver): void {\n\t\tthis.indentation--;\n\t}\n\n\thandleBeginTransaction(transaction: TransactionImpl): void {\n\t\tlet transactionName = transaction.getDebugName();\n\t\tif (transactionName === undefined) {\n\t\t\ttransactionName = '';\n\t\t}\n\t\tif (this._isIncluded(transaction)) {\n\t\t\tconsole.log(...this.textToConsoleArgs([\n\t\t\t\tformatKind('transaction'),\n\t\t\t\tstyled(transactionName, { color: 'BlueViolet' }),\n\t\t\t\t{ data: [{ fn: transaction._fn }] }\n\t\t\t]));\n\t\t}\n\t\tthis.indentation++;\n\t}\n\n\thandleEndTransaction(): void {\n\t\tthis.indentation--;\n\t}\n}\ntype ConsoleText = (ConsoleText | undefined)[] |\n{ text: string; style: string; data?: unknown[] } |\n{ data: unknown[] };\nfunction consoleTextToArgs(text: ConsoleText): unknown[] {\n\tconst styles = new Array<any>();\n\tconst data: unknown[] = [];\n\tlet firstArg = '';\n\n\tfunction process(t: ConsoleText): void {\n\t\tif ('length' in t) {\n\t\t\tfor (const item of t) {\n\t\t\t\tif (item) {\n\t\t\t\t\tprocess(item);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ('text' in t) {\n\t\t\tfirstArg += `%c${t.text}`;\n\t\t\tstyles.push(t.style);\n\t\t\tif (t.data) {\n\t\t\t\tdata.push(...t.data);\n\t\t\t}\n\t\t} else if ('data' in t) {\n\t\t\tdata.push(...t.data);\n\t\t}\n\t}\n\n\tprocess(text);\n\n\tconst result = [firstArg, ...styles];\n\tresult.push(...data);\n\treturn result;\n}\nfunction normalText(text: string): ConsoleText {\n\treturn styled(text, { color: 'black' });\n}\nfunction formatKind(kind: string): ConsoleText {\n\treturn styled(padStr(`${kind}: `, 10), { color: 'black', bold: true });\n}\nfunction styled(\n\ttext: string,\n\toptions: { color: string; strikeThrough?: boolean; bold?: boolean } = {\n\t\tcolor: 'black',\n\t}\n): ConsoleText {\n\tfunction objToCss(styleObj: Record<string, string>): string {\n\t\treturn Object.entries(styleObj).reduce(\n\t\t\t(styleString, [propName, propValue]) => {\n\t\t\t\treturn `${styleString}${propName}:${propValue};`;\n\t\t\t},\n\t\t\t''\n\t\t);\n\t}\n\n\tconst style: Record<string, string> = {\n\t\tcolor: options.color,\n\t};\n\tif (options.strikeThrough) {\n\t\tstyle['text-decoration'] = 'line-through';\n\t}\n\tif (options.bold) {\n\t\tstyle['font-weight'] = 'bold';\n\t}\n\n\treturn {\n\t\ttext,\n\t\tstyle: objToCss(style),\n\t};\n}\n\nexport function formatValue(value: unknown, availableLen: number): string {\n\tswitch (typeof value) {\n\t\tcase 'number':\n\t\t\treturn '' + value;\n\t\tcase 'string':\n\t\t\tif (value.length + 2 <= availableLen) {\n\t\t\t\treturn `\"${value}\"`;\n\t\t\t}\n\t\t\treturn `\"${value.substr(0, availableLen - 7)}\"+...`;\n\n\t\tcase 'boolean':\n\t\t\treturn value ? 'true' : 'false';\n\t\tcase 'undefined':\n\t\t\treturn 'undefined';\n\t\tcase 'object':\n\t\t\tif (value === null) {\n\t\t\t\treturn 'null';\n\t\t\t}\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\treturn formatArray(value, availableLen);\n\t\t\t}\n\t\t\treturn formatObject(value, availableLen);\n\t\tcase 'symbol':\n\t\t\treturn value.toString();\n\t\tcase 'function':\n\t\t\treturn `[[Function${value.name ? ' ' + value.name : ''}]]`;\n\t\tdefault:\n\t\t\treturn '' + value;\n\t}\n}\n\nfunction formatArray(value: unknown[], availableLen: number): string {\n\tlet result = '[ ';\n\tlet first = true;\n\tfor (const val of value) {\n\t\tif (!first) {\n\t\t\tresult += ', ';\n\t\t}\n\t\tif (result.length - 5 > availableLen) {\n\t\t\tresult += '...';\n\t\t\tbreak;\n\t\t}\n\t\tfirst = false;\n\t\tresult += `${formatValue(val, availableLen - result.length)}`;\n\t}\n\tresult += ' ]';\n\treturn result;\n}\n\nfunction formatObject(value: object, availableLen: number): string {\n\tif (typeof value.toString === 'function' && value.toString !== Object.prototype.toString) {\n\t\tconst val = value.toString();\n\t\tif (val.length <= availableLen) {\n\t\t\treturn val;\n\t\t}\n\t\treturn val.substring(0, availableLen - 3) + '...';\n\t}\n\n\tconst className = getClassName(value);\n\n\tlet result = className ? className + '(' : '{ ';\n\tlet first = true;\n\tfor (const [key, val] of Object.entries(value)) {\n\t\tif (!first) {\n\t\t\tresult += ', ';\n\t\t}\n\t\tif (result.length - 5 > availableLen) {\n\t\t\tresult += '...';\n\t\t\tbreak;\n\t\t}\n\t\tfirst = false;\n\t\tresult += `${key}: ${formatValue(val, availableLen - result.length)}`;\n\t}\n\tresult += className ? ')' : ' }';\n\treturn result;\n}\n\nfunction repeat(str: string, count: number): string {\n\tlet result = '';\n\tfor (let i = 1; i <= count; i++) {\n\t\tresult += str;\n\t}\n\treturn result;\n}\n\nfunction padStr(str: string, length: number): string {\n\twhile (str.length < length) {\n\t\tstr += ' ';\n\t}\n\treturn str;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IObservable } from '../base.js';\nimport { TransactionImpl } from '../transaction.js';\nimport { IObservableLogger, IChangeInformation, addLogger } from './logging.js';\nimport { getClassName } from '../debugName.js';\nimport { Derived } from '../observables/derivedImpl.js';\nimport { AutorunObserver } from '../reactions/autorunImpl.js';\n\nlet consoleObservableLogger: ConsoleObservableLogger | undefined;\n\nexport function logObservableToConsole(obs: IObservable<any>): void {\n\tif (!consoleObservableLogger) {\n\t\tconsoleObservableLogger = new ConsoleObservableLogger();\n\t\taddLogger(consoleObservableLogger);\n\t}\n\tconsoleObservableLogger.addFilteredObj(obs);\n}\n\nexport class ConsoleObservableLogger implements IObservableLogger {\n\tprivate indentation = 0;\n\n\tprivate _filteredObjects: Set<unknown> | undefined;\n\n\tpublic addFilteredObj(obj: unknown): void {\n\t\tif (!this._filteredObjects) {\n\t\t\tthis._filteredObjects = new Set();\n\t\t}\n\t\tthis._filteredObjects.add(obj);\n\t}\n\n\tprivate _isIncluded(obj: unknown): boolean {\n\t\treturn this._filteredObjects?.has(obj) ?? true;\n\t}\n\n\tprivate textToConsoleArgs(text: ConsoleText): unknown[] {\n\t\treturn consoleTextToArgs([\n\t\t\tnormalText(repeat('| ', this.indentation)),\n\t\t\ttext,\n\t\t]);\n\t}\n\n\tprivate formatInfo(info: IChangeInformation): ConsoleText[] {\n\t\tif (!info.hadValue) {\n\t\t\treturn [\n\t\t\t\tnormalText(` `),\n\t\t\t\tstyled(formatValue(info.newValue, 60), {\n\t\t\t\t\tcolor: 'green',\n\t\t\t\t}),\n\t\t\t\tnormalText(` (initial)`),\n\t\t\t];\n\t\t}\n\t\treturn info.didChange\n\t\t\t? [\n\t\t\t\tnormalText(` `),\n\t\t\t\tstyled(formatValue(info.oldValue, 70), {\n\t\t\t\t\tcolor: 'red',\n\t\t\t\t\tstrikeThrough: true,\n\t\t\t\t}),\n\t\t\t\tnormalText(` `),\n\t\t\t\tstyled(formatValue(info.newValue, 60), {\n\t\t\t\t\tcolor: 'green',\n\t\t\t\t}),\n\t\t\t]\n\t\t\t: [normalText(` (unchanged)`)];\n\t}\n\n\thandleObservableCreated(observable: IObservable<any>): void {\n\t\tif (observable instanceof Derived) {\n\t\t\tconst derived = observable;\n\t\t\tthis.changedObservablesSets.set(derived, new Set());\n\n\t\t\tconst debugTrackUpdating = false;\n\t\t\tif (debugTrackUpdating) {\n\t\t\t\tconst updating: IObservable<any>[] = [];\n\t\t\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\t\t\t(derived as any).__debugUpdating = updating;\n\n\t\t\t\tconst existingBeginUpdate = derived.beginUpdate;\n\t\t\t\tderived.beginUpdate = (obs) => {\n\t\t\t\t\tupdating.push(obs);\n\t\t\t\t\treturn existingBeginUpdate.apply(derived, [obs]);\n\t\t\t\t};\n\n\t\t\t\tconst existingEndUpdate = derived.endUpdate;\n\t\t\t\tderived.endUpdate = (obs) => {\n\t\t\t\t\tconst idx = updating.indexOf(obs);\n\t\t\t\t\tif (idx === -1) {\n\t\t\t\t\t\tconsole.error('endUpdate called without beginUpdate', derived.debugName, obs.debugName);\n\t\t\t\t\t}\n\t\t\t\t\tupdating.splice(idx, 1);\n\t\t\t\t\treturn existingEndUpdate.apply(derived, [obs]);\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\n\thandleOnListenerCountChanged(observable: IObservable<any>, newCount: number): void {\n\t}\n\n\thandleObservableUpdated(observable: IObservable<unknown>, info: IChangeInformation): void {\n\t\tif (!this._isIncluded(observable)) { return; }\n\t\tif (observable instanceof Derived) {\n\t\t\tthis._handleDerivedRecomputed(observable, info);\n\t\t\treturn;\n\t\t}\n\n\t\tconsole.log(...this.textToConsoleArgs([\n\t\t\tformatKind('observable value changed'),\n\t\t\tstyled(observable.debugName, { color: 'BlueViolet' }),\n\t\t\t...this.formatInfo(info),\n\t\t]));\n\t}\n\n\tprivate readonly changedObservablesSets = new WeakMap<object, Set<IObservable<any>>>();\n\n\tformatChanges(changes: Set<IObservable<any>>): ConsoleText | undefined {\n\t\tif (changes.size === 0) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn styled(\n\t\t\t' (changed deps: ' +\n\t\t\t[...changes].map((o) => o.debugName).join(', ') +\n\t\t\t')',\n\t\t\t{ color: 'gray' }\n\t\t);\n\t}\n\n\thandleDerivedDependencyChanged(derived: Derived<any>, observable: IObservable<any>, change: unknown): void {\n\t\tif (!this._isIncluded(derived)) { return; }\n\n\t\tthis.changedObservablesSets.get(derived)?.add(observable);\n\t}\n\n\t_handleDerivedRecomputed(derived: Derived<unknown>, info: IChangeInformation): void {\n\t\tif (!this._isIncluded(derived)) { return; }\n\n\t\tconst changedObservables = this.changedObservablesSets.get(derived);\n\t\tif (!changedObservables) { return; }\n\t\tconsole.log(...this.textToConsoleArgs([\n\t\t\tformatKind('derived recomputed'),\n\t\t\tstyled(derived.debugName, { color: 'BlueViolet' }),\n\t\t\t...this.formatInfo(info),\n\t\t\tthis.formatChanges(changedObservables),\n\t\t\t{ data: [{ fn: derived._debugNameData.referenceFn ?? derived._computeFn }] }\n\t\t]));\n\t\tchangedObservables.clear();\n\t}\n\n\thandleDerivedCleared(derived: Derived<unknown>): void {\n\t\tif (!this._isIncluded(derived)) { return; }\n\n\t\tconsole.log(...this.textToConsoleArgs([\n\t\t\tformatKind('derived cleared'),\n\t\t\tstyled(derived.debugName, { color: 'BlueViolet' }),\n\t\t]));\n\t}\n\n\thandleAutorunCreated(autorun: AutorunObserver): void {\n\t\tif (!this._isIncluded(autorun)) { return; }\n\n\t\tthis.changedObservablesSets.set(autorun, new Set());\n\t}\n\n\thandleAutorunDisposed(autorun: AutorunObserver): void {\n\t}\n\n\thandleAutorunDependencyChanged(autorun: AutorunObserver, observable: IObservable<any>, change: unknown): void {\n\t\tif (!this._isIncluded(autorun)) { return; }\n\n\t\tthis.changedObservablesSets.get(autorun)!.add(observable);\n\t}\n\n\thandleAutorunStarted(autorun: AutorunObserver): void {\n\t\tconst changedObservables = this.changedObservablesSets.get(autorun);\n\t\tif (!changedObservables) { return; }\n\n\t\tif (this._isIncluded(autorun)) {\n\t\t\tconsole.log(...this.textToConsoleArgs([\n\t\t\t\tformatKind('autorun'),\n\t\t\t\tstyled(autorun.debugName, { color: 'BlueViolet' }),\n\t\t\t\tthis.formatChanges(changedObservables),\n\t\t\t\t{ data: [{ fn: autorun._debugNameData.referenceFn ?? autorun._runFn }] }\n\t\t\t]));\n\t\t}\n\t\tchangedObservables.clear();\n\t\tthis.indentation++;\n\t}\n\n\thandleAutorunFinished(autorun: AutorunObserver): void {\n\t\tthis.indentation--;\n\t}\n\n\thandleBeginTransaction(transaction: TransactionImpl): void {\n\t\tlet transactionName = transaction.getDebugName();\n\t\tif (transactionName === undefined) {\n\t\t\ttransactionName = '';\n\t\t}\n\t\tif (this._isIncluded(transaction)) {\n\t\t\tconsole.log(...this.textToConsoleArgs([\n\t\t\t\tformatKind('transaction'),\n\t\t\t\tstyled(transactionName, { color: 'BlueViolet' }),\n\t\t\t\t{ data: [{ fn: transaction._fn }] }\n\t\t\t]));\n\t\t}\n\t\tthis.indentation++;\n\t}\n\n\thandleEndTransaction(): void {\n\t\tthis.indentation--;\n\t}\n}\ntype ConsoleText = (ConsoleText | undefined)[] |\n{ text: string; style: string; data?: unknown[] } |\n{ data: unknown[] };\nfunction consoleTextToArgs(text: ConsoleText): unknown[] {\n\tconst styles = new Array<any>();\n\tconst data: unknown[] = [];\n\tlet firstArg = '';\n\n\tfunction process(t: ConsoleText): void {\n\t\tif ('length' in t) {\n\t\t\tfor (const item of t) {\n\t\t\t\tif (item) {\n\t\t\t\t\tprocess(item);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ('text' in t) {\n\t\t\tfirstArg += `%c${t.text}`;\n\t\t\tstyles.push(t.style);\n\t\t\tif (t.data) {\n\t\t\t\tdata.push(...t.data);\n\t\t\t}\n\t\t} else if ('data' in t) {\n\t\t\tdata.push(...t.data);\n\t\t}\n\t}\n\n\tprocess(text);\n\n\tconst result = [firstArg, ...styles];\n\tresult.push(...data);\n\treturn result;\n}\nfunction normalText(text: string): ConsoleText {\n\treturn styled(text, { color: 'black' });\n}\nfunction formatKind(kind: string): ConsoleText {\n\treturn styled(padStr(`${kind}: `, 10), { color: 'black', bold: true });\n}\nfunction styled(\n\ttext: string,\n\toptions: { color: string; strikeThrough?: boolean; bold?: boolean } = {\n\t\tcolor: 'black',\n\t}\n): ConsoleText {\n\tfunction objToCss(styleObj: Record<string, string>): string {\n\t\treturn Object.entries(styleObj).reduce(\n\t\t\t(styleString, [propName, propValue]) => {\n\t\t\t\treturn `${styleString}${propName}:${propValue};`;\n\t\t\t},\n\t\t\t''\n\t\t);\n\t}\n\n\tconst style: Record<string, string> = {\n\t\tcolor: options.color,\n\t};\n\tif (options.strikeThrough) {\n\t\tstyle['text-decoration'] = 'line-through';\n\t}\n\tif (options.bold) {\n\t\tstyle['font-weight'] = 'bold';\n\t}\n\n\treturn {\n\t\ttext,\n\t\tstyle: objToCss(style),\n\t};\n}\n\nexport function formatValue(value: unknown, availableLen: number): string {\n\tswitch (typeof value) {\n\t\tcase 'number':\n\t\t\treturn '' + value;\n\t\tcase 'string':\n\t\t\tif (value.length + 2 <= availableLen) {\n\t\t\t\treturn `\"${value}\"`;\n\t\t\t}\n\t\t\treturn `\"${value.substr(0, availableLen - 7)}\"+...`;\n\n\t\tcase 'boolean':\n\t\t\treturn value ? 'true' : 'false';\n\t\tcase 'undefined':\n\t\t\treturn 'undefined';\n\t\tcase 'object':\n\t\t\tif (value === null) {\n\t\t\t\treturn 'null';\n\t\t\t}\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\treturn formatArray(value, availableLen);\n\t\t\t}\n\t\t\treturn formatObject(value, availableLen);\n\t\tcase 'symbol':\n\t\t\treturn value.toString();\n\t\tcase 'function':\n\t\t\treturn `[[Function${value.name ? ' ' + value.name : ''}]]`;\n\t\tdefault:\n\t\t\treturn '' + value;\n\t}\n}\n\nfunction formatArray(value: unknown[], availableLen: number): string {\n\tlet result = '[ ';\n\tlet first = true;\n\tfor (const val of value) {\n\t\tif (!first) {\n\t\t\tresult += ', ';\n\t\t}\n\t\tif (result.length - 5 > availableLen) {\n\t\t\tresult += '...';\n\t\t\tbreak;\n\t\t}\n\t\tfirst = false;\n\t\tresult += `${formatValue(val, availableLen - result.length)}`;\n\t}\n\tresult += ' ]';\n\treturn result;\n}\n\nfunction formatObject(value: object, availableLen: number): string {\n\tif (typeof value.toString === 'function' && value.toString !== Object.prototype.toString) {\n\t\tconst val = value.toString();\n\t\tif (val.length <= availableLen) {\n\t\t\treturn val;\n\t\t}\n\t\treturn val.substring(0, availableLen - 3) + '...';\n\t}\n\n\tconst className = getClassName(value);\n\n\tlet result = className ? className + '(' : '{ ';\n\tlet first = true;\n\tfor (const [key, val] of Object.entries(value)) {\n\t\tif (!first) {\n\t\t\tresult += ', ';\n\t\t}\n\t\tif (result.length - 5 > availableLen) {\n\t\t\tresult += '...';\n\t\t\tbreak;\n\t\t}\n\t\tfirst = false;\n\t\tresult += `${key}: ${formatValue(val, availableLen - result.length)}`;\n\t}\n\tresult += className ? ')' : ' }';\n\treturn result;\n}\n\nfunction repeat(str: string, count: number): string {\n\tlet result = '';\n\tfor (let i = 1; i <= count; i++) {\n\t\tresult += str;\n\t}\n\treturn result;\n}\n\nfunction padStr(str: string, length: number): string {\n\twhile (str.length < length) {\n\t\tstr += ' ';\n\t}\n\treturn str;\n}\n"]}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { SimpleTypedRpcConnection } from './rpc.js';
|
|
6
6
|
export function registerDebugChannel(channelId, createClient) {
|
|
7
|
+
// eslint-disable-next-line local/code-no-any-casts
|
|
7
8
|
const g = globalThis;
|
|
8
9
|
let queuedNotifications = [];
|
|
9
10
|
let curHost = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/observableInternal/logging/debugger/debuggerRpc.ts","vs/base/common/observableInternal/logging/debugger/debuggerRpc.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAwC,wBAAwB,EAAiB,MAAM,UAAU,CAAC;AAEzG,MAAM,UAAU,oBAAoB,CACnC,SAAyB,EACzB,YAA+B;IAE/B,MAAM,CAAC,GAAG,UAA8B,CAAC;IAEzC,IAAI,mBAAmB,GAAc,EAAE,CAAC;IACxC,IAAI,OAAO,GAAsB,SAAS,CAAC;IAE3C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,oCAAoC,CAAC;QACjE,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACP,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;QACF,CAAC;KACD,CAAC,CAAC;IAEH,IAAI,SAAS,GAA4B,SAAS,CAAC;IAEnD,CAAC,CAAC,CAAC,gCAAgC,IAAI,CAAC,CAAC,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;QACvG,SAAS,GAAG,YAAY,EAAE,CAAC;QAC3B,OAAO,GAAG,IAAI,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,mBAAmB,EAAE,CAAC;YACrC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,mBAAmB,GAAG,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO,wBAAwB,CAAC,YAAY,CAAI,OAAO,EAAE,GAAG,EAAE;QAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QAAC,CAAC;QACrD,OAAO,SAAS,CAAC;IAClB,CAAC,CAAC,CAAC;AACJ,CAAC;AAUD,SAAS,oCAAoC,CAAC,IAAW;IACxD,IAAI,CAA8B,CAAC;IACnC,MAAM,OAAO,GAAmB,CAAC,OAAO,EAAE,EAAE;QAC3C,CAAC,GAAG,OAAO,CAAC;QACZ,OAAO;YACN,gBAAgB,EAAE,IAAI,CAAC,EAAE;gBACxB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;YACD,WAAW,EAAE,IAAI,CAAC,EAAE;gBACnB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;YAClC,CAAC;SACD,CAAC;IACH,CAAC,CAAC;IACF,OAAO;QACN,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE;YACR,aAAa,EAAE,CAAC,IAAS,EAAE,EAAE;gBAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBAClC,OAAO,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACP,OAAO,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,CAAC;YACF,CAAC;SACD;KACD,CAAC;AACH,CAAC","file":"debuggerRpc.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { ChannelFactory, IChannelHandler, API, SimpleTypedRpcConnection, MakeSideAsync } from './rpc.js';\n\nexport function registerDebugChannel<T extends { channelId: string } & API>(\n\tchannelId: T['channelId'],\n\tcreateClient: () => T['client'],\n): SimpleTypedRpcConnection<MakeSideAsync<T['host']>> {\n\tconst g = globalThis as any as GlobalObj;\n\n\tlet queuedNotifications: unknown[] = [];\n\tlet curHost: IHost | undefined = undefined;\n\n\tconst { channel, handler } = createChannelFactoryFromDebugChannel({\n\t\tsendNotification: (data) => {\n\t\t\tif (curHost) {\n\t\t\t\tcurHost.sendNotification(data);\n\t\t\t} else {\n\t\t\t\tqueuedNotifications.push(data);\n\t\t\t}\n\t\t},\n\t});\n\n\tlet curClient: T['client'] | undefined = undefined;\n\n\t(g.$$debugValueEditor_debugChannels ?? (g.$$debugValueEditor_debugChannels = {}))[channelId] = (host) => {\n\t\tcurClient = createClient();\n\t\tcurHost = host;\n\t\tfor (const n of queuedNotifications) {\n\t\t\thost.sendNotification(n);\n\t\t}\n\t\tqueuedNotifications = [];\n\t\treturn handler;\n\t};\n\n\treturn SimpleTypedRpcConnection.createClient<T>(channel, () => {\n\t\tif (!curClient) { throw new Error('Not supported'); }\n\t\treturn curClient;\n\t});\n}\n\ninterface GlobalObj {\n\t$$debugValueEditor_debugChannels: Record<string, (host: IHost) => { handleRequest: (data: unknown) => unknown }>;\n}\n\ninterface IHost {\n\tsendNotification: (data: unknown) => void;\n}\n\nfunction createChannelFactoryFromDebugChannel(host: IHost): { channel: ChannelFactory; handler: { handleRequest: (data: unknown) => unknown } } {\n\tlet h: IChannelHandler | undefined;\n\tconst channel: ChannelFactory = (handler) => {\n\t\th = handler;\n\t\treturn {\n\t\t\tsendNotification: data => {\n\t\t\t\thost.sendNotification(data);\n\t\t\t},\n\t\t\tsendRequest: data => {\n\t\t\t\tthrow new Error('not supported');\n\t\t\t},\n\t\t};\n\t};\n\treturn {\n\t\tchannel: channel,\n\t\thandler: {\n\t\t\thandleRequest: (data: any) => {\n\t\t\t\tif (data.type === 'notification') {\n\t\t\t\t\treturn h?.handleNotification(data.data);\n\t\t\t\t} else {\n\t\t\t\t\treturn h?.handleRequest(data.data);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t};\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { ChannelFactory, IChannelHandler, API, SimpleTypedRpcConnection, MakeSideAsync } from './rpc.js';\n\nexport function registerDebugChannel<T extends { channelId: string } & API>(\n\tchannelId: T['channelId'],\n\tcreateClient: () => T['client'],\n): SimpleTypedRpcConnection<MakeSideAsync<T['host']>> {\n\tconst g = globalThis as any as GlobalObj;\n\n\tlet queuedNotifications: unknown[] = [];\n\tlet curHost: IHost | undefined = undefined;\n\n\tconst { channel, handler } = createChannelFactoryFromDebugChannel({\n\t\tsendNotification: (data) => {\n\t\t\tif (curHost) {\n\t\t\t\tcurHost.sendNotification(data);\n\t\t\t} else {\n\t\t\t\tqueuedNotifications.push(data);\n\t\t\t}\n\t\t},\n\t});\n\n\tlet curClient: T['client'] | undefined = undefined;\n\n\t(g.$$debugValueEditor_debugChannels ?? (g.$$debugValueEditor_debugChannels = {}))[channelId] = (host) => {\n\t\tcurClient = createClient();\n\t\tcurHost = host;\n\t\tfor (const n of queuedNotifications) {\n\t\t\thost.sendNotification(n);\n\t\t}\n\t\tqueuedNotifications = [];\n\t\treturn handler;\n\t};\n\n\treturn SimpleTypedRpcConnection.createClient<T>(channel, () => {\n\t\tif (!curClient) { throw new Error('Not supported'); }\n\t\treturn curClient;\n\t});\n}\n\ninterface GlobalObj {\n\t$$debugValueEditor_debugChannels: Record<string, (host: IHost) => { handleRequest: (data: unknown) => unknown }>;\n}\n\ninterface IHost {\n\tsendNotification: (data: unknown) => void;\n}\n\nfunction createChannelFactoryFromDebugChannel(host: IHost): { channel: ChannelFactory; handler: { handleRequest: (data: unknown) => unknown } } {\n\tlet h: IChannelHandler | undefined;\n\tconst channel: ChannelFactory = (handler) => {\n\t\th = handler;\n\t\treturn {\n\t\t\tsendNotification: data => {\n\t\t\t\thost.sendNotification(data);\n\t\t\t},\n\t\t\tsendRequest: data => {\n\t\t\t\tthrow new Error('not supported');\n\t\t\t},\n\t\t};\n\t};\n\treturn {\n\t\tchannel: channel,\n\t\thandler: {\n\t\t\thandleRequest: (data: any) => {\n\t\t\t\tif (data.type === 'notification') {\n\t\t\t\t\treturn h?.handleNotification(data.data);\n\t\t\t\t} else {\n\t\t\t\t\treturn h?.handleRequest(data.data);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/observableInternal/logging/debugger/debuggerRpc.ts","vs/base/common/observableInternal/logging/debugger/debuggerRpc.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAwC,wBAAwB,EAAiB,MAAM,UAAU,CAAC;AAEzG,MAAM,UAAU,oBAAoB,CACnC,SAAyB,EACzB,YAA+B;IAE/B,mDAAmD;IACnD,MAAM,CAAC,GAAG,UAA8B,CAAC;IAEzC,IAAI,mBAAmB,GAAc,EAAE,CAAC;IACxC,IAAI,OAAO,GAAsB,SAAS,CAAC;IAE3C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,oCAAoC,CAAC;QACjE,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACP,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;QACF,CAAC;KACD,CAAC,CAAC;IAEH,IAAI,SAAS,GAA4B,SAAS,CAAC;IAEnD,CAAC,CAAC,CAAC,gCAAgC,IAAI,CAAC,CAAC,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;QACvG,SAAS,GAAG,YAAY,EAAE,CAAC;QAC3B,OAAO,GAAG,IAAI,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,mBAAmB,EAAE,CAAC;YACrC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,mBAAmB,GAAG,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO,wBAAwB,CAAC,YAAY,CAAI,OAAO,EAAE,GAAG,EAAE;QAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QAAC,CAAC;QACrD,OAAO,SAAS,CAAC;IAClB,CAAC,CAAC,CAAC;AACJ,CAAC;AAUD,SAAS,oCAAoC,CAAC,IAAW;IACxD,IAAI,CAA8B,CAAC;IACnC,MAAM,OAAO,GAAmB,CAAC,OAAO,EAAE,EAAE;QAC3C,CAAC,GAAG,OAAO,CAAC;QACZ,OAAO;YACN,gBAAgB,EAAE,IAAI,CAAC,EAAE;gBACxB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;YACD,WAAW,EAAE,IAAI,CAAC,EAAE;gBACnB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;YAClC,CAAC;SACD,CAAC;IACH,CAAC,CAAC;IACF,OAAO;QACN,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE;YACR,aAAa,EAAE,CAAC,IAAS,EAAE,EAAE;gBAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBAClC,OAAO,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACP,OAAO,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,CAAC;YACF,CAAC;SACD;KACD,CAAC;AACH,CAAC","file":"debuggerRpc.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { ChannelFactory, IChannelHandler, API, SimpleTypedRpcConnection, MakeSideAsync } from './rpc.js';\n\nexport function registerDebugChannel<T extends { channelId: string } & API>(\n\tchannelId: T['channelId'],\n\tcreateClient: () => T['client'],\n): SimpleTypedRpcConnection<MakeSideAsync<T['host']>> {\n\t// eslint-disable-next-line local/code-no-any-casts\n\tconst g = globalThis as any as GlobalObj;\n\n\tlet queuedNotifications: unknown[] = [];\n\tlet curHost: IHost | undefined = undefined;\n\n\tconst { channel, handler } = createChannelFactoryFromDebugChannel({\n\t\tsendNotification: (data) => {\n\t\t\tif (curHost) {\n\t\t\t\tcurHost.sendNotification(data);\n\t\t\t} else {\n\t\t\t\tqueuedNotifications.push(data);\n\t\t\t}\n\t\t},\n\t});\n\n\tlet curClient: T['client'] | undefined = undefined;\n\n\t(g.$$debugValueEditor_debugChannels ?? (g.$$debugValueEditor_debugChannels = {}))[channelId] = (host) => {\n\t\tcurClient = createClient();\n\t\tcurHost = host;\n\t\tfor (const n of queuedNotifications) {\n\t\t\thost.sendNotification(n);\n\t\t}\n\t\tqueuedNotifications = [];\n\t\treturn handler;\n\t};\n\n\treturn SimpleTypedRpcConnection.createClient<T>(channel, () => {\n\t\tif (!curClient) { throw new Error('Not supported'); }\n\t\treturn curClient;\n\t});\n}\n\ninterface GlobalObj {\n\t$$debugValueEditor_debugChannels: Record<string, (host: IHost) => { handleRequest: (data: unknown) => unknown }>;\n}\n\ninterface IHost {\n\tsendNotification: (data: unknown) => void;\n}\n\nfunction createChannelFactoryFromDebugChannel(host: IHost): { channel: ChannelFactory; handler: { handleRequest: (data: unknown) => unknown } } {\n\tlet h: IChannelHandler | undefined;\n\tconst channel: ChannelFactory = (handler) => {\n\t\th = handler;\n\t\treturn {\n\t\t\tsendNotification: data => {\n\t\t\t\thost.sendNotification(data);\n\t\t\t},\n\t\t\tsendRequest: data => {\n\t\t\t\tthrow new Error('not supported');\n\t\t\t},\n\t\t};\n\t};\n\treturn {\n\t\tchannel: channel,\n\t\thandler: {\n\t\t\thandleRequest: (data: any) => {\n\t\t\t\tif (data.type === 'notification') {\n\t\t\t\t\treturn h?.handleNotification(data.data);\n\t\t\t\t} else {\n\t\t\t\t\treturn h?.handleRequest(data.data);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t};\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { ChannelFactory, IChannelHandler, API, SimpleTypedRpcConnection, MakeSideAsync } from './rpc.js';\n\nexport function registerDebugChannel<T extends { channelId: string } & API>(\n\tchannelId: T['channelId'],\n\tcreateClient: () => T['client'],\n): SimpleTypedRpcConnection<MakeSideAsync<T['host']>> {\n\t// eslint-disable-next-line local/code-no-any-casts\n\tconst g = globalThis as any as GlobalObj;\n\n\tlet queuedNotifications: unknown[] = [];\n\tlet curHost: IHost | undefined = undefined;\n\n\tconst { channel, handler } = createChannelFactoryFromDebugChannel({\n\t\tsendNotification: (data) => {\n\t\t\tif (curHost) {\n\t\t\t\tcurHost.sendNotification(data);\n\t\t\t} else {\n\t\t\t\tqueuedNotifications.push(data);\n\t\t\t}\n\t\t},\n\t});\n\n\tlet curClient: T['client'] | undefined = undefined;\n\n\t(g.$$debugValueEditor_debugChannels ?? (g.$$debugValueEditor_debugChannels = {}))[channelId] = (host) => {\n\t\tcurClient = createClient();\n\t\tcurHost = host;\n\t\tfor (const n of queuedNotifications) {\n\t\t\thost.sendNotification(n);\n\t\t}\n\t\tqueuedNotifications = [];\n\t\treturn handler;\n\t};\n\n\treturn SimpleTypedRpcConnection.createClient<T>(channel, () => {\n\t\tif (!curClient) { throw new Error('Not supported'); }\n\t\treturn curClient;\n\t});\n}\n\ninterface GlobalObj {\n\t$$debugValueEditor_debugChannels: Record<string, (host: IHost) => { handleRequest: (data: unknown) => unknown }>;\n}\n\ninterface IHost {\n\tsendNotification: (data: unknown) => void;\n}\n\nfunction createChannelFactoryFromDebugChannel(host: IHost): { channel: ChannelFactory; handler: { handleRequest: (data: unknown) => unknown } } {\n\tlet h: IChannelHandler | undefined;\n\tconst channel: ChannelFactory = (handler) => {\n\t\th = handler;\n\t\treturn {\n\t\t\tsendNotification: data => {\n\t\t\t\thost.sendNotification(data);\n\t\t\t},\n\t\t\tsendRequest: data => {\n\t\t\t\tthrow new Error('not supported');\n\t\t\t},\n\t\t};\n\t};\n\treturn {\n\t\tchannel: channel,\n\t\thandler: {\n\t\t\thandleRequest: (data: any) => {\n\t\t\t\tif (data.type === 'notification') {\n\t\t\t\t\treturn h?.handleNotification(data.data);\n\t\t\t\t} else {\n\t\t\t\t\treturn h?.handleRequest(data.data);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t};\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/observableInternal/logging/debugger/rpc.ts","vs/base/common/observableInternal/logging/debugger/rpc.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAiChG,MAAM,OAAO,wBAAwB;IAE7B,MAAM,CAAC,YAAY,CAAgB,cAA8B,EAAE,UAA6B;QACtG,OAAO,IAAI,wBAAwB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IACjE,CAAC;IAKD,YACkB,eAA+B,EAC/B,WAAuB;QADvB,oBAAe,GAAf,eAAe,CAAgB;QAC/B,gBAAW,GAAX,WAAW,CAAY;QAExC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;YACpC,kBAAkB,EAAE,CAAC,gBAAgB,EAAE,EAAE;gBACxC,MAAM,CAAC,GAAG,gBAAmC,CAAC;gBAC9C,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,IAAI,CAAC,EAAE,EAAE,CAAC;oBACT,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACpD,CAAC;gBACD,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACb,CAAC;YACD,aAAa,EAAE,CAAC,WAAW,EAAE,EAAE;gBAC9B,MAAM,CAAC,GAAG,WAA8B,CAAC;gBACzC,IAAI,CAAC;oBACJ,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;gBAC1C,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACZ,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBACpC,CAAC;YACF,CAAC;SACD,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE;YAC9B,GAAG,EAAE,CAAC,MAAM,EAAE,GAAW,EAAE,EAAE;gBAC5B,OAAO,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;oBAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,IAAI,CAA2B,CAAC,CAAC;oBACtF,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAC7B,MAAM,MAAM,CAAC,KAAK,CAAC;oBACpB,CAAC;yBAAM,CAAC;wBACP,OAAO,MAAM,CAAC,KAAK,CAAC;oBACrB,CAAC;gBACF,CAAC,CAAC;YACH,CAAC;SACD,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE;YACnC,GAAG,EAAE,CAAC,MAAM,EAAE,GAAW,EAAE,EAAE;gBAC5B,OAAO,CAAC,GAAG,IAAW,EAAE,EAAE;oBACzB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,GAAG,EAAE,IAAI,CAA2B,CAAC,CAAC;gBACvE,CAAC,CAAC;YACH,CAAC;SACD,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,GAAG,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAS,CAAC;IACxE,CAAC;CACD","file":"rpc.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nexport type ChannelFactory = (handler: IChannelHandler) => IChannel;\n\nexport interface IChannel {\n\tsendNotification(data: unknown): void;\n\tsendRequest(data: unknown): Promise<RpcRequestResult>;\n}\n\nexport interface IChannelHandler {\n\thandleNotification(notificationData: unknown): void;\n\thandleRequest(requestData: unknown): Promise<RpcRequestResult> | RpcRequestResult;\n}\n\nexport type RpcRequestResult = { type: 'result'; value: unknown } | { type: 'error'; value: unknown };\n\nexport type API = {\n\thost: Side;\n\tclient: Side;\n};\n\nexport type Side = {\n\tnotifications: Record<string, (...args: any[]) => void>;\n\trequests: Record<string, (...args: any[]) => Promise<unknown> | unknown>;\n};\n\ntype MakeAsyncIfNot<TFn> = TFn extends (...args: infer TArgs) => infer TResult ? TResult extends Promise<unknown> ? TFn : (...args: TArgs) => Promise<TResult> : never;\n\nexport type MakeSideAsync<T extends Side> = {\n\tnotifications: T['notifications'];\n\trequests: { [K in keyof T['requests']]: MakeAsyncIfNot<T['requests'][K]> };\n};\n\nexport class SimpleTypedRpcConnection<T extends Side> {\n\n\tpublic static createClient<T extends API>(channelFactory: ChannelFactory, getHandler: () => T['client']): SimpleTypedRpcConnection<MakeSideAsync<T['host']>> {\n\t\treturn new SimpleTypedRpcConnection(channelFactory, getHandler);\n\t}\n\n\tpublic readonly api: T;\n\tprivate readonly _channel: IChannel;\n\n\tprivate constructor(\n\t\tprivate readonly _channelFactory: ChannelFactory,\n\t\tprivate readonly _getHandler: () => Side,\n\t) {\n\t\tthis._channel = this._channelFactory({\n\t\t\thandleNotification: (notificationData) => {\n\t\t\t\tconst m = notificationData as OutgoingMessage;\n\t\t\t\tconst fn = this._getHandler().notifications[m[0]];\n\t\t\t\tif (!fn) {\n\t\t\t\t\tthrow new Error(`Unknown notification \"${m[0]}\"!`);\n\t\t\t\t}\n\t\t\t\tfn(...m[1]);\n\t\t\t},\n\t\t\thandleRequest: (requestData) => {\n\t\t\t\tconst m = requestData as OutgoingMessage;\n\t\t\t\ttry {\n\t\t\t\t\tconst result = this._getHandler().requests[m[0]](...m[1]);\n\t\t\t\t\treturn { type: 'result', value: result };\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn { type: 'error', value: e };\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\n\t\tconst requests = new Proxy({}, {\n\t\t\tget: (target, key: string) => {\n\t\t\t\treturn async (...args: any[]) => {\n\t\t\t\t\tconst result = await this._channel.sendRequest([key, args] satisfies OutgoingMessage);\n\t\t\t\t\tif (result.type === 'error') {\n\t\t\t\t\t\tthrow result.value;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn result.value;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\n\t\tconst notifications = new Proxy({}, {\n\t\t\tget: (target, key: string) => {\n\t\t\t\treturn (...args: any[]) => {\n\t\t\t\t\tthis._channel.sendNotification([key, args] satisfies OutgoingMessage);\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\n\t\tthis.api = { notifications: notifications, requests: requests } as any;\n\t}\n}\n\ntype OutgoingMessage = [\n\tmethod: string,\n\targs: unknown[],\n];\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nexport type ChannelFactory = (handler: IChannelHandler) => IChannel;\n\nexport interface IChannel {\n\tsendNotification(data: unknown): void;\n\tsendRequest(data: unknown): Promise<RpcRequestResult>;\n}\n\nexport interface IChannelHandler {\n\thandleNotification(notificationData: unknown): void;\n\thandleRequest(requestData: unknown): Promise<RpcRequestResult> | RpcRequestResult;\n}\n\nexport type RpcRequestResult = { type: 'result'; value: unknown } | { type: 'error'; value: unknown };\n\nexport type API = {\n\thost: Side;\n\tclient: Side;\n};\n\nexport type Side = {\n\tnotifications: Record<string, (...args: any[]) => void>;\n\trequests: Record<string, (...args: any[]) => Promise<unknown> | unknown>;\n};\n\ntype MakeAsyncIfNot<TFn> = TFn extends (...args: infer TArgs) => infer TResult ? TResult extends Promise<unknown> ? TFn : (...args: TArgs) => Promise<TResult> : never;\n\nexport type MakeSideAsync<T extends Side> = {\n\tnotifications: T['notifications'];\n\trequests: { [K in keyof T['requests']]: MakeAsyncIfNot<T['requests'][K]> };\n};\n\nexport class SimpleTypedRpcConnection<T extends Side> {\n\n\tpublic static createClient<T extends API>(channelFactory: ChannelFactory, getHandler: () => T['client']): SimpleTypedRpcConnection<MakeSideAsync<T['host']>> {\n\t\treturn new SimpleTypedRpcConnection(channelFactory, getHandler);\n\t}\n\n\tpublic readonly api: T;\n\tprivate readonly _channel: IChannel;\n\n\tprivate constructor(\n\t\tprivate readonly _channelFactory: ChannelFactory,\n\t\tprivate readonly _getHandler: () => Side,\n\t) {\n\t\tthis._channel = this._channelFactory({\n\t\t\thandleNotification: (notificationData) => {\n\t\t\t\tconst m = notificationData as OutgoingMessage;\n\t\t\t\tconst fn = this._getHandler().notifications[m[0]];\n\t\t\t\tif (!fn) {\n\t\t\t\t\tthrow new Error(`Unknown notification \"${m[0]}\"!`);\n\t\t\t\t}\n\t\t\t\tfn(...m[1]);\n\t\t\t},\n\t\t\thandleRequest: (requestData) => {\n\t\t\t\tconst m = requestData as OutgoingMessage;\n\t\t\t\ttry {\n\t\t\t\t\tconst result = this._getHandler().requests[m[0]](...m[1]);\n\t\t\t\t\treturn { type: 'result', value: result };\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn { type: 'error', value: e };\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\n\t\tconst requests = new Proxy({}, {\n\t\t\tget: (target, key: string) => {\n\t\t\t\treturn async (...args: any[]) => {\n\t\t\t\t\tconst result = await this._channel.sendRequest([key, args] satisfies OutgoingMessage);\n\t\t\t\t\tif (result.type === 'error') {\n\t\t\t\t\t\tthrow result.value;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn result.value;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\n\t\tconst notifications = new Proxy({}, {\n\t\t\tget: (target, key: string) => {\n\t\t\t\treturn (...args: any[]) => {\n\t\t\t\t\tthis._channel.sendNotification([key, args] satisfies OutgoingMessage);\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\n\t\tthis.api = { notifications: notifications, requests: requests } as any;\n\t}\n}\n\ntype OutgoingMessage = [\n\tmethod: string,\n\targs: unknown[],\n];\n"]}
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/observableInternal/logging/debugger/rpc.ts","vs/base/common/observableInternal/logging/debugger/rpc.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAiChG,MAAM,OAAO,wBAAwB;IAE7B,MAAM,CAAC,YAAY,CAAgB,cAA8B,EAAE,UAA6B;QACtG,OAAO,IAAI,wBAAwB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IACjE,CAAC;IAKD,YACkB,eAA+B,EAC/B,WAAuB;QADvB,oBAAe,GAAf,eAAe,CAAgB;QAC/B,gBAAW,GAAX,WAAW,CAAY;QAExC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;YACpC,kBAAkB,EAAE,CAAC,gBAAgB,EAAE,EAAE;gBACxC,MAAM,CAAC,GAAG,gBAAmC,CAAC;gBAC9C,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,IAAI,CAAC,EAAE,EAAE,CAAC;oBACT,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACpD,CAAC;gBACD,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACb,CAAC;YACD,aAAa,EAAE,CAAC,WAAW,EAAE,EAAE;gBAC9B,MAAM,CAAC,GAAG,WAA8B,CAAC;gBACzC,IAAI,CAAC;oBACJ,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;gBAC1C,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACZ,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBACpC,CAAC;YACF,CAAC;SACD,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE;YAC9B,GAAG,EAAE,CAAC,MAAM,EAAE,GAAW,EAAE,EAAE;gBAC5B,OAAO,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;oBAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,IAAI,CAA2B,CAAC,CAAC;oBACtF,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAC7B,MAAM,MAAM,CAAC,KAAK,CAAC;oBACpB,CAAC;yBAAM,CAAC;wBACP,OAAO,MAAM,CAAC,KAAK,CAAC;oBACrB,CAAC;gBACF,CAAC,CAAC;YACH,CAAC;SACD,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE;YACnC,GAAG,EAAE,CAAC,MAAM,EAAE,GAAW,EAAE,EAAE;gBAC5B,OAAO,CAAC,GAAG,IAAW,EAAE,EAAE;oBACzB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,GAAG,EAAE,IAAI,CAA2B,CAAC,CAAC;gBACvE,CAAC,CAAC;YACH,CAAC;SACD,CAAC,CAAC;QAEH,mDAAmD;QACnD,IAAI,CAAC,GAAG,GAAG,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAS,CAAC;IACxE,CAAC;CACD","file":"rpc.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nexport type ChannelFactory = (handler: IChannelHandler) => IChannel;\n\nexport interface IChannel {\n\tsendNotification(data: unknown): void;\n\tsendRequest(data: unknown): Promise<RpcRequestResult>;\n}\n\nexport interface IChannelHandler {\n\thandleNotification(notificationData: unknown): void;\n\thandleRequest(requestData: unknown): Promise<RpcRequestResult> | RpcRequestResult;\n}\n\nexport type RpcRequestResult = { type: 'result'; value: unknown } | { type: 'error'; value: unknown };\n\nexport type API = {\n\thost: Side;\n\tclient: Side;\n};\n\nexport type Side = {\n\tnotifications: Record<string, (...args: any[]) => void>;\n\trequests: Record<string, (...args: any[]) => Promise<unknown> | unknown>;\n};\n\ntype MakeAsyncIfNot<TFn> = TFn extends (...args: infer TArgs) => infer TResult ? TResult extends Promise<unknown> ? TFn : (...args: TArgs) => Promise<TResult> : never;\n\nexport type MakeSideAsync<T extends Side> = {\n\tnotifications: T['notifications'];\n\trequests: { [K in keyof T['requests']]: MakeAsyncIfNot<T['requests'][K]> };\n};\n\nexport class SimpleTypedRpcConnection<T extends Side> {\n\n\tpublic static createClient<T extends API>(channelFactory: ChannelFactory, getHandler: () => T['client']): SimpleTypedRpcConnection<MakeSideAsync<T['host']>> {\n\t\treturn new SimpleTypedRpcConnection(channelFactory, getHandler);\n\t}\n\n\tpublic readonly api: T;\n\tprivate readonly _channel: IChannel;\n\n\tprivate constructor(\n\t\tprivate readonly _channelFactory: ChannelFactory,\n\t\tprivate readonly _getHandler: () => Side,\n\t) {\n\t\tthis._channel = this._channelFactory({\n\t\t\thandleNotification: (notificationData) => {\n\t\t\t\tconst m = notificationData as OutgoingMessage;\n\t\t\t\tconst fn = this._getHandler().notifications[m[0]];\n\t\t\t\tif (!fn) {\n\t\t\t\t\tthrow new Error(`Unknown notification \"${m[0]}\"!`);\n\t\t\t\t}\n\t\t\t\tfn(...m[1]);\n\t\t\t},\n\t\t\thandleRequest: (requestData) => {\n\t\t\t\tconst m = requestData as OutgoingMessage;\n\t\t\t\ttry {\n\t\t\t\t\tconst result = this._getHandler().requests[m[0]](...m[1]);\n\t\t\t\t\treturn { type: 'result', value: result };\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn { type: 'error', value: e };\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\n\t\tconst requests = new Proxy({}, {\n\t\t\tget: (target, key: string) => {\n\t\t\t\treturn async (...args: any[]) => {\n\t\t\t\t\tconst result = await this._channel.sendRequest([key, args] satisfies OutgoingMessage);\n\t\t\t\t\tif (result.type === 'error') {\n\t\t\t\t\t\tthrow result.value;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn result.value;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\n\t\tconst notifications = new Proxy({}, {\n\t\t\tget: (target, key: string) => {\n\t\t\t\treturn (...args: any[]) => {\n\t\t\t\t\tthis._channel.sendNotification([key, args] satisfies OutgoingMessage);\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tthis.api = { notifications: notifications, requests: requests } as any;\n\t}\n}\n\ntype OutgoingMessage = [\n\tmethod: string,\n\targs: unknown[],\n];\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nexport type ChannelFactory = (handler: IChannelHandler) => IChannel;\n\nexport interface IChannel {\n\tsendNotification(data: unknown): void;\n\tsendRequest(data: unknown): Promise<RpcRequestResult>;\n}\n\nexport interface IChannelHandler {\n\thandleNotification(notificationData: unknown): void;\n\thandleRequest(requestData: unknown): Promise<RpcRequestResult> | RpcRequestResult;\n}\n\nexport type RpcRequestResult = { type: 'result'; value: unknown } | { type: 'error'; value: unknown };\n\nexport type API = {\n\thost: Side;\n\tclient: Side;\n};\n\nexport type Side = {\n\tnotifications: Record<string, (...args: any[]) => void>;\n\trequests: Record<string, (...args: any[]) => Promise<unknown> | unknown>;\n};\n\ntype MakeAsyncIfNot<TFn> = TFn extends (...args: infer TArgs) => infer TResult ? TResult extends Promise<unknown> ? TFn : (...args: TArgs) => Promise<TResult> : never;\n\nexport type MakeSideAsync<T extends Side> = {\n\tnotifications: T['notifications'];\n\trequests: { [K in keyof T['requests']]: MakeAsyncIfNot<T['requests'][K]> };\n};\n\nexport class SimpleTypedRpcConnection<T extends Side> {\n\n\tpublic static createClient<T extends API>(channelFactory: ChannelFactory, getHandler: () => T['client']): SimpleTypedRpcConnection<MakeSideAsync<T['host']>> {\n\t\treturn new SimpleTypedRpcConnection(channelFactory, getHandler);\n\t}\n\n\tpublic readonly api: T;\n\tprivate readonly _channel: IChannel;\n\n\tprivate constructor(\n\t\tprivate readonly _channelFactory: ChannelFactory,\n\t\tprivate readonly _getHandler: () => Side,\n\t) {\n\t\tthis._channel = this._channelFactory({\n\t\t\thandleNotification: (notificationData) => {\n\t\t\t\tconst m = notificationData as OutgoingMessage;\n\t\t\t\tconst fn = this._getHandler().notifications[m[0]];\n\t\t\t\tif (!fn) {\n\t\t\t\t\tthrow new Error(`Unknown notification \"${m[0]}\"!`);\n\t\t\t\t}\n\t\t\t\tfn(...m[1]);\n\t\t\t},\n\t\t\thandleRequest: (requestData) => {\n\t\t\t\tconst m = requestData as OutgoingMessage;\n\t\t\t\ttry {\n\t\t\t\t\tconst result = this._getHandler().requests[m[0]](...m[1]);\n\t\t\t\t\treturn { type: 'result', value: result };\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn { type: 'error', value: e };\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\n\t\tconst requests = new Proxy({}, {\n\t\t\tget: (target, key: string) => {\n\t\t\t\treturn async (...args: any[]) => {\n\t\t\t\t\tconst result = await this._channel.sendRequest([key, args] satisfies OutgoingMessage);\n\t\t\t\t\tif (result.type === 'error') {\n\t\t\t\t\t\tthrow result.value;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn result.value;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\n\t\tconst notifications = new Proxy({}, {\n\t\t\tget: (target, key: string) => {\n\t\t\t\treturn (...args: any[]) => {\n\t\t\t\t\tthis._channel.sendNotification([key, args] satisfies OutgoingMessage);\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tthis.api = { notifications: notifications, requests: requests } as any;\n\t}\n}\n\ntype OutgoingMessage = [\n\tmethod: string,\n\targs: unknown[],\n];\n"]}
|
|
@@ -11,7 +11,11 @@ export function derived(computeFnOrOwner, computeFn, debugLocation = DebugLocati
|
|
|
11
11
|
if (computeFn !== undefined) {
|
|
12
12
|
return new Derived(new DebugNameData(computeFnOrOwner, undefined, computeFn), computeFn, undefined, undefined, strictEquals, debugLocation);
|
|
13
13
|
}
|
|
14
|
-
return new Derived(
|
|
14
|
+
return new Derived(
|
|
15
|
+
// eslint-disable-next-line local/code-no-any-casts
|
|
16
|
+
new DebugNameData(undefined, undefined, computeFnOrOwner),
|
|
17
|
+
// eslint-disable-next-line local/code-no-any-casts
|
|
18
|
+
computeFnOrOwner, undefined, undefined, strictEquals, debugLocation);
|
|
15
19
|
}
|
|
16
20
|
export function derivedWithSetter(owner, computeFn, setter, debugLocation = DebugLocation.ofCaller()) {
|
|
17
21
|
return new DerivedWithSetter(new DebugNameData(owner, undefined, computeFn), computeFn, undefined, undefined, strictEquals, setter, debugLocation);
|
|
@@ -40,11 +44,13 @@ export function derivedDisposable(computeFnOrOwner, computeFnOrUndefined, debugL
|
|
|
40
44
|
let computeFn;
|
|
41
45
|
let owner;
|
|
42
46
|
if (computeFnOrUndefined === undefined) {
|
|
47
|
+
// eslint-disable-next-line local/code-no-any-casts
|
|
43
48
|
computeFn = computeFnOrOwner;
|
|
44
49
|
owner = undefined;
|
|
45
50
|
}
|
|
46
51
|
else {
|
|
47
52
|
owner = computeFnOrOwner;
|
|
53
|
+
// eslint-disable-next-line local/code-no-any-casts
|
|
48
54
|
computeFn = computeFnOrUndefined;
|
|
49
55
|
}
|
|
50
56
|
let store = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/observableInternal/observables/derived.ts","vs/base/common/observableInternal/observables/derived.ts"],"names":[],"mappings":"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","file":"derived.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IObservable, IReader, ITransaction, ISettableObservable, IObservableWithChange } from '../base.js';\nimport { IChangeTracker } from '../changeTracker.js';\nimport { DisposableStore, EqualityComparer, IDisposable, strictEquals } from '../commonFacade/deps.js';\nimport { DebugLocation } from '../debugLocation.js';\nimport { DebugOwner, DebugNameData, IDebugNameData } from '../debugName.js';\nimport { _setDerivedOpts } from './baseObservable.js';\nimport { IDerivedReader, Derived, DerivedWithSetter } from './derivedImpl.js';\n\n/**\n * Creates an observable that is derived from other observables.\n * The value is only recomputed when absolutely needed.\n *\n * {@link computeFn} should start with a JS Doc using `@description` to name the derived.\n */\nexport function derived<T, TChange = void>(computeFn: (reader: IDerivedReader<TChange>) => T): IObservableWithChange<T, TChange>;\nexport function derived<T, TChange = void>(owner: DebugOwner, computeFn: (reader: IDerivedReader<TChange>) => T): IObservableWithChange<T, TChange>;\nexport function derived<T, TChange = void>(\n\tcomputeFnOrOwner: ((reader: IDerivedReader<TChange>) => T) | DebugOwner,\n\tcomputeFn?: ((reader: IDerivedReader<TChange>) => T) | undefined,\n\tdebugLocation = DebugLocation.ofCaller()\n): IObservable<T> {\n\tif (computeFn !== undefined) {\n\t\treturn new Derived(\n\t\t\tnew DebugNameData(computeFnOrOwner, undefined, computeFn),\n\t\t\tcomputeFn,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tstrictEquals,\n\t\t\tdebugLocation,\n\t\t);\n\t}\n\treturn new Derived(\n\t\tnew DebugNameData(undefined, undefined, computeFnOrOwner as any),\n\t\tcomputeFnOrOwner as any,\n\t\tundefined,\n\t\tundefined,\n\t\tstrictEquals,\n\t\tdebugLocation,\n\t);\n}\n\nexport function derivedWithSetter<T>(owner: DebugOwner | undefined, computeFn: (reader: IReader) => T, setter: (value: T, transaction: ITransaction | undefined) => void, debugLocation = DebugLocation.ofCaller()): ISettableObservable<T> {\n\treturn new DerivedWithSetter(\n\t\tnew DebugNameData(owner, undefined, computeFn),\n\t\tcomputeFn,\n\t\tundefined,\n\t\tundefined,\n\t\tstrictEquals,\n\t\tsetter,\n\t\tdebugLocation\n\t);\n}\n\nexport function derivedOpts<T>(\n\toptions: IDebugNameData & {\n\t\tequalsFn?: EqualityComparer<T>;\n\t\tonLastObserverRemoved?: (() => void);\n\t},\n\tcomputeFn: (reader: IReader) => T,\n\tdebugLocation = DebugLocation.ofCaller()\n): IObservable<T> {\n\treturn new Derived(\n\t\tnew DebugNameData(options.owner, options.debugName, options.debugReferenceFn),\n\t\tcomputeFn,\n\t\tundefined,\n\t\toptions.onLastObserverRemoved,\n\t\toptions.equalsFn ?? strictEquals,\n\t\tdebugLocation\n\t);\n}\n_setDerivedOpts(derivedOpts);\n\n/**\n * Represents an observable that is derived from other observables.\n * The value is only recomputed when absolutely needed.\n *\n * {@link computeFn} should start with a JS Doc using `@description` to name the derived.\n *\n * Use `createEmptyChangeSummary` to create a \"change summary\" that can collect the changes.\n * Use `handleChange` to add a reported change to the change summary.\n * The compute function is given the last change summary.\n * The change summary is discarded after the compute function was called.\n *\n * @see derived\n */\nexport function derivedHandleChanges<T, TDelta, TChangeSummary>(\n\toptions: IDebugNameData & {\n\t\tchangeTracker: IChangeTracker<TChangeSummary>;\n\t\tequalityComparer?: EqualityComparer<T>;\n\t},\n\tcomputeFn: (reader: IDerivedReader<TDelta>, changeSummary: TChangeSummary) => T,\n\tdebugLocation = DebugLocation.ofCaller()\n): IObservableWithChange<T, TDelta> {\n\treturn new Derived(\n\t\tnew DebugNameData(options.owner, options.debugName, undefined),\n\t\tcomputeFn,\n\t\toptions.changeTracker,\n\t\tundefined,\n\t\toptions.equalityComparer ?? strictEquals,\n\t\tdebugLocation\n\t);\n}\n\nexport function derivedDisposable<T extends IDisposable | undefined>(computeFn: (reader: IReader) => T): IObservable<T>;\nexport function derivedDisposable<T extends IDisposable | undefined>(owner: DebugOwner, computeFn: (reader: IReader) => T): IObservable<T>;\nexport function derivedDisposable<T extends IDisposable | undefined>(computeFnOrOwner: ((reader: IReader) => T) | DebugOwner, computeFnOrUndefined?: ((reader: IReader) => T), debugLocation = DebugLocation.ofCaller()): IObservable<T> {\n\tlet computeFn: (reader: IReader) => T;\n\tlet owner: DebugOwner;\n\tif (computeFnOrUndefined === undefined) {\n\t\tcomputeFn = computeFnOrOwner as any;\n\t\towner = undefined;\n\t} else {\n\t\towner = computeFnOrOwner;\n\t\tcomputeFn = computeFnOrUndefined as any;\n\t}\n\n\tlet store: DisposableStore | undefined = undefined;\n\treturn new Derived(\n\t\tnew DebugNameData(owner, undefined, computeFn),\n\t\tr => {\n\t\t\tif (!store) {\n\t\t\t\tstore = new DisposableStore();\n\t\t\t} else {\n\t\t\t\tstore.clear();\n\t\t\t}\n\t\t\tconst result = computeFn(r);\n\t\t\tif (result) {\n\t\t\t\tstore.add(result);\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\tundefined,\n\t\t() => {\n\t\t\tif (store) {\n\t\t\t\tstore.dispose();\n\t\t\t\tstore = undefined;\n\t\t\t}\n\t\t},\n\t\tstrictEquals,\n\t\tdebugLocation\n\t);\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IObservable, IReader, ITransaction, ISettableObservable, IObservableWithChange } from '../base.js';\nimport { IChangeTracker } from '../changeTracker.js';\nimport { DisposableStore, EqualityComparer, IDisposable, strictEquals } from '../commonFacade/deps.js';\nimport { DebugLocation } from '../debugLocation.js';\nimport { DebugOwner, DebugNameData, IDebugNameData } from '../debugName.js';\nimport { _setDerivedOpts } from './baseObservable.js';\nimport { IDerivedReader, Derived, DerivedWithSetter } from './derivedImpl.js';\n\n/**\n * Creates an observable that is derived from other observables.\n * The value is only recomputed when absolutely needed.\n *\n * {@link computeFn} should start with a JS Doc using `@description` to name the derived.\n */\nexport function derived<T, TChange = void>(computeFn: (reader: IDerivedReader<TChange>) => T): IObservableWithChange<T, TChange>;\nexport function derived<T, TChange = void>(owner: DebugOwner, computeFn: (reader: IDerivedReader<TChange>) => T): IObservableWithChange<T, TChange>;\nexport function derived<T, TChange = void>(\n\tcomputeFnOrOwner: ((reader: IDerivedReader<TChange>) => T) | DebugOwner,\n\tcomputeFn?: ((reader: IDerivedReader<TChange>) => T) | undefined,\n\tdebugLocation = DebugLocation.ofCaller()\n): IObservable<T> {\n\tif (computeFn !== undefined) {\n\t\treturn new Derived(\n\t\t\tnew DebugNameData(computeFnOrOwner, undefined, computeFn),\n\t\t\tcomputeFn,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tstrictEquals,\n\t\t\tdebugLocation,\n\t\t);\n\t}\n\treturn new Derived(\n\t\tnew DebugNameData(undefined, undefined, computeFnOrOwner as any),\n\t\tcomputeFnOrOwner as any,\n\t\tundefined,\n\t\tundefined,\n\t\tstrictEquals,\n\t\tdebugLocation,\n\t);\n}\n\nexport function derivedWithSetter<T>(owner: DebugOwner | undefined, computeFn: (reader: IReader) => T, setter: (value: T, transaction: ITransaction | undefined) => void, debugLocation = DebugLocation.ofCaller()): ISettableObservable<T> {\n\treturn new DerivedWithSetter(\n\t\tnew DebugNameData(owner, undefined, computeFn),\n\t\tcomputeFn,\n\t\tundefined,\n\t\tundefined,\n\t\tstrictEquals,\n\t\tsetter,\n\t\tdebugLocation\n\t);\n}\n\nexport function derivedOpts<T>(\n\toptions: IDebugNameData & {\n\t\tequalsFn?: EqualityComparer<T>;\n\t\tonLastObserverRemoved?: (() => void);\n\t},\n\tcomputeFn: (reader: IReader) => T,\n\tdebugLocation = DebugLocation.ofCaller()\n): IObservable<T> {\n\treturn new Derived(\n\t\tnew DebugNameData(options.owner, options.debugName, options.debugReferenceFn),\n\t\tcomputeFn,\n\t\tundefined,\n\t\toptions.onLastObserverRemoved,\n\t\toptions.equalsFn ?? strictEquals,\n\t\tdebugLocation\n\t);\n}\n_setDerivedOpts(derivedOpts);\n\n/**\n * Represents an observable that is derived from other observables.\n * The value is only recomputed when absolutely needed.\n *\n * {@link computeFn} should start with a JS Doc using `@description` to name the derived.\n *\n * Use `createEmptyChangeSummary` to create a \"change summary\" that can collect the changes.\n * Use `handleChange` to add a reported change to the change summary.\n * The compute function is given the last change summary.\n * The change summary is discarded after the compute function was called.\n *\n * @see derived\n */\nexport function derivedHandleChanges<T, TDelta, TChangeSummary>(\n\toptions: IDebugNameData & {\n\t\tchangeTracker: IChangeTracker<TChangeSummary>;\n\t\tequalityComparer?: EqualityComparer<T>;\n\t},\n\tcomputeFn: (reader: IDerivedReader<TDelta>, changeSummary: TChangeSummary) => T,\n\tdebugLocation = DebugLocation.ofCaller()\n): IObservableWithChange<T, TDelta> {\n\treturn new Derived(\n\t\tnew DebugNameData(options.owner, options.debugName, undefined),\n\t\tcomputeFn,\n\t\toptions.changeTracker,\n\t\tundefined,\n\t\toptions.equalityComparer ?? strictEquals,\n\t\tdebugLocation\n\t);\n}\n\nexport function derivedDisposable<T extends IDisposable | undefined>(computeFn: (reader: IReader) => T): IObservable<T>;\nexport function derivedDisposable<T extends IDisposable | undefined>(owner: DebugOwner, computeFn: (reader: IReader) => T): IObservable<T>;\nexport function derivedDisposable<T extends IDisposable | undefined>(computeFnOrOwner: ((reader: IReader) => T) | DebugOwner, computeFnOrUndefined?: ((reader: IReader) => T), debugLocation = DebugLocation.ofCaller()): IObservable<T> {\n\tlet computeFn: (reader: IReader) => T;\n\tlet owner: DebugOwner;\n\tif (computeFnOrUndefined === undefined) {\n\t\tcomputeFn = computeFnOrOwner as any;\n\t\towner = undefined;\n\t} else {\n\t\towner = computeFnOrOwner;\n\t\tcomputeFn = computeFnOrUndefined as any;\n\t}\n\n\tlet store: DisposableStore | undefined = undefined;\n\treturn new Derived(\n\t\tnew DebugNameData(owner, undefined, computeFn),\n\t\tr => {\n\t\t\tif (!store) {\n\t\t\t\tstore = new DisposableStore();\n\t\t\t} else {\n\t\t\t\tstore.clear();\n\t\t\t}\n\t\t\tconst result = computeFn(r);\n\t\t\tif (result) {\n\t\t\t\tstore.add(result);\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\tundefined,\n\t\t() => {\n\t\t\tif (store) {\n\t\t\t\tstore.dispose();\n\t\t\t\tstore = undefined;\n\t\t\t}\n\t\t},\n\t\tstrictEquals,\n\t\tdebugLocation\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/observableInternal/observables/derived.ts","vs/base/common/observableInternal/observables/derived.ts"],"names":[],"mappings":"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","file":"derived.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IObservable, IReader, ITransaction, ISettableObservable, IObservableWithChange } from '../base.js';\nimport { IChangeTracker } from '../changeTracker.js';\nimport { DisposableStore, EqualityComparer, IDisposable, strictEquals } from '../commonFacade/deps.js';\nimport { DebugLocation } from '../debugLocation.js';\nimport { DebugOwner, DebugNameData, IDebugNameData } from '../debugName.js';\nimport { _setDerivedOpts } from './baseObservable.js';\nimport { IDerivedReader, Derived, DerivedWithSetter } from './derivedImpl.js';\n\n/**\n * Creates an observable that is derived from other observables.\n * The value is only recomputed when absolutely needed.\n *\n * {@link computeFn} should start with a JS Doc using `@description` to name the derived.\n */\nexport function derived<T, TChange = void>(computeFn: (reader: IDerivedReader<TChange>) => T): IObservableWithChange<T, TChange>;\nexport function derived<T, TChange = void>(owner: DebugOwner, computeFn: (reader: IDerivedReader<TChange>) => T): IObservableWithChange<T, TChange>;\nexport function derived<T, TChange = void>(\n\tcomputeFnOrOwner: ((reader: IDerivedReader<TChange>) => T) | DebugOwner,\n\tcomputeFn?: ((reader: IDerivedReader<TChange>) => T) | undefined,\n\tdebugLocation = DebugLocation.ofCaller()\n): IObservable<T> {\n\tif (computeFn !== undefined) {\n\t\treturn new Derived(\n\t\t\tnew DebugNameData(computeFnOrOwner, undefined, computeFn),\n\t\t\tcomputeFn,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tstrictEquals,\n\t\t\tdebugLocation,\n\t\t);\n\t}\n\treturn new Derived(\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tnew DebugNameData(undefined, undefined, computeFnOrOwner as any),\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tcomputeFnOrOwner as any,\n\t\tundefined,\n\t\tundefined,\n\t\tstrictEquals,\n\t\tdebugLocation,\n\t);\n}\n\nexport function derivedWithSetter<T>(owner: DebugOwner | undefined, computeFn: (reader: IReader) => T, setter: (value: T, transaction: ITransaction | undefined) => void, debugLocation = DebugLocation.ofCaller()): ISettableObservable<T> {\n\treturn new DerivedWithSetter(\n\t\tnew DebugNameData(owner, undefined, computeFn),\n\t\tcomputeFn,\n\t\tundefined,\n\t\tundefined,\n\t\tstrictEquals,\n\t\tsetter,\n\t\tdebugLocation\n\t);\n}\n\nexport function derivedOpts<T>(\n\toptions: IDebugNameData & {\n\t\tequalsFn?: EqualityComparer<T>;\n\t\tonLastObserverRemoved?: (() => void);\n\t},\n\tcomputeFn: (reader: IReader) => T,\n\tdebugLocation = DebugLocation.ofCaller()\n): IObservable<T> {\n\treturn new Derived(\n\t\tnew DebugNameData(options.owner, options.debugName, options.debugReferenceFn),\n\t\tcomputeFn,\n\t\tundefined,\n\t\toptions.onLastObserverRemoved,\n\t\toptions.equalsFn ?? strictEquals,\n\t\tdebugLocation\n\t);\n}\n_setDerivedOpts(derivedOpts);\n\n/**\n * Represents an observable that is derived from other observables.\n * The value is only recomputed when absolutely needed.\n *\n * {@link computeFn} should start with a JS Doc using `@description` to name the derived.\n *\n * Use `createEmptyChangeSummary` to create a \"change summary\" that can collect the changes.\n * Use `handleChange` to add a reported change to the change summary.\n * The compute function is given the last change summary.\n * The change summary is discarded after the compute function was called.\n *\n * @see derived\n */\nexport function derivedHandleChanges<T, TDelta, TChangeSummary>(\n\toptions: IDebugNameData & {\n\t\tchangeTracker: IChangeTracker<TChangeSummary>;\n\t\tequalityComparer?: EqualityComparer<T>;\n\t},\n\tcomputeFn: (reader: IDerivedReader<TDelta>, changeSummary: TChangeSummary) => T,\n\tdebugLocation = DebugLocation.ofCaller()\n): IObservableWithChange<T, TDelta> {\n\treturn new Derived(\n\t\tnew DebugNameData(options.owner, options.debugName, undefined),\n\t\tcomputeFn,\n\t\toptions.changeTracker,\n\t\tundefined,\n\t\toptions.equalityComparer ?? strictEquals,\n\t\tdebugLocation\n\t);\n}\n\nexport function derivedDisposable<T extends IDisposable | undefined>(computeFn: (reader: IReader) => T): IObservable<T>;\nexport function derivedDisposable<T extends IDisposable | undefined>(owner: DebugOwner, computeFn: (reader: IReader) => T): IObservable<T>;\nexport function derivedDisposable<T extends IDisposable | undefined>(computeFnOrOwner: ((reader: IReader) => T) | DebugOwner, computeFnOrUndefined?: ((reader: IReader) => T), debugLocation = DebugLocation.ofCaller()): IObservable<T> {\n\tlet computeFn: (reader: IReader) => T;\n\tlet owner: DebugOwner;\n\tif (computeFnOrUndefined === undefined) {\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tcomputeFn = computeFnOrOwner as any;\n\t\towner = undefined;\n\t} else {\n\t\towner = computeFnOrOwner;\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tcomputeFn = computeFnOrUndefined as any;\n\t}\n\n\tlet store: DisposableStore | undefined = undefined;\n\treturn new Derived(\n\t\tnew DebugNameData(owner, undefined, computeFn),\n\t\tr => {\n\t\t\tif (!store) {\n\t\t\t\tstore = new DisposableStore();\n\t\t\t} else {\n\t\t\t\tstore.clear();\n\t\t\t}\n\t\t\tconst result = computeFn(r);\n\t\t\tif (result) {\n\t\t\t\tstore.add(result);\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\tundefined,\n\t\t() => {\n\t\t\tif (store) {\n\t\t\t\tstore.dispose();\n\t\t\t\tstore = undefined;\n\t\t\t}\n\t\t},\n\t\tstrictEquals,\n\t\tdebugLocation\n\t);\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IObservable, IReader, ITransaction, ISettableObservable, IObservableWithChange } from '../base.js';\nimport { IChangeTracker } from '../changeTracker.js';\nimport { DisposableStore, EqualityComparer, IDisposable, strictEquals } from '../commonFacade/deps.js';\nimport { DebugLocation } from '../debugLocation.js';\nimport { DebugOwner, DebugNameData, IDebugNameData } from '../debugName.js';\nimport { _setDerivedOpts } from './baseObservable.js';\nimport { IDerivedReader, Derived, DerivedWithSetter } from './derivedImpl.js';\n\n/**\n * Creates an observable that is derived from other observables.\n * The value is only recomputed when absolutely needed.\n *\n * {@link computeFn} should start with a JS Doc using `@description` to name the derived.\n */\nexport function derived<T, TChange = void>(computeFn: (reader: IDerivedReader<TChange>) => T): IObservableWithChange<T, TChange>;\nexport function derived<T, TChange = void>(owner: DebugOwner, computeFn: (reader: IDerivedReader<TChange>) => T): IObservableWithChange<T, TChange>;\nexport function derived<T, TChange = void>(\n\tcomputeFnOrOwner: ((reader: IDerivedReader<TChange>) => T) | DebugOwner,\n\tcomputeFn?: ((reader: IDerivedReader<TChange>) => T) | undefined,\n\tdebugLocation = DebugLocation.ofCaller()\n): IObservable<T> {\n\tif (computeFn !== undefined) {\n\t\treturn new Derived(\n\t\t\tnew DebugNameData(computeFnOrOwner, undefined, computeFn),\n\t\t\tcomputeFn,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tstrictEquals,\n\t\t\tdebugLocation,\n\t\t);\n\t}\n\treturn new Derived(\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tnew DebugNameData(undefined, undefined, computeFnOrOwner as any),\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tcomputeFnOrOwner as any,\n\t\tundefined,\n\t\tundefined,\n\t\tstrictEquals,\n\t\tdebugLocation,\n\t);\n}\n\nexport function derivedWithSetter<T>(owner: DebugOwner | undefined, computeFn: (reader: IReader) => T, setter: (value: T, transaction: ITransaction | undefined) => void, debugLocation = DebugLocation.ofCaller()): ISettableObservable<T> {\n\treturn new DerivedWithSetter(\n\t\tnew DebugNameData(owner, undefined, computeFn),\n\t\tcomputeFn,\n\t\tundefined,\n\t\tundefined,\n\t\tstrictEquals,\n\t\tsetter,\n\t\tdebugLocation\n\t);\n}\n\nexport function derivedOpts<T>(\n\toptions: IDebugNameData & {\n\t\tequalsFn?: EqualityComparer<T>;\n\t\tonLastObserverRemoved?: (() => void);\n\t},\n\tcomputeFn: (reader: IReader) => T,\n\tdebugLocation = DebugLocation.ofCaller()\n): IObservable<T> {\n\treturn new Derived(\n\t\tnew DebugNameData(options.owner, options.debugName, options.debugReferenceFn),\n\t\tcomputeFn,\n\t\tundefined,\n\t\toptions.onLastObserverRemoved,\n\t\toptions.equalsFn ?? strictEquals,\n\t\tdebugLocation\n\t);\n}\n_setDerivedOpts(derivedOpts);\n\n/**\n * Represents an observable that is derived from other observables.\n * The value is only recomputed when absolutely needed.\n *\n * {@link computeFn} should start with a JS Doc using `@description` to name the derived.\n *\n * Use `createEmptyChangeSummary` to create a \"change summary\" that can collect the changes.\n * Use `handleChange` to add a reported change to the change summary.\n * The compute function is given the last change summary.\n * The change summary is discarded after the compute function was called.\n *\n * @see derived\n */\nexport function derivedHandleChanges<T, TDelta, TChangeSummary>(\n\toptions: IDebugNameData & {\n\t\tchangeTracker: IChangeTracker<TChangeSummary>;\n\t\tequalityComparer?: EqualityComparer<T>;\n\t},\n\tcomputeFn: (reader: IDerivedReader<TDelta>, changeSummary: TChangeSummary) => T,\n\tdebugLocation = DebugLocation.ofCaller()\n): IObservableWithChange<T, TDelta> {\n\treturn new Derived(\n\t\tnew DebugNameData(options.owner, options.debugName, undefined),\n\t\tcomputeFn,\n\t\toptions.changeTracker,\n\t\tundefined,\n\t\toptions.equalityComparer ?? strictEquals,\n\t\tdebugLocation\n\t);\n}\n\nexport function derivedDisposable<T extends IDisposable | undefined>(computeFn: (reader: IReader) => T): IObservable<T>;\nexport function derivedDisposable<T extends IDisposable | undefined>(owner: DebugOwner, computeFn: (reader: IReader) => T): IObservable<T>;\nexport function derivedDisposable<T extends IDisposable | undefined>(computeFnOrOwner: ((reader: IReader) => T) | DebugOwner, computeFnOrUndefined?: ((reader: IReader) => T), debugLocation = DebugLocation.ofCaller()): IObservable<T> {\n\tlet computeFn: (reader: IReader) => T;\n\tlet owner: DebugOwner;\n\tif (computeFnOrUndefined === undefined) {\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tcomputeFn = computeFnOrOwner as any;\n\t\towner = undefined;\n\t} else {\n\t\towner = computeFnOrOwner;\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tcomputeFn = computeFnOrUndefined as any;\n\t}\n\n\tlet store: DisposableStore | undefined = undefined;\n\treturn new Derived(\n\t\tnew DebugNameData(owner, undefined, computeFn),\n\t\tr => {\n\t\t\tif (!store) {\n\t\t\t\tstore = new DisposableStore();\n\t\t\t} else {\n\t\t\t\tstore.clear();\n\t\t\t}\n\t\t\tconst result = computeFn(r);\n\t\t\tif (result) {\n\t\t\t\tstore.add(result);\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\tundefined,\n\t\t() => {\n\t\t\tif (store) {\n\t\t\t\tstore.dispose();\n\t\t\t\tstore = undefined;\n\t\t\t}\n\t\t},\n\t\tstrictEquals,\n\t\tdebugLocation\n\t);\n}\n"]}
|
|
@@ -247,6 +247,7 @@ export class Derived extends BaseObservable {
|
|
|
247
247
|
shouldReact = this._changeTracker ? this._changeTracker.handleChange({
|
|
248
248
|
changedObservable: observable,
|
|
249
249
|
change,
|
|
250
|
+
// eslint-disable-next-line local/code-no-any-casts
|
|
250
251
|
didChange: (o) => o === observable,
|
|
251
252
|
}, this._changeSummary) : true;
|
|
252
253
|
}
|
|
@@ -320,6 +321,7 @@ export class Derived extends BaseObservable {
|
|
|
320
321
|
};
|
|
321
322
|
}
|
|
322
323
|
debugSetValue(newValue) {
|
|
324
|
+
// eslint-disable-next-line local/code-no-any-casts
|
|
323
325
|
this._value = newValue;
|
|
324
326
|
}
|
|
325
327
|
debugRecompute() {
|