@vscode/observables 0.1.1-0

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.
Files changed (159) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +164 -0
  3. package/dist/assert.d.ts +3 -0
  4. package/dist/assert.d.ts.map +1 -0
  5. package/dist/deps.d.ts +29 -0
  6. package/dist/deps.d.ts.map +1 -0
  7. package/dist/disposables.d.ts +20 -0
  8. package/dist/disposables.d.ts.map +1 -0
  9. package/dist/disposables.js +66 -0
  10. package/dist/disposables.js.map +1 -0
  11. package/dist/equals.d.ts +33 -0
  12. package/dist/equals.d.ts.map +1 -0
  13. package/dist/index.d.ts +3 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +27 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/index.min.js +124 -0
  18. package/dist/index.min.js.map +1 -0
  19. package/dist/observableInternal/base.d.ts +173 -0
  20. package/dist/observableInternal/base.d.ts.map +1 -0
  21. package/dist/observableInternal/base.js +21 -0
  22. package/dist/observableInternal/base.js.map +1 -0
  23. package/dist/observableInternal/changeTracker.d.ts +45 -0
  24. package/dist/observableInternal/changeTracker.d.ts.map +1 -0
  25. package/dist/observableInternal/changeTracker.js +78 -0
  26. package/dist/observableInternal/changeTracker.js.map +1 -0
  27. package/dist/observableInternal/commonFacade/cancellation.d.ts +25 -0
  28. package/dist/observableInternal/commonFacade/cancellation.d.ts.map +1 -0
  29. package/dist/observableInternal/commonFacade/cancellation.js +55 -0
  30. package/dist/observableInternal/commonFacade/cancellation.js.map +1 -0
  31. package/dist/observableInternal/commonFacade/deps.d.ts +25 -0
  32. package/dist/observableInternal/commonFacade/deps.d.ts.map +1 -0
  33. package/dist/observableInternal/commonFacade/deps.js +37 -0
  34. package/dist/observableInternal/commonFacade/deps.js.map +1 -0
  35. package/dist/observableInternal/debugLocation.d.ts +22 -0
  36. package/dist/observableInternal/debugLocation.d.ts.map +1 -0
  37. package/dist/observableInternal/debugLocation.js +77 -0
  38. package/dist/observableInternal/debugLocation.js.map +1 -0
  39. package/dist/observableInternal/debugName.d.ts +34 -0
  40. package/dist/observableInternal/debugName.d.ts.map +1 -0
  41. package/dist/observableInternal/debugName.js +114 -0
  42. package/dist/observableInternal/debugName.js.map +1 -0
  43. package/dist/observableInternal/experimental/deferUnobserve.d.ts +17 -0
  44. package/dist/observableInternal/experimental/deferUnobserve.d.ts.map +1 -0
  45. package/dist/observableInternal/experimental/deferUnobserve.js +68 -0
  46. package/dist/observableInternal/experimental/deferUnobserve.js.map +1 -0
  47. package/dist/observableInternal/experimental/reducer.d.ts +38 -0
  48. package/dist/observableInternal/experimental/reducer.d.ts.map +1 -0
  49. package/dist/observableInternal/experimental/utils.d.ts +16 -0
  50. package/dist/observableInternal/experimental/utils.d.ts.map +1 -0
  51. package/dist/observableInternal/experimental/utils.js +64 -0
  52. package/dist/observableInternal/experimental/utils.js.map +1 -0
  53. package/dist/observableInternal/index.d.ts +26 -0
  54. package/dist/observableInternal/index.d.ts.map +1 -0
  55. package/dist/observableInternal/index.js +21 -0
  56. package/dist/observableInternal/index.js.map +1 -0
  57. package/dist/observableInternal/logging/consoleObservableLogger.d.ts +41 -0
  58. package/dist/observableInternal/logging/consoleObservableLogger.d.ts.map +1 -0
  59. package/dist/observableInternal/logging/consoleObservableLogger.js +355 -0
  60. package/dist/observableInternal/logging/consoleObservableLogger.js.map +1 -0
  61. package/dist/observableInternal/logging/debugGetDependencyGraph.d.ts +5 -0
  62. package/dist/observableInternal/logging/debugGetDependencyGraph.d.ts.map +1 -0
  63. package/dist/observableInternal/logging/debugGetDependencyGraph.js +78 -0
  64. package/dist/observableInternal/logging/debugGetDependencyGraph.js.map +1 -0
  65. package/dist/observableInternal/logging/debugger/debuggerRpc.d.ts +5 -0
  66. package/dist/observableInternal/logging/debugger/debuggerRpc.d.ts.map +1 -0
  67. package/dist/observableInternal/logging/debugger/devToolsLogger.d.ts +44 -0
  68. package/dist/observableInternal/logging/debugger/devToolsLogger.d.ts.map +1 -0
  69. package/dist/observableInternal/logging/debugger/rpc.d.ts +42 -0
  70. package/dist/observableInternal/logging/debugger/rpc.d.ts.map +1 -0
  71. package/dist/observableInternal/logging/debugger/utils.d.ts +14 -0
  72. package/dist/observableInternal/logging/debugger/utils.d.ts.map +1 -0
  73. package/dist/observableInternal/logging/logging.d.ts +31 -0
  74. package/dist/observableInternal/logging/logging.d.ts.map +1 -0
  75. package/dist/observableInternal/logging/logging.js +100 -0
  76. package/dist/observableInternal/logging/logging.js.map +1 -0
  77. package/dist/observableInternal/map.d.ts +19 -0
  78. package/dist/observableInternal/map.d.ts.map +1 -0
  79. package/dist/observableInternal/map.js +71 -0
  80. package/dist/observableInternal/map.js.map +1 -0
  81. package/dist/observableInternal/observables/baseObservable.d.ts +59 -0
  82. package/dist/observableInternal/observables/baseObservable.d.ts.map +1 -0
  83. package/dist/observableInternal/observables/baseObservable.js +142 -0
  84. package/dist/observableInternal/observables/baseObservable.js.map +1 -0
  85. package/dist/observableInternal/observables/constObservable.d.ts +6 -0
  86. package/dist/observableInternal/observables/constObservable.d.ts.map +1 -0
  87. package/dist/observableInternal/observables/constObservable.js +43 -0
  88. package/dist/observableInternal/observables/constObservable.js.map +1 -0
  89. package/dist/observableInternal/observables/derived.d.ts +47 -0
  90. package/dist/observableInternal/observables/derived.d.ts.map +1 -0
  91. package/dist/observableInternal/observables/derived.js +102 -0
  92. package/dist/observableInternal/observables/derived.js.map +1 -0
  93. package/dist/observableInternal/observables/derivedImpl.d.ts +84 -0
  94. package/dist/observableInternal/observables/derivedImpl.d.ts.map +1 -0
  95. package/dist/observableInternal/observables/derivedImpl.js +370 -0
  96. package/dist/observableInternal/observables/derivedImpl.js.map +1 -0
  97. package/dist/observableInternal/observables/lazyObservableValue.d.ts +28 -0
  98. package/dist/observableInternal/observables/lazyObservableValue.d.ts.map +1 -0
  99. package/dist/observableInternal/observables/lazyObservableValue.js +130 -0
  100. package/dist/observableInternal/observables/lazyObservableValue.js.map +1 -0
  101. package/dist/observableInternal/observables/observableFromEvent.d.ts +38 -0
  102. package/dist/observableInternal/observables/observableFromEvent.d.ts.map +1 -0
  103. package/dist/observableInternal/observables/observableFromEvent.js +125 -0
  104. package/dist/observableInternal/observables/observableFromEvent.js.map +1 -0
  105. package/dist/observableInternal/observables/observableSignal.d.ts +12 -0
  106. package/dist/observableInternal/observables/observableSignal.d.ts.map +1 -0
  107. package/dist/observableInternal/observables/observableSignal.js +52 -0
  108. package/dist/observableInternal/observables/observableSignal.js.map +1 -0
  109. package/dist/observableInternal/observables/observableSignalFromEvent.d.ts +6 -0
  110. package/dist/observableInternal/observables/observableSignalFromEvent.d.ts.map +1 -0
  111. package/dist/observableInternal/observables/observableSignalFromEvent.js +46 -0
  112. package/dist/observableInternal/observables/observableSignalFromEvent.js.map +1 -0
  113. package/dist/observableInternal/observables/observableValue.d.ts +38 -0
  114. package/dist/observableInternal/observables/observableValue.d.ts.map +1 -0
  115. package/dist/observableInternal/observables/observableValue.js +108 -0
  116. package/dist/observableInternal/observables/observableValue.js.map +1 -0
  117. package/dist/observableInternal/observables/observableValueOpts.d.ts +9 -0
  118. package/dist/observableInternal/observables/observableValueOpts.d.ts.map +1 -0
  119. package/dist/observableInternal/observables/observableValueOpts.js +23 -0
  120. package/dist/observableInternal/observables/observableValueOpts.js.map +1 -0
  121. package/dist/observableInternal/reactions/createEffect.d.ts +65 -0
  122. package/dist/observableInternal/reactions/createEffect.d.ts.map +1 -0
  123. package/dist/observableInternal/reactions/createEffect.js +148 -0
  124. package/dist/observableInternal/reactions/createEffect.js.map +1 -0
  125. package/dist/observableInternal/reactions/createEffectImpl.d.ts +54 -0
  126. package/dist/observableInternal/reactions/createEffectImpl.d.ts.map +1 -0
  127. package/dist/observableInternal/reactions/createEffectImpl.js +225 -0
  128. package/dist/observableInternal/reactions/createEffectImpl.js.map +1 -0
  129. package/dist/observableInternal/set.d.ts +18 -0
  130. package/dist/observableInternal/set.d.ts.map +1 -0
  131. package/dist/observableInternal/set.js +69 -0
  132. package/dist/observableInternal/set.js.map +1 -0
  133. package/dist/observableInternal/transaction.d.ts +28 -0
  134. package/dist/observableInternal/transaction.d.ts.map +1 -0
  135. package/dist/observableInternal/transaction.js +114 -0
  136. package/dist/observableInternal/transaction.js.map +1 -0
  137. package/dist/observableInternal/utils/promise.d.ts +76 -0
  138. package/dist/observableInternal/utils/promise.d.ts.map +1 -0
  139. package/dist/observableInternal/utils/promise.js +112 -0
  140. package/dist/observableInternal/utils/promise.js.map +1 -0
  141. package/dist/observableInternal/utils/runOnChange.d.ts +8 -0
  142. package/dist/observableInternal/utils/runOnChange.d.ts.map +1 -0
  143. package/dist/observableInternal/utils/runOnChange.js +64 -0
  144. package/dist/observableInternal/utils/runOnChange.js.map +1 -0
  145. package/dist/observableInternal/utils/utils.d.ts +44 -0
  146. package/dist/observableInternal/utils/utils.d.ts.map +1 -0
  147. package/dist/observableInternal/utils/utils.js +249 -0
  148. package/dist/observableInternal/utils/utils.js.map +1 -0
  149. package/dist/observableInternal/utils/utilsCancellation.d.ts +11 -0
  150. package/dist/observableInternal/utils/utilsCancellation.d.ts.map +1 -0
  151. package/dist/observableInternal/utils/utilsCancellation.js +91 -0
  152. package/dist/observableInternal/utils/utilsCancellation.js.map +1 -0
  153. package/dist/observableInternal/utils/valueWithChangeEvent.d.ts +11 -0
  154. package/dist/observableInternal/utils/valueWithChangeEvent.d.ts.map +1 -0
  155. package/dist/observableInternal/utils/valueWithChangeEvent.js +48 -0
  156. package/dist/observableInternal/utils/valueWithChangeEvent.js.map +1 -0
  157. package/dist/utils.d.ts +16 -0
  158. package/dist/utils.d.ts.map +1 -0
  159. package/package.json +50 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deps.js","sources":["../../../src/observableInternal/commonFacade/deps.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAAA;;;AAGgG;AAc1F,SAAU,YAAY,CAAC,EAAc,EAAA;IAC1C,OAAO;AACN,QAAA,OAAO,EAAE,EAAE;KACX,CAAC;AACH,CAAC;AAEK,MAAO,kBAAmB,SAAQ,KAAK,CAAA;AAC5C,IAAA,WAAA,CAAY,OAAgB,EAAA;AAC3B,QAAA,KAAK,CAAC,OAAO,IAAI,6BAA6B,CAAC,CAAC;QAChD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;;;;;KAM1D;AACD,CAAA;AAEK,SAAU,oBAAoB,CAAC,KAAU,EAAA;;AAE9C,IAAA,MAAM,KAAK,CAAC;AACb,CAAC;AAEK,SAAU,iBAAiB,CAAC,KAAU,EAAA;AAC3C,IAAA,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;AAC3C,CAAC;AAID;;AAEE;AACK,MAAM,YAAY,GAA0B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK;;;;"}
