reducer.ts ×3

Frontier kind: Joint frontier

unlabeled · c_19972b2b48d7

1 test · 7144 LOC · 60 files · introduces 1 test · 48 LOC · 2 files

Introduces — evidence that enters the hierarchy at this concept

Code
4 ranges48 lines · 2 files
Tests
1 test

Contains — complete concept membership

All code (extent)
1089 ranges7144 lines · 60 files · Browse complete extent
All tests (intent)
1 testBrowse complete intent

Neighbourhood graph

The orange circle is the focus. Violet and green circles are every ancestor and descendant, broader and narrower, at any distance; blue squares and pink diamonds are the introduced files and exact introduced tests of every visible concept, not only the focus's. Arrows point from broader to narrower concepts and bridge only concepts omitted from this view. Undirected links show source or test introduction. Concept and file size follows LOC; exact test nodes use test-count units.

Introduced files, introduced tests, and structurally relevant concept specialization

In the embedded map, ordinary wheel input scrolls the page; use the visible controls to zoom and drag to pan. Open the full-screen map for canvas navigation: wheel pans, Ctrl/Command plus wheel zooms, and arrow keys pan when this region is focused. On touch screens, open the full-screen map to pan or pinch. If JavaScript or WebGL is unavailable, use the native relationship evidence on this page.

