@@ -31,71 +31,83 @@ export class StandardMetadataManager implements RunMetadataManager {
31
31
) { }
32
32
33
33
get parent ( ) : RunMetadataUpdater {
34
- return {
34
+ // Store a reference to 'this' to ensure proper context
35
+ const self = this ;
36
+
37
+ // Create the updater object and store it in a local variable
38
+ const parentUpdater : RunMetadataUpdater = {
35
39
set : ( key , value ) => {
36
- this . queuedParentOperations . add ( { type : "set" , key, value } ) ;
37
- return this . parent ;
40
+ self . queuedParentOperations . add ( { type : "set" , key, value } ) ;
41
+ return parentUpdater ;
38
42
} ,
39
43
del : ( key ) => {
40
- this . queuedParentOperations . add ( { type : "delete" , key } ) ;
41
- return this . parent ;
44
+ self . queuedParentOperations . add ( { type : "delete" , key } ) ;
45
+ return parentUpdater ;
42
46
} ,
43
47
append : ( key , value ) => {
44
- this . queuedParentOperations . add ( { type : "append" , key, value } ) ;
45
- return this . parent ;
48
+ self . queuedParentOperations . add ( { type : "append" , key, value } ) ;
49
+ return parentUpdater ;
46
50
} ,
47
51
remove : ( key , value ) => {
48
- this . queuedParentOperations . add ( { type : "remove" , key, value } ) ;
49
- return this . parent ;
52
+ self . queuedParentOperations . add ( { type : "remove" , key, value } ) ;
53
+ return parentUpdater ;
50
54
} ,
51
55
increment : ( key , value ) => {
52
- this . queuedParentOperations . add ( { type : "increment" , key, value } ) ;
53
- return this . parent ;
56
+ self . queuedParentOperations . add ( { type : "increment" , key, value } ) ;
57
+ return parentUpdater ;
54
58
} ,
55
59
decrement : ( key , value ) => {
56
- this . queuedParentOperations . add ( { type : "increment" , key, value : - Math . abs ( value ) } ) ;
57
- return this . parent ;
60
+ self . queuedParentOperations . add ( { type : "increment" , key, value : - Math . abs ( value ) } ) ;
61
+ return parentUpdater ;
58
62
} ,
59
63
update : ( value ) => {
60
- this . queuedParentOperations . add ( { type : "update" , value } ) ;
61
- return this . parent ;
64
+ self . queuedParentOperations . add ( { type : "update" , value } ) ;
65
+ return parentUpdater ;
62
66
} ,
63
- stream : ( key , value , signal ) => this . doStream ( key , value , "parent" , this . parent , signal ) ,
67
+ stream : ( key , value , signal ) => self . doStream ( key , value , "parent" , parentUpdater , signal ) ,
64
68
} ;
69
+
70
+ return parentUpdater ;
65
71
}
66
72
67
73
get root ( ) : RunMetadataUpdater {
68
- return {
74
+ // Store a reference to 'this' to ensure proper context
75
+ const self = this ;
76
+
77
+ // Create the updater object and store it in a local variable
78
+ const rootUpdater : RunMetadataUpdater = {
69
79
set : ( key , value ) => {
70
- this . queuedRootOperations . add ( { type : "set" , key, value } ) ;
71
- return this . root ;
80
+ self . queuedRootOperations . add ( { type : "set" , key, value } ) ;
81
+ return rootUpdater ;
72
82
} ,
73
83
del : ( key ) => {
74
- this . queuedRootOperations . add ( { type : "delete" , key } ) ;
75
- return this . root ;
84
+ self . queuedRootOperations . add ( { type : "delete" , key } ) ;
85
+ return rootUpdater ;
76
86
} ,
77
87
append : ( key , value ) => {
78
- this . queuedRootOperations . add ( { type : "append" , key, value } ) ;
79
- return this . root ;
88
+ self . queuedRootOperations . add ( { type : "append" , key, value } ) ;
89
+ return rootUpdater ;
80
90
} ,
81
91
remove : ( key , value ) => {
82
- this . queuedRootOperations . add ( { type : "remove" , key, value } ) ;
83
- return this . root ;
92
+ self . queuedRootOperations . add ( { type : "remove" , key, value } ) ;
93
+ return rootUpdater ;
84
94
} ,
85
95
increment : ( key , value ) => {
86
- this . queuedRootOperations . add ( { type : "increment" , key, value } ) ;
87
- return this . root ;
96
+ self . queuedRootOperations . add ( { type : "increment" , key, value } ) ;
97
+ return rootUpdater ;
88
98
} ,
89
99
decrement : ( key , value ) => {
90
- this . queuedRootOperations . add ( { type : "increment" , key, value : - Math . abs ( value ) } ) ;
91
- return this . root ;
100
+ self . queuedRootOperations . add ( { type : "increment" , key, value : - Math . abs ( value ) } ) ;
101
+ return rootUpdater ;
92
102
} ,
93
103
update : ( value ) => {
94
- this . queuedRootOperations . add ( { type : "update" , value } ) ;
95
- return this . root ;
104
+ self . queuedRootOperations . add ( { type : "update" , value } ) ;
105
+ return rootUpdater ;
96
106
} ,
97
- stream : ( key , value , signal ) => this . doStream ( key , value , "root" , this . root , signal ) ,
107
+ stream : ( key , value , signal ) => self . doStream ( key , value , "root" , rootUpdater , signal ) ,
98
108
} ;
109
+
110
+ return rootUpdater ;
99
111
}
100
112
101
113
public enterWithMetadata ( metadata : Record < string , DeserializedJson > ) : void {
0 commit comments