@@ -0,0 +1,22 @@
1
+ export type DebugLocation = DebugLocationImpl | undefined;
2
+ export declare namespace DebugLocation {
3
+ function enable(): void;
4
+ function ofCaller(): DebugLocation;
5
+ function ofNthCaller(n: number): DebugLocation;
6
+ }
7
+ declare class DebugLocationImpl implements ILocation {
8
+ readonly fileName: string;
9
+ readonly line: number;
10
+ readonly column: number;
11
+ readonly id: string;
12
+ static fromStack(stack: string, parentIdx: number): DebugLocationImpl | undefined;
13
+ constructor(fileName: string, line: number, column: number, id: string);
14
+ }
15
+ export interface ILocation {
16
+ fileName: string;
17
+ line: number;
18
+ column: number;
19
+ id: string;
20
+ }
21
+ export {};
22
+ //# sourceMappingURL=debugLocation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debugLocation.d.ts","sourceRoot":"","sources":["../../src/observableInternal/debugLocation.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,SAAS,CAAC;AAE1D,yBAAiB,aAAa,CAAC;IAG9B,SAAgB,MAAM,IAAI,IAAI,CAE7B;IAED,SAAgB,QAAQ,IAAI,aAAa,CAExC;IAED,SAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,CAYpD;CACD;AAED,cAAM,iBAAkB,YAAW,SAAS;aAiB1B,QAAQ,EAAE,MAAM;aAChB,IAAI,EAAE,MAAM;aACZ,MAAM,EAAE,MAAM;aACd,EAAE,EAAE,MAAM;WAnBb,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;gBAgBvE,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM;CAG3B;AAGD,MAAM,WAAW,SAAS;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;CACX"}
@@ -0,0 +1,77 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /*---------------------------------------------------------------------------------------------
6
+ * Copyright (c) Microsoft Corporation. All rights reserved.
7
+ * Licensed under the MIT License. See License.txt in the project root for license information.
8
+ *--------------------------------------------------------------------------------------------*/
9
+ var DebugLocation;
10
+ (function (DebugLocation) {
11
+ let enabled = false;
12
+ function enable() {
13
+ enabled = true;
14
+ }
15
+ DebugLocation.enable = enable;
16
+ function ofCaller() {
17
+ return ofNthCaller(1);
18
+ }
19
+ DebugLocation.ofCaller = ofCaller;
20
+ function ofNthCaller(n) {
21
+ if (!enabled) {
22
+ return undefined;
23
+ }
24
+ const Err = Error; // For the monaco editor checks, which don't have the nodejs types.
25
+ const l = Err.stackTraceLimit;
26
+ Err.stackTraceLimit = 3;
27
+ const stack = new Error().stack;
28
+ Err.stackTraceLimit = l;
29
+ return DebugLocationImpl.fromStack(stack, n + 1);
30
+ }
31
+ DebugLocation.ofNthCaller = ofNthCaller;
32
+ })(DebugLocation || (DebugLocation = {}));
33
+ class DebugLocationImpl {
34
+ static fromStack(stack, parentIdx) {
35
+ const lines = stack.split('\n');
36
+ const location = parseLine(lines[parentIdx + 1]);
37
+ if (location) {
38
+ return new DebugLocationImpl(location.fileName, location.line, location.column, location.id);
39
+ }
40
+ else {
41
+ return undefined;
42
+ }
43
+ }
44
+ constructor(fileName, line, column, id) {
45
+ this.fileName = fileName;
46
+ this.line = line;
47
+ this.column = column;
48
+ this.id = id;
49
+ }
50
+ }
51
+ function parseLine(stackLine) {
52
+ if (!stackLine) {
53
+ return undefined;
54
+ }
55
+ const match = stackLine.match(/\((.*):(\d+):(\d+)\)/);
56
+ if (match) {
57
+ return {
58
+ fileName: match[1],
59
+ line: parseInt(match[2]),
60
+ column: parseInt(match[3]),
61
+ id: stackLine,
62
+ };
63
+ }
64
+ const match2 = stackLine.match(/at ([^\(\)]*):(\d+):(\d+)/);
65
+ if (match2) {
66
+ return {
67
+ fileName: match2[1],
68
+ line: parseInt(match2[2]),
69
+ column: parseInt(match2[3]),
70
+ id: stackLine,
71
+ };
72
+ }
73
+ return undefined;
74
+ }
75
+
76
+ export { DebugLocation };
77
+ //# sourceMappingURL=debugLocation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debugLocation.js","sources":["../../src/observableInternal/debugLocation.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ export interface IDebugNameData {
2
+ /**
3
+ * The owner object of an observable.
4
+ * Used for debugging only, such as computing a name for the observable by iterating over the fields of the owner.
5
+ */
6
+ readonly owner?: DebugOwner | undefined;
7
+ /**
8
+ * A string or function that returns a string that represents the name of the observable.
9
+ * Used for debugging only.
10
+ */
11
+ readonly debugName?: DebugNameSource | undefined;
12
+ /**
13
+ * A function that points to the defining function of the object.
14
+ * Used for debugging only.
15
+ */
16
+ readonly debugReferenceFn?: Function | undefined;
17
+ }
18
+ export declare class DebugNameData {
19
+ readonly owner: DebugOwner | undefined;
20
+ readonly debugNameSource: DebugNameSource | undefined;
21
+ readonly referenceFn: Function | undefined;
22
+ constructor(owner: DebugOwner | undefined, debugNameSource: DebugNameSource | undefined, referenceFn: Function | undefined);
23
+ getDebugName(target: object): string | undefined;
24
+ }
25
+ /**
26
+ * The owning object of an observable.
27
+ * Is only used for debugging purposes, such as computing a name for the observable by iterating over the fields of the owner.
28
+ */
29
+ export type DebugOwner = object | undefined;
30
+ export type DebugNameSource = string | (() => string | undefined);
31
+ export declare function getDebugName(target: object, data: DebugNameData): string | undefined;
32
+ export declare function getClassName(obj: object): string | undefined;
33
+ export declare function getFunctionName(fn: Function): string | undefined;
34
+ //# sourceMappingURL=debugName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debugName.d.ts","sourceRoot":"","sources":["../../src/observableInternal/debugName.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC9B;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAExC;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAEjD;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CACjD;AAED,qBAAa,aAAa;aAER,KAAK,EAAE,UAAU,GAAG,SAAS;aAC7B,eAAe,EAAE,eAAe,GAAG,SAAS;aAC5C,WAAW,EAAE,QAAQ,GAAG,SAAS;gBAFjC,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,eAAe,EAAE,eAAe,GAAG,SAAS,EAC5C,WAAW,EAAE,QAAQ,GAAG,SAAS;IAG3C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAGvD;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;AAC5C,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC;AAKlE,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAgBpF;AAkED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAS5D;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAOhE"}
@@ -0,0 +1,114 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /*---------------------------------------------------------------------------------------------
6
+ * Copyright (c) Microsoft Corporation. All rights reserved.
7
+ * Licensed under the MIT License. See License.txt in the project root for license information.
8
+ *--------------------------------------------------------------------------------------------*/
9
+ class DebugNameData {
10
+ constructor(owner, debugNameSource, referenceFn) {
11
+ this.owner = owner;
12
+ this.debugNameSource = debugNameSource;
13
+ this.referenceFn = referenceFn;
14
+ }
15
+ getDebugName(target) {
16
+ return getDebugName(target, this);
17
+ }
18
+ }
19
+ const countPerName = new Map();
20
+ const cachedDebugName = new WeakMap();
21
+ function getDebugName(target, data) {
22
+ const cached = cachedDebugName.get(target);
23
+ if (cached) {
24
+ return cached;
25
+ }
26
+ const dbgName = computeDebugName(target, data);
27
+ if (dbgName) {
28
+ let count = countPerName.get(dbgName) ?? 0;
29
+ count++;
30
+ countPerName.set(dbgName, count);
31
+ const result = count === 1 ? dbgName : `${dbgName}#${count}`;
32
+ cachedDebugName.set(target, result);
33
+ return result;
34
+ }
35
+ return undefined;
36
+ }
37
+ function computeDebugName(self, data) {
38
+ const cached = cachedDebugName.get(self);
39
+ if (cached) {
40
+ return cached;
41
+ }
42
+ const ownerStr = data.owner ? formatOwner(data.owner) + `.` : '';
43
+ let result;
44
+ const debugNameSource = data.debugNameSource;
45
+ if (debugNameSource !== undefined) {
46
+ if (typeof debugNameSource === 'function') {
47
+ result = debugNameSource();
48
+ if (result !== undefined) {
49
+ return ownerStr + result;
50
+ }
51
+ }
52
+ else {
53
+ return ownerStr + debugNameSource;
54
+ }
55
+ }
56
+ const referenceFn = data.referenceFn;
57
+ if (referenceFn !== undefined) {
58
+ result = getFunctionName(referenceFn);
59
+ if (result !== undefined) {
60
+ return ownerStr + result;
61
+ }
62
+ }
63
+ if (data.owner !== undefined) {
64
+ const key = findKey(data.owner, self);
65
+ if (key !== undefined) {
66
+ return ownerStr + key;
67
+ }
68
+ }
69
+ return undefined;
70
+ }
71
+ function findKey(obj, value) {
72
+ for (const key in obj) {
73
+ if (obj[key] === value) {
74
+ return key;
75
+ }
76
+ }
77
+ return undefined;
78
+ }
79
+ const countPerClassName = new Map();
80
+ const ownerId = new WeakMap();
81
+ function formatOwner(owner) {
82
+ const id = ownerId.get(owner);
83
+ if (id) {
84
+ return id;
85
+ }
86
+ const className = getClassName(owner) ?? 'Object';
87
+ let count = countPerClassName.get(className) ?? 0;
88
+ count++;
89
+ countPerClassName.set(className, count);
90
+ const result = count === 1 ? className : `${className}#${count}`;
91
+ ownerId.set(owner, result);
92
+ return result;
93
+ }
94
+ function getClassName(obj) {
95
+ const ctor = obj.constructor;
96
+ if (ctor) {
97
+ if (ctor.name === 'Object') {
98
+ return undefined;
99
+ }
100
+ return ctor.name;
101
+ }
102
+ return undefined;
103
+ }
104
+ function getFunctionName(fn) {
105
+ const fnSrc = fn.toString();
106
+ // Pattern: /** @description ... */
107
+ const regexp = /\/\*\*\s*@description\s*([^*]*)\*\//;
108
+ const match = regexp.exec(fnSrc);
109
+ const result = match ? match[1] : undefined;
110
+ return result?.trim();
111
+ }
112
+
113
+ export { DebugNameData, getClassName, getDebugName, getFunctionName };
114
+ //# sourceMappingURL=debugName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debugName.js","sources":["../../src/observableInternal/debugName.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAAA;;;AAGgG;MAsBnF,aAAa,CAAA;AACzB,IAAA,WAAA,CACiB,KAA6B,EAC7B,eAA4C,EAC5C,WAAiC,EAAA;QAFjC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAwB;QAC7B,IAAe,CAAA,eAAA,GAAf,eAAe,CAA6B;QAC5C,IAAW,CAAA,WAAA,GAAX,WAAW,CAAsB;KAC7C;AAEE,IAAA,YAAY,CAAC,MAAc,EAAA;AACjC,QAAA,OAAO,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KAClC;AACD,CAAA;AASD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;AAC/C,MAAM,eAAe,GAAG,IAAI,OAAO,EAAkB,CAAC;AAEtC,SAAA,YAAY,CAAC,MAAc,EAAE,IAAmB,EAAA;IAC/D,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,MAAM,EAAE;AACX,QAAA,OAAO,MAAM,CAAC;KACd;IAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/C,IAAI,OAAO,EAAE;QACZ,IAAI,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3C,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACjC,QAAA,MAAM,MAAM,GAAG,KAAK,KAAK,CAAC,GAAG,OAAO,GAAG,CAAA,EAAG,OAAO,CAAI,CAAA,EAAA,KAAK,EAAE,CAAC;AAC7D,QAAA,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACpC,QAAA,OAAO,MAAM,CAAC;KACd;AACD,IAAA,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,IAAmB,EAAA;IAC1D,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,MAAM,EAAE;AACX,QAAA,OAAO,MAAM,CAAC;KACd;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAA,CAAA,CAAG,GAAG,EAAE,CAAC;AAEjE,IAAA,IAAI,MAA0B,CAAC;AAC/B,IAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;AAC7C,IAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AAClC,QAAA,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE;YAC1C,MAAM,GAAG,eAAe,EAAE,CAAC;AAC3B,YAAA,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzB,OAAO,QAAQ,GAAG,MAAM,CAAC;aACzB;SACD;aAAM;YACN,OAAO,QAAQ,GAAG,eAAe,CAAC;SAClC;KACD;AAED,IAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AACrC,IAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAC9B,QAAA,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;AACtC,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;YACzB,OAAO,QAAQ,GAAG,MAAM,CAAC;SACzB;KACD;AAED,IAAA,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;QAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACtC,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;YACtB,OAAO,QAAQ,GAAG,GAAG,CAAC;SACtB;KACD;AACD,IAAA,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,OAAO,CAAC,GAAW,EAAE,KAAa,EAAA;AAC1C,IAAA,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;AACtB,QAAA,IAAK,GAAW,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;AAChC,YAAA,OAAO,GAAG,CAAC;SACX;KACD;AACD,IAAA,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;AACpD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAkB,CAAC;AAE9C,SAAS,WAAW,CAAC,KAAa,EAAA;IACjC,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,EAAE,EAAE;AACP,QAAA,OAAO,EAAE,CAAC;KACV;IACD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC;IAClD,IAAI,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAClD,IAAA,KAAK,EAAE,CAAC;AACR,IAAA,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACxC,IAAA,MAAM,MAAM,GAAG,KAAK,KAAK,CAAC,GAAG,SAAS,GAAG,CAAA,EAAG,SAAS,CAAI,CAAA,EAAA,KAAK,EAAE,CAAC;AACjE,IAAA,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC3B,IAAA,OAAO,MAAM,CAAC;AACf,CAAC;AAEK,SAAU,YAAY,CAAC,GAAW,EAAA;AACvC,IAAA,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC;IAC7B,IAAI,IAAI,EAAE;AACT,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC3B,YAAA,OAAO,SAAS,CAAC;SACjB;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;KACjB;AACD,IAAA,OAAO,SAAS,CAAC;AAClB,CAAC;AAEK,SAAU,eAAe,CAAC,EAAY,EAAA;AAC3C,IAAA,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;;IAE5B,MAAM,MAAM,GAAG,qCAAqC,CAAC;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,IAAA,MAAM,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AAC5C,IAAA,OAAO,MAAM,EAAE,IAAI,EAAE,CAAC;AACvB;;;;"}
@@ -0,0 +1,17 @@
1
+ import { IObservable } from '../base';
2
+ import { DisposableStore } from '../commonFacade/deps';
3
+ /**
4
+ * Wraps an observable so that its source remains observed for a grace period
5
+ * after the wrapping observable loses all its observers.
6
+ *
7
+ * When the wrapping observable has observers, an autorun keeps `obs` observed
8
+ * and forwards changes. When the last observer is removed, `obs` stays observed
9
+ * via `keepObserved` for `maxIdleTimeMs` before being released. If a new observer
10
+ * arrives during the grace period, the keep-alive is cancelled seamlessly.
11
+ *
12
+ * @param store - Controls the hard lifetime; disposing it cancels any pending grace period.
13
+ * @param obs - The source observable to keep alive longer.
14
+ * @param maxIdleTimeMs - Grace period in milliseconds.
15
+ */
16
+ export declare function deferUnobserve<T>(store: DisposableStore, obs: IObservable<T>, maxIdleTimeMs: number): IObservable<T>;
17
+ //# sourceMappingURL=deferUnobserve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deferUnobserve.d.ts","sourceRoot":"","sources":["../../../src/observableInternal/experimental/deferUnobserve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAsB,eAAe,EAAe,MAAM,sBAAsB,CAAC;AAKxF;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAiDpH"}
@@ -0,0 +1,68 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import { BugIndicatingError } from '../commonFacade/deps.js';
6
+ import { derived } from '../observables/derived.js';
7
+ import { observableSignalFromEvent } from '../observables/observableSignalFromEvent.js';
8
+ import { keepObserved } from '../utils/utils.js';
9
+
10
+ /**
11
+ * Wraps an observable so that its source remains observed for a grace period
12
+ * after the wrapping observable loses all its observers.
13
+ *
14
+ * When the wrapping observable has observers, an autorun keeps `obs` observed
15
+ * and forwards changes. When the last observer is removed, `obs` stays observed
16
+ * via `keepObserved` for `maxIdleTimeMs` before being released. If a new observer
17
+ * arrives during the grace period, the keep-alive is cancelled seamlessly.
18
+ *
19
+ * @param store - Controls the hard lifetime; disposing it cancels any pending grace period.
20
+ * @param obs - The source observable to keep alive longer.
21
+ * @param maxIdleTimeMs - Grace period in milliseconds.
22
+ */
23
+ function deferUnobserve(store, obs, maxIdleTimeMs) {
24
+ let keepAliveHandle;
25
+ let timeoutHandle;
26
+ let disposed = false;
27
+ const lifetimeTracker = observableSignalFromEvent('deferUnobserve', _ => {
28
+ if (disposed) {
29
+ throw new BugIndicatingError('deferUnobserve: Cannot add observer after disposal');
30
+ }
31
+ // First observer added to `lifetimeTracker`
32
+ if (timeoutHandle !== undefined) {
33
+ clearTimeout(timeoutHandle);
34
+ timeoutHandle = undefined;
35
+ }
36
+ if (!keepAliveHandle) {
37
+ keepAliveHandle = keepObserved(obs);
38
+ }
39
+ return {
40
+ dispose() {
41
+ // Keep source observed during the grace period
42
+ timeoutHandle = setTimeout(() => {
43
+ timeoutHandle = undefined;
44
+ keepAliveHandle?.dispose();
45
+ keepAliveHandle = undefined;
46
+ }, maxIdleTimeMs);
47
+ },
48
+ };
49
+ });
50
+ store.add({
51
+ dispose() {
52
+ if (timeoutHandle !== undefined) {
53
+ clearTimeout(timeoutHandle);
54
+ timeoutHandle = undefined;
55
+ }
56
+ keepAliveHandle?.dispose();
57
+ keepAliveHandle = undefined;
58
+ disposed = true;
59
+ },
60
+ });
61
+ return derived(reader => {
62
+ lifetimeTracker.read(reader);
63
+ return obs.read(reader);
64
+ });
65
+ }
66
+
67
+ export { deferUnobserve };
68
+ //# sourceMappingURL=deferUnobserve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deferUnobserve.js","sources":["../../../src/observableInternal/experimental/deferUnobserve.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAMA;;;;;;;;;;;;AAYG;SACa,cAAc,CAAI,KAAsB,EAAE,GAAmB,EAAE,aAAqB,EAAA;AACnG,IAAA,IAAI,eAAwC,CAAC;AAC7C,IAAA,IAAI,aAAwD,CAAC;IAC1D,IAAI,QAAQ,GAAG,KAAK,CAAC;IAExB,MAAM,eAAe,GAAG,yBAAyB,CAC1C,gBAAgB,EACtB,CAAC,IAAG;QACM,IAAI,QAAQ,EAAE;AACV,YAAA,MAAM,IAAI,kBAAkB,CAAC,oDAAoD,CAAC,CAAC;SACtF;;AAEV,QAAA,IAAI,aAAa,KAAK,SAAS,EAAE;YAChC,YAAY,CAAC,aAAa,CAAC,CAAC;YAC5B,aAAa,GAAG,SAAS,CAAC;SAC1B;QACQ,IAAI,CAAC,eAAe,EAAE;AAClB,YAAA,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;SACvC;QAEV,OAAO;YACN,OAAO,GAAA;;AAEN,gBAAA,aAAa,GAAG,UAAU,CAAC,MAAK;oBAC/B,aAAa,GAAG,SAAS,CAAC;oBAC1B,eAAe,EAAE,OAAO,EAAE,CAAC;oBAC3B,eAAe,GAAG,SAAS,CAAC;iBAC5B,EAAE,aAAa,CAAC,CAAC;aAClB;SACD,CAAC;AACH,KAAC,CACD,CAAC;IAEF,KAAK,CAAC,GAAG,CAAC;QACT,OAAO,GAAA;AACN,YAAA,IAAI,aAAa,KAAK,SAAS,EAAE;gBAChC,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC5B,aAAa,GAAG,SAAS,CAAC;aAC1B;YACD,eAAe,EAAE,OAAO,EAAE,CAAC;YAC3B,eAAe,GAAG,SAAS,CAAC;YACnB,QAAQ,GAAG,IAAI,CAAC;SACzB;AACD,KAAA,CAAC,CAAC;AAEA,IAAA,OAAO,OAAO,CAAC,MAAM,IAAG;AACpB,QAAA,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,QAAA,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,KAAC,CAAC,CAAC;AACP;;;;"}
@@ -0,0 +1,38 @@
1
+ import { EqualityComparer } from '../commonFacade/deps';
2
+ import { IObservable, IObservableWithChange, ISettableObservable } from '../base';
3
+ import { IChangeTracker } from '../changeTracker';
4
+ import { DebugOwner } from '../debugName';
5
+ import { IDerivedReader } from '../observables/derivedImpl';
6
+ export interface IReducerOptions<T, TChangeSummary = void, TOutChange = void> {
7
+ /**
8
+ * Is called to create the initial value of the observable when it becomes observed.
9
+ */
10
+ initial: T | (() => T);
11
+ /**
12
+ * Is called to dispose the observable value when it is no longer observed.
13
+ */
14
+ disposeFinal?(value: T): void;
15
+ changeTracker?: IChangeTracker<TChangeSummary>;
16
+ equalityComparer?: EqualityComparer<T>;
17
+ /**
18
+ * Applies the changes to the value.
19
+ * Use `reader.reportChange` to report change details or to report a change if the same value is returned.
20
+ */
21
+ update(reader: IDerivedReader<TOutChange>, previousValue: T, changes: TChangeSummary): T;
22
+ }
23
+ /**
24
+ * Creates an observable value that is based on values and changes from other observables.
25
+ * Additionally, a reducer can report how that state changed.
26
+ */
27
+ export declare function observableReducer<T, TInChanges, TOutChange = void>(owner: DebugOwner, options: IReducerOptions<T, TInChanges, TOutChange>): SimplifyObservableWithChange<T, TOutChange>;
28
+ /**
29
+ * Creates an observable value that is based on values and changes from other observables.
30
+ * Additionally, a reducer can report how that state changed.
31
+ */
32
+ export declare function observableReducerSettable<T, TInChanges, TOutChange = void>(owner: DebugOwner, options: IReducerOptions<T, TInChanges, TOutChange>): ISettableObservable<T, TOutChange>;
33
+ /**
34
+ * Returns IObservable<T> if TChange is void, otherwise IObservableWithChange<T, TChange>
35
+ */
36
+ type SimplifyObservableWithChange<T, TChange> = TChange extends void ? IObservable<T> : IObservableWithChange<T, TChange>;
37
+ export {};
38
+ //# sourceMappingURL=reducer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../../../src/observableInternal/experimental/reducer.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAoC,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAElF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAiB,UAAU,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAqB,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG/E,MAAM,WAAW,eAAe,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI,EAAE,UAAU,GAAG,IAAI;IAC3E;;MAEE;IACF,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvB;;MAEE;IACF,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAC9B,aAAa,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;IAC/C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAEvC;;;MAGE;IACF,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,CAAC,CAAC;CACzF;AAED;;;EAGE;AACF,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,GAAG,4BAA4B,CAAC,CAAC,EAAE,UAAU,CAAC,CAEvL;AAED;;;EAGE;AACF,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,GAAG,mBAAmB,CAAC,CAAC,EAAE,UAAU,CAAC,CAoCtL;AAED;;EAEE;AACF,KAAK,4BAA4B,CAAC,CAAC,EAAE,OAAO,IAAI,OAAO,SAAS,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { IObservable, IReader } from '../base';
2
+ import { DebugOwner } from '../debugName';
3
+ /**
4
+ * Creates an observable that has the latest changed value of the given observables.
5
+ * Initially (and when not observed), it has the value of the last observable.
6
+ * When observed and any of the observables change, it has the value of the last changed observable.
7
+ * If multiple observables change in the same transaction, the last observable wins.
8
+ */
9
+ export declare function latestChangedValue<T extends IObservable<any>[]>(owner: DebugOwner, observables: T): IObservable<ReturnType<T[number]['get']>>;
10
+ /**
11
+ * Works like a derived.
12
+ * However, if the value is not undefined, it is cached and will not be recomputed anymore.
13
+ * In that case, the derived will unsubscribe from its dependencies.
14
+ */
15
+ export declare function derivedConstOnceDefined<T>(owner: DebugOwner, fn: (reader: IReader) => T): IObservable<T | undefined>;
16
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/observableInternal/experimental/utils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,EAAE,UAAU,EAA+B,MAAM,cAAc,CAAC;AAKvE;;;;;EAKE;AACF,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAgC7I;AAED;;;;EAIE;AACF,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,CAEpH"}
@@ -0,0 +1,64 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import { BugIndicatingError } from '../commonFacade/deps.js';
6
+ import { getDebugName, DebugNameData } from '../debugName.js';
7
+ import { observableFromEvent } from '../observables/observableFromEvent.js';
8
+ import { createEffectOpts } from '../reactions/createEffect.js';
9
+ import { derivedObservableWithCache } from '../utils/utils.js';
10
+ import { DisposableStore } from '../../disposables.js';
11
+
12
+ /*---------------------------------------------------------------------------------------------
13
+ * Copyright (c) Microsoft Corporation. All rights reserved.
14
+ * Licensed under the MIT License. See License.txt in the project root for license information.
15
+ *--------------------------------------------------------------------------------------------*/
16
+ /**
17
+ * Creates an observable that has the latest changed value of the given observables.
18
+ * Initially (and when not observed), it has the value of the last observable.
19
+ * When observed and any of the observables change, it has the value of the last changed observable.
20
+ * If multiple observables change in the same transaction, the last observable wins.
21
+ */
22
+ function latestChangedValue(owner, observables) {
23
+ if (observables.length === 0) {
24
+ throw new BugIndicatingError();
25
+ }
26
+ let hasLastChangedValue = false;
27
+ let lastChangedValue = undefined;
28
+ const result = observableFromEvent(owner, cb => {
29
+ const store = new DisposableStore();
30
+ for (const o of observables) {
31
+ store.add(createEffectOpts({ debugName: () => getDebugName(result, new DebugNameData(owner, undefined, undefined)) + '.updateLastChangedValue' }, reader => {
32
+ hasLastChangedValue = true;
33
+ lastChangedValue = o.read(reader);
34
+ cb();
35
+ }));
36
+ }
37
+ store.add({
38
+ dispose() {
39
+ hasLastChangedValue = false;
40
+ lastChangedValue = undefined;
41
+ },
42
+ });
43
+ return store;
44
+ }, () => {
45
+ if (hasLastChangedValue) {
46
+ return lastChangedValue;
47
+ }
48
+ else {
49
+ return observables[observables.length - 1].get();
50
+ }
51
+ });
52
+ return result;
53
+ }
54
+ /**
55
+ * Works like a derived.
56
+ * However, if the value is not undefined, it is cached and will not be recomputed anymore.
57
+ * In that case, the derived will unsubscribe from its dependencies.
58
+ */
59
+ function derivedConstOnceDefined(owner, fn) {
60
+ return derivedObservableWithCache(owner, (reader, lastValue) => lastValue ?? fn(reader));
61
+ }
62
+
63
+ export { derivedConstOnceDefined, latestChangedValue };
64
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../src/observableInternal/experimental/utils.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;AAAA;;;AAGgG;AAShG;;;;;AAKE;AACc,SAAA,kBAAkB,CAA+B,KAAiB,EAAE,WAAc,EAAA;AACjG,IAAA,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,MAAM,IAAI,kBAAkB,EAAE,CAAC;KAC/B;IAED,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAChC,IAAI,gBAAgB,GAAY,SAAS,CAAC;IAE1C,MAAM,MAAM,GAAG,mBAAmB,CAAY,KAAK,EAAE,EAAE,IAAG;AACzD,QAAA,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;AACpC,QAAA,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE;AAC5B,YAAA,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC,MAAM,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,yBAAyB,EAAE,EAAE,MAAM,IAAG;gBAC1J,mBAAmB,GAAG,IAAI,CAAC;AAC3B,gBAAA,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClC,gBAAA,EAAE,EAAE,CAAC;aACL,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,CAAC,GAAG,CAAC;YACT,OAAO,GAAA;gBACN,mBAAmB,GAAG,KAAK,CAAC;gBAC5B,gBAAgB,GAAG,SAAS,CAAC;aAC7B;AACD,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,KAAK,CAAC;KACb,EAAE,MAAK;QACP,IAAI,mBAAmB,EAAE;AACxB,YAAA,OAAO,gBAAgB,CAAC;SACxB;aAAM;YACN,OAAO,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;SACjD;AACF,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;;AAIE;AACc,SAAA,uBAAuB,CAAI,KAAiB,EAAE,EAA0B,EAAA;AACvF,IAAA,OAAO,0BAA0B,CAAgB,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,SAAS,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACzG;;;;"}
@@ -0,0 +1,26 @@
1
+ export { observableValueOpts } from './observables/observableValueOpts';
2
+ export { createEffect, createEffectOpts, autorun, autorunDelta, autorunHandleChanges, autorunOpts, autorunWithStore, autorunWithStoreHandleChanges, autorunIterableDelta, autorunSelfDisposable } from './reactions/createEffect';
3
+ export { type IObservable, type IObservableWithChange, type IObserver, type IReader, type ISettable, type ISettableObservable, type ITransaction } from './base';
4
+ export { disposableObservableValue } from './observables/observableValue';
5
+ export { derived, derivedDisposable, derivedHandleChanges, derivedOpts, derivedWithSetter, derivedWithStore } from './observables/derived';
6
+ export { type IDerivedReader } from './observables/derivedImpl';
7
+ export { ObservableLazy, ObservableLazyPromise, ObservablePromise, PromiseResult, } from './utils/promise';
8
+ export { derivedWithCancellationToken, waitForState } from './utils/utilsCancellation';
9
+ export { debouncedObservableDeprecated, debouncedObservable, derivedObservableWithCache, derivedObservableWithWritableCache, keepObserved, mapObservableArrayCached, observableFromPromise, recomputeInitiallyAndOnChange, signalFromObservable, wasEventTriggeredRecently, } from './utils/utils';
10
+ export { type DebugOwner } from './debugName';
11
+ export { type IChangeContext, type IChangeTracker, recordChanges, recordChangesLazy } from './changeTracker';
12
+ export { constObservable } from './observables/constObservable';
13
+ export { type IObservableSignal, observableSignal } from './observables/observableSignal';
14
+ export { observableFromEventOpts } from './observables/observableFromEvent';
15
+ export { observableSignalFromEvent } from './observables/observableSignalFromEvent';
16
+ export { asyncTransaction, globalTransaction, subtransaction, transaction, TransactionImpl } from './transaction';
17
+ export { observableFromValueWithChangeEvent, ValueWithChangeEventFromObservable } from './utils/valueWithChangeEvent';
18
+ export { runOnChange, runOnChangeWithCancellationToken, runOnChangeWithStore, type RemoveUndefined } from './utils/runOnChange';
19
+ export { derivedConstOnceDefined, latestChangedValue } from './experimental/utils';
20
+ export { deferUnobserve } from './experimental/deferUnobserve';
21
+ export { observableFromEvent } from './observables/observableFromEvent';
22
+ export { observableValue } from './observables/observableValue';
23
+ export { ObservableSet } from './set';
24
+ export { ObservableMap } from './map';
25
+ export { DebugLocation } from './debugLocation';
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/observableInternal/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAClO,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,qBAAqB,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,QAAQ,CAAC;AACjK,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC3I,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,aAAa,GAAG,MAAM,iBAAiB,CAAC;AAC3G,OAAO,EAAE,4BAA4B,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EACN,6BAA6B,EAAE,mBAAmB,EAAE,0BAA0B,EAC9E,kCAAkC,EAAE,YAAY,EAAE,wBAAwB,EAAE,qBAAqB,EACjG,6BAA6B,EAC7B,oBAAoB,EAAE,yBAAyB,GAC/C,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC7G,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,KAAK,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAClH,OAAO,EAAE,kCAAkC,EAAE,kCAAkC,EAAE,MAAM,8BAA8B,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,gCAAgC,EAAE,oBAAoB,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAChI,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAG,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,21 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import { setLogObservableFn } from './logging/logging.js';
6
+ import { _setDebugGetDependencyGraph } from './observables/baseObservable.js';
7
+ export { DebugLocation } from './debugLocation.js';
8
+ export { derived, derivedDisposable, derivedHandleChanges, derivedOpts, derivedWithSetter, derivedWithStore } from './observables/derived.js';
9
+ export { debouncedObservable, debouncedObservableDeprecated, derivedObservableWithCache, derivedObservableWithWritableCache, keepObserved, mapObservableArrayCached, observableFromPromise, recomputeInitiallyAndOnChange, signalFromObservable, wasEventTriggeredRecently } from './utils/utils.js';
10
+ export { observableFromEvent, observableFromEventOpts } from './observables/observableFromEvent.js';
11
+ import { logObservableToConsole } from './logging/consoleObservableLogger.js';
12
+ import { debugGetDependencyGraph } from './logging/debugGetDependencyGraph.js';
13
+
14
+ /*---------------------------------------------------------------------------------------------
15
+ * Copyright (c) Microsoft Corporation. All rights reserved.
16
+ * Licensed under the MIT License. See License.txt in the project root for license information.
17
+ *--------------------------------------------------------------------------------------------*/
18
+ // This is a facade for the observable implementation. Only import from here!
19
+ _setDebugGetDependencyGraph(debugGetDependencyGraph);
20
+ setLogObservableFn(logObservableToConsole);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/observableInternal/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;AAAA;;;AAGgG;AAEhG;AAwCA,2BAA2B,CAAC,uBAAuB,CAAC,CAAC;AACrD,kBAAkB,CAAC,sBAAsB,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { IObservable } from '../base';
2
+ import { TransactionImpl } from '../transaction';
3
+ import { IObservableLogger, IChangeInformation } from './logging';
4
+ import { FromEventObservable } from '../observables/observableFromEvent';
5
+ import { Derived } from '../observables/derivedImpl';
6
+ import { AutorunObserver } from '../reactions/createEffectImpl';
7
+ export declare function logObservableToConsole(obs: IObservable<any>): void;
8
+ export declare class ConsoleObservableLogger implements IObservableLogger {
9
+ private indentation;
10
+ private _filteredObjects;
11
+ addFilteredObj(obj: unknown): void;
12
+ private _isIncluded;
13
+ private textToConsoleArgs;
14
+ private formatInfo;
15
+ handleObservableCreated(observable: IObservable<any>): void;
16
+ handleOnListenerCountChanged(observable: IObservable<any>, newCount: number): void;
17
+ handleObservableUpdated(observable: IObservable<unknown>, info: IChangeInformation): void;
18
+ private readonly changedObservablesSets;
19
+ formatChanges(changes: Set<IObservable<any>>): ConsoleText | undefined;
20
+ handleDerivedDependencyChanged(derived: Derived<any>, observable: IObservable<any>, change: unknown): void;
21
+ _handleDerivedRecomputed(derived: Derived<unknown>, info: IChangeInformation): void;
22
+ handleDerivedCleared(derived: Derived<unknown>): void;
23
+ handleFromEventObservableTriggered(observable: FromEventObservable<any, any>, info: IChangeInformation): void;
24
+ handleAutorunCreated(autorun: AutorunObserver): void;
25
+ handleAutorunDisposed(autorun: AutorunObserver): void;
26
+ handleAutorunDependencyChanged(autorun: AutorunObserver, observable: IObservable<any>, change: unknown): void;
27
+ handleAutorunStarted(autorun: AutorunObserver): void;
28
+ handleAutorunFinished(autorun: AutorunObserver): void;
29
+ handleBeginTransaction(transaction: TransactionImpl): void;
30
+ handleEndTransaction(): void;
31
+ }
32
+ type ConsoleText = (ConsoleText | undefined)[] | {
33
+ text: string;
34
+ style: string;
35
+ data?: unknown[];
36
+ } | {
37
+ data: unknown[];
38
+ };
39
+ export declare function formatValue(value: unknown, availableLen: number): string;
40
+ export {};
41
+ //# sourceMappingURL=consoleObservableLogger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consoleObservableLogger.d.ts","sourceRoot":"","sources":["../../../src/observableInternal/logging/consoleObservableLogger.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAa,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAIhE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAMlE;AAED,qBAAa,uBAAwB,YAAW,iBAAiB;IAChE,OAAO,CAAC,WAAW,CAAK;IAExB,OAAO,CAAC,gBAAgB,CAA2B;IAE5C,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAOzC,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,UAAU;IAyBlB,uBAAuB,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI;IA6B3D,4BAA4B,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAGlF,uBAAuB,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAczF,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAgD;IAEvF,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,GAAG,SAAS;IAYtE,8BAA8B,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAM1G,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAenF,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI;IASrD,kCAAkC,CAAC,UAAU,EAAE,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAW7G,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAMpD,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAGrD,8BAA8B,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAM7G,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAgBpD,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAIrD,sBAAsB,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI;IAe1D,oBAAoB,IAAI,IAAI;CAG5B;AACD,KAAK,WAAW,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,EAAE,GAC9C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC;AAmEpB,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAOxE"}