Introduced files, introduced tests, and structurally relevant concept specializationautorunImpl.ts ×2 · 2 introduced LOCautorunImpl.ts ×2derivedImpl.ts ×1 · 4 introduced LOCderivedImpl.ts ×1derivedImpl.ts ×3 · 66 introduced LOCderivedImpl.ts ×3autorunImpl.ts ×1 · 3 introduced LOCautorunImpl.ts ×1autorunImpl.ts ×2 · 6 introduced LOCautorunImpl.ts ×2autorunImpl.ts ×2 · 20 introduced LOCautorunImpl.ts ×2derivedImpl.ts ×9 · 47 introduced LOCderivedImpl.ts ×9autorunImpl.ts ×5 · 17 introduced LOCautorunImpl.ts ×5autorunImpl.ts ×7 · 26 introduced LOCautorunImpl.ts ×7derivedImpl.ts ×2 · 3 introduced LOCderivedImpl.ts ×2observableValue.ts ×1 · 3 introduced LOCobservableValue.ts ×1autorunImpl.ts ×15 · 71 introduced LOCautorunImpl.ts ×15derivedImpl.ts ×1 · 2 introduced LOCderivedImpl.ts ×1derivedImpl.ts ×13 · 74 introduced LOCderivedImpl.ts ×13observableValue.ts ×5 · 11 introduced LOCobservableValue.ts ×5derivedImpl.ts ×4 · 15 introduced LOCderivedImpl.ts ×4derivedImpl.ts ×2 · 13 introduced LOCderivedImpl.ts ×2transaction.ts ×3 · 9 introduced LOCtransaction.ts ×3reducer.ts ×3 · 49 introduced LOCreducer.ts ×3transaction.ts ×1 · 7 introduced LOCtransaction.ts ×1derivedImpl.ts ×4 · 6 introduced LOCderivedImpl.ts ×4observableValue.ts ×3 · 5 introduced LOCobservableValue.ts ×3transaction.ts ×4 · 10 introduced LOCtransaction.ts ×4baseObservable.ts ×1 · 1 introduced LOCbaseObservable.ts ×1observableValue.ts ×1 · 1 introduced LOCobservableValue.ts ×1baseObservable.ts ×1 · 2 introduced LOCbaseObservable.ts ×1observableValue.ts ×3 · 5 introduced LOCobservableValue.ts ×3baseObservable.ts ×1 · 8 introduced LOCbaseObservable.ts ×1observableValue.ts ×1 · 2 introduced LOCobservableValue.ts ×1baseObservable.ts ×1 · 9 introduced LOCbaseObservable.ts ×1derivedImpl.ts ×1 · 10 introduced LOCderivedImpl.ts ×1observableValue.ts ×1 · 10 introduced LOCobservableValue.ts ×1debugLocation.ts ×2 · 13 introduced LOCdebugLocation.ts ×2baseObservable.ts ×3 · 3 introduced LOCbaseObservable.ts ×3debugGetDependencyGraph.ts ×2 · 22 introduced LOCdebugGetDependencyGraph.…observableSignalFromEvent.ts ×1 · 10 introduced LOCobservableSignalFromEven…promise.ts ×1 · 5 introduced LOCpromise.ts ×1devToolsLogger.ts ×24 · 1971 introduced LOCdevToolsLogger.ts ×24assert.ts ×2 · 2 introduced LOCassert.ts ×2cancellation.test|title=CancellationToken None|occurrence=1 · 0 introduced LOCcancellation.test|title=…lifecycle.test|title=No Leakage Utilities ensureNoDisposablesAreLeakedInTest Basic Test|occurrence=1 · 0 introduced LOClifecycle.test|title=No …cancellation.ts ×18 · 90 introduced LOCcancellation.ts ×18lifecycle.test|title=Lifecycle dispose disposable array|occurrence=1, lifecycle.test|title=Lifecycle Action bar has broken accessibility #100273|occurrence=1 · 0 introduced LOClifecycle.test|title=Lif…lifecycle.ts ×3 · 6 introduced LOClifecycle.ts ×3lifecycle.ts ×2 · 6 introduced LOClifecycle.ts ×2event.ts ×93 · 864 introduced LOCevent.ts ×93lifecycle.ts ×1 · 6 introduced LOClifecycle.ts ×1languageStatusDedupe.test|title=LanguageStatus - Dedicated Entry Deduplication disposes entries no longer in model|occurrence=1 · 0 introduced LOClanguageStatusDedupe.tes…languageStatusDedupe.test|title=LanguageStatus - Dedicated Entry Deduplication mixed unique and duplicate IDs|occurrence=1, languageStatusDedupe.test|title=LanguageStatus - Dedicated Entry Deduplication creates new entry when none exists|occurrence=1, +4 · 0 introduced LOClanguageStatusDedupe.tes…equals.ts ×14 · 108 introduced LOCequals.ts ×14uri.test|title=URI URI#file, win-speciale|occurrence=1, charCode.test|title=CharCode has good values|occurrence=1, +2 · 0 introduced LOCuri.test|title=URI URI#f…utils.ts ×3 · 9 introduced LOCutils.ts ×3lifecycle.ts ×1 · 3 introduced LOClifecycle.ts ×1linkedList.ts ×13 · 44 introduced LOClinkedList.ts ×13lifecycle.ts ×2 · 6 introduced LOClifecycle.ts ×2lifecycle.ts ×2 · 4 introduced LOClifecycle.ts ×2lifecycle.ts ×1 · 6 introduced LOClifecycle.ts ×1lifecycle.ts ×1 · 1 introduced LOClifecycle.ts ×1lifecycle.ts ×3 · 9 introduced LOClifecycle.ts ×3lifecycle.ts ×1 · 2 introduced LOClifecycle.ts ×1lifecycle.ts ×1 · 7 introduced LOClifecycle.ts ×1lifecycle.ts ×4 · 7 introduced LOClifecycle.ts ×4lifecycle.ts ×4 · 8 introduced LOClifecycle.ts ×4lifecycle.ts ×6 · 16 introduced LOClifecycle.ts ×6lifecycle.ts ×2 · 2 introduced LOClifecycle.ts ×2lifecycle.ts ×1 · 3 introduced LOClifecycle.ts ×1lifecycle.ts ×3 · 3 introduced LOClifecycle.ts ×3lifecycle.ts ×1 · 2 introduced LOClifecycle.ts ×1lifecycle.ts ×1 · 2 introduced LOClifecycle.ts ×1iterator.ts ×1 · 2 introduced LOCiterator.ts ×1lifecycle.ts ×1 · 3 introduced LOClifecycle.ts ×1map.ts ×97 · 3334 introduced LOCmap.ts ×97src/vs/base/common/arrays.ts · 949 LOCcommon/arrays.tssrc/vs/base/common/arraysFind.ts · 226 LOCcommon/arraysFind.tssrc/vs/base/common/assert.ts · 91 LOCcommon/assert.tssrc/vs/base/common/cancellation.ts · 206 LOCcommon/cancellation.tssrc/vs/base/common/charCode.ts · 450 LOCcommon/charCode.tssrc/vs/base/common/collections.ts · 176 LOCcommon/collections.tssrc/vs/base/common/equals.ts · 206 LOCcommon/equals.tssrc/vs/base/common/errors.ts · 357 LOCcommon/errors.tssrc/vs/base/common/event.ts · 1964 LOCcommon/event.tssrc/vs/base/common/functional.ts · 32 LOCcommon/functional.tssrc/vs/base/common/iterator.ts · 194 LOCcommon/iterator.tssrc/vs/base/common/lifecycle.ts · 974 LOCcommon/lifecycle.tssrc/vs/base/common/linkedList.ts · 151 LOCcommon/linkedList.tssrc/vs/base/common/map.ts · 1016 LOCcommon/map.tssrc/vs/base/common/marshallingIds.ts · 33 LOCcommon/marshallingIds.tssrc/vs/base/common/observable.ts · 8 LOCcommon/observable.tssrc/vs/base/common/observableInternal/base.ts · 210 LOCobservableInternal/base.…src/vs/base/common/observableInternal/changeTracker.ts · 98 LOCobservableInternal/chang…src/vs/base/common/observableInternal/commonFacade/cancellation.ts · 7 LOCcommonFacade/cancellatio…src/vs/base/common/observableInternal/commonFacade/deps.ts · 10 LOCcommonFacade/deps.tssrc/vs/base/common/observableInternal/debugLocation.ts · 86 LOCobservableInternal/debug…src/vs/base/common/observableInternal/debugName.ts · 148 LOCobservableInternal/debug…src/vs/base/common/observableInternal/experimental/reducer.ts · 88 LOCexperimental/reducer.tssrc/vs/base/common/observableInternal/experimental/utils.ts · 60 LOCexperimental/utils.tssrc/vs/base/common/observableInternal/index.ts · 62 LOCobservableInternal/index…src/vs/base/common/observableInternal/logging/consoleObservableLogger.ts · 387 LOClogging/consoleObservabl…src/vs/base/common/observableInternal/logging/debugGetDependencyGraph.ts · 159 LOClogging/debugGetDependen…src/vs/base/common/observableInternal/logging/debugger/debuggerRpc.ts · 79 LOCdebugger/debuggerRpc.tssrc/vs/base/common/observableInternal/logging/debugger/devToolsLogger.ts · 483 LOCdebugger/devToolsLogger.…src/vs/base/common/observableInternal/logging/debugger/rpc.ts · 102 LOCdebugger/rpc.tssrc/vs/base/common/observableInternal/logging/debugger/utils.ts · 67 LOCdebugger/utils.tssrc/vs/base/common/observableInternal/logging/logging.ts · 131 LOClogging/logging.tssrc/vs/base/common/observableInternal/map.ts · 79 LOCobservableInternal/map.t…src/vs/base/common/observableInternal/observables/baseObservable.ts · 193 LOCobservables/baseObservab…src/vs/base/common/observableInternal/observables/constObservable.ts · 42 LOCobservables/constObserva…src/vs/base/common/observableInternal/observables/derived.ts · 194 LOCobservables/derived.tssrc/vs/base/common/observableInternal/observables/derivedImpl.ts · 459 LOCobservables/derivedImpl.…src/vs/base/common/observableInternal/observables/lazyObservableValue.ts · 152 LOCobservables/lazyObservab…src/vs/base/common/observableInternal/observables/observableFromEvent.ts · 181 LOCobservables/observableFr…src/vs/base/common/observableInternal/observables/observableSignal.ts · 65 LOCobservables/observableSi…src/vs/base/common/observableInternal/observables/observableSignalFromEvent.ts · 60 LOCobservables/observableSi…src/vs/base/common/observableInternal/observables/observableValue.ts · 129 LOCobservables/observableVa…src/vs/base/common/observableInternal/observables/observableValueOpts.ts · 35 LOCobservables/observableVa…src/vs/base/common/observableInternal/reactions/autorun.ts · 294 LOCreactions/autorun.tssrc/vs/base/common/observableInternal/reactions/autorunImpl.ts · 282 LOCreactions/autorunImpl.tssrc/vs/base/common/observableInternal/set.ts · 76 LOCobservableInternal/set.t…src/vs/base/common/observableInternal/transaction.ts · 113 LOCobservableInternal/trans…src/vs/base/common/observableInternal/utils/promise.ts · 171 LOCutils/promise.tssrc/vs/base/common/observableInternal/utils/runOnChange.ts · 63 LOCutils/runOnChange.tssrc/vs/base/common/observableInternal/utils/utils.ts · 352 LOCutils/utils.tssrc/vs/base/common/observableInternal/utils/utilsCancellation.ts · 101 LOCutils/utilsCancellation.…src/vs/base/common/observableInternal/utils/valueWithChangeEvent.ts · 29 LOCutils/valueWithChangeEve…src/vs/base/common/path.ts · 1589 LOCcommon/path.tssrc/vs/base/common/platform.ts · 281 LOCcommon/platform.tssrc/vs/base/common/process.ts · 76 LOCcommon/process.tssrc/vs/base/common/stopwatch.ts · 41 LOCcommon/stopwatch.tssrc/vs/base/common/types.ts · 410 LOCcommon/types.tssrc/vs/base/common/uri.ts · 754 LOCcommon/uri.tssrc/vs/base/test/common/utils.ts · 107 LOCcommon/utils.tssrc/vs/nls.ts · 244 LOCvs/nls.tscancellation.test|title=CancellationToken None|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/cancellation.test|title=CancellationToken None|occurrence=1cancellation.test|title=…charCode.test|title=CharCode has good values|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/charCode.test|title=CharCode has good values|occurrence=1charCode.test|title=Char…lifecycle.test|title=Lifecycle Action bar has broken accessibility #100273|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/lifecycle.test|title=Lifecycle Action bar has broken accessibility #100273|occurrence=1lifecycle.test|title=Lif…lifecycle.test|title=Lifecycle dispose disposable array|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/lifecycle.test|title=Lifecycle dispose disposable array|occurrence=1lifecycle.test|title=Lif…lifecycle.test|title=No Leakage Utilities ensureNoDisposablesAreLeakedInTest Basic Test|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/lifecycle.test|title=No Leakage Utilities ensureNoDisposablesAreLeakedInTest Basic Test|occurrence=1lifecycle.test|title=No …observable.test|title=observables observableReducer main|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/observables/observable.test|title=observables observableReducer main|occurrence=1observable.test|title=ob…path.test|title=Paths (Node Implementation) path|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/path.test|title=Paths (Node Implementation) path|occurrence=1path.test|title=Paths (N…uri.test|title=URI File paths containing apostrophes break URI parsing and cannot be opened #276075|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/uri.test|title=URI File paths containing apostrophes break URI parsing and cannot be opened #276075|occurrence=1uri.test|title=URI File …uri.test|title=URI URI#file, win-speciale|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/uri.test|title=URI URI#file, win-speciale|occurrence=1uri.test|title=URI URI#f…languageStatusDedupe.test|title=LanguageStatus - Dedicated Entry Deduplication creates new entry when none exists|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/languageStatus/test/common/languageStatusDedupe.test|title=LanguageStatus - Dedicated Entry Deduplication creates new entry when none exists|occurrence=1languageStatusDedupe.tes…languageStatusDedupe.test|title=LanguageStatus - Dedicated Entry Deduplication disposes entries no longer in model|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/languageStatus/test/common/languageStatusDedupe.test|title=LanguageStatus - Dedicated Entry Deduplication disposes entries no longer in model|occurrence=1languageStatusDedupe.tes…languageStatusDedupe.test|title=LanguageStatus - Dedicated Entry Deduplication duplicate IDs with existing entry - fixed version reuses existing|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/languageStatus/test/common/languageStatusDedupe.test|title=LanguageStatus - Dedicated Entry Deduplication duplicate IDs with existing entry - fixed version reuses existing|occurrence=1languageStatusDedupe.tes…languageStatusDedupe.test|title=LanguageStatus - Dedicated Entry Deduplication duplicate status IDs - buggy version leaks entry|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/languageStatus/test/common/languageStatusDedupe.test|title=LanguageStatus - Dedicated Entry Deduplication duplicate status IDs - buggy version leaks entry|occurrence=1languageStatusDedupe.tes…languageStatusDedupe.test|title=LanguageStatus - Dedicated Entry Deduplication duplicate status IDs - fixed version reuses entry from current update|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/languageStatus/test/common/languageStatusDedupe.test|title=LanguageStatus - Dedicated Entry Deduplication duplicate status IDs - fixed version reuses entry from current update|occurrence=1languageStatusDedupe.tes…languageStatusDedupe.test|title=LanguageStatus - Dedicated Entry Deduplication mixed unique and duplicate IDs|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/languageStatus/test/common/languageStatusDedupe.test|title=LanguageStatus - Dedicated Entry Deduplication mixed unique and duplicate IDs|occurrence=1languageStatusDedupe.tes…languageStatusDedupe.test|title=LanguageStatus - Dedicated Entry Deduplication reuses existing entry from previous update|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/languageStatus/test/common/languageStatusDedupe.test|title=LanguageStatus - Dedicated Entry Deduplication reuses existing entry from previous update|occurrence=1languageStatusDedupe.tes…Focused concept · reducer.ts ×3 · 48 introduced LOCreducer.ts ×3

Graph controls are ready.

Interactive rendering requires JavaScript and WebGL. Use the native relationship evidence on this page while the interactive map is unavailable.

Native relationship evidence

Every exact file and test below is linked only from the concept that introduces it.

Introduced tests

Every collected test enters the hierarchy at exactly one concept.

1 test introduced at this concept.

Introduced code

Every collected source range enters the hierarchy at exactly one concept.

2 files ranked by introduced lines: 48 introduced LOC across 4 ranges. Expand a file to inspect source; the > gutter marks introduced lines.

src/vs/base/common/observableInternal/experimental/reducer.ts 31 introduced LOC · 3 ranges

Open complete file

37 */
38 export function observableReducer<T, TInChanges, TOutChange = void>(owner: DebugOwner, options: IReducerOptions<T, TInChanges, TOutChange>): SimplifyObservableWithChange<T, TOutChange> {
39 > // eslint-disable-next-line local/code-no-any-casts reducer.ts
40 > return observableReducerSettable<T, TInChanges, TOutChange>(owner, options) as any;
41 > }
42
43 /**
46 */
47 export function observableReducerSettable<T, TInChanges, TOutChange = void>(owner: DebugOwner, options: IReducerOptions<T, TInChanges, TOutChange>): ISettableObservable<T, TOutChange> {
48 > let prevValue: T | undefined = undefined; reducer.ts
49 > let hasValue = false;
50 >
51 > const d = new DerivedWithSetter(
52 > new DebugNameData(owner, undefined, options.update),
53 > (reader: IDerivedReader<TOutChange>, changeSummary) => {
54 > if (!hasValue) {
55 > prevValue = options.initial instanceof Function ? options.initial() : options.initial;
56 > hasValue = true;
57 > }
58 > const newValue = options.update(reader, prevValue!, changeSummary);
59 > prevValue = newValue;
60 > return newValue;
61 > },
62 > options.changeTracker,
63 > () => {
64 > if (hasValue) {
65 > options.disposeFinal?.(prevValue!);
66 > hasValue = false;
67 > }
68 > },
69 > options.equalityComparer ?? strictEquals,
70 > (value, tx, change) => {
71 if (!hasValue) {
72 throw new BugIndicatingError('Can only set when there is a listener! This is to prevent leaks.');
77 });
78 },
79 > DebugLocation.ofCaller() reducer.ts
80 > );
81 >
82 > return d;
83 > }
84
85 /**
src/vs/base/common/observableInternal/observables/derivedImpl.ts 17 introduced LOC · 1 range

Open complete file

440 export class DerivedWithSetter<T, TChangeSummary = any, TOutChanges = any> extends Derived<T, TChangeSummary, TOutChanges> implements ISettableObservable<T, TOutChanges> {
441 constructor(
442 > debugNameData: DebugNameData, derivedImpl.ts
443 > computeFn: (reader: IDerivedReader<TOutChanges>, changeSummary: TChangeSummary) => T,
444 > changeTracker: IChangeTracker<TChangeSummary> | undefined,
445 > handleLastObserverRemoved: (() => void) | undefined = undefined,
446 > equalityComparator: EqualityComparer<T>,
447 > public readonly set: (value: T, tx: ITransaction | undefined, change: TOutChanges) => void,
448 > debugLocation: DebugLocation,
449 > ) {
450 > super(
451 > debugNameData,
452 > computeFn,
453 > changeTracker,
454 > handleLastObserverRemoved,
455 > equalityComparator,
456 > debugLocation,
457 > );
458 > }
459 }