MCPcopy Create free account
hub / github.com/ProtonDriveApps/sdk / createHandler

Method createHandler

cli/src/events/manager.ts:111–143  ·  view source on GitHub ↗
(sdkContext: EventsContext)

Source from the content-addressed store, hash-verified

109 }
110
111 private createHandler(sdkContext: EventsContext): DriveListener {
112 return async (event: DriveEvent) => {
113 const { promise, resolve } = Promise.withResolvers<void>();
114 this.processingEvents.add(promise);
115
116 const scopeId = event.treeEventScopeId;
117 try {
118 if (event.type === DriveEventType.TreeRemove) {
119 const sub = this.volumeSubscriptions[sdkContext].get(scopeId);
120 if (sub) {
121 try {
122 sub.dispose();
123 } catch (error: unknown) {
124 this.logger.warn(`Failed to dispose volume event subscription: ${error}`);
125 }
126 this.volumeSubscriptions[sdkContext].delete(scopeId);
127 }
128 await this.provider.removeScope(sdkContext, scopeId);
129 return;
130 }
131
132 const eventId = event.eventId;
133 this.logger.debug(`Updating latest event ID for scope ${sdkContext}:${scopeId} to ${eventId}`);
134 await this.provider.setLatestEventId(sdkContext, scopeId, eventId);
135 } catch (error: unknown) {
136 this.logger.error(`Failed to handle event ${event.type} for scope ${scopeId}`, error);
137 throw error;
138 } finally {
139 this.processingEvents.delete(promise);
140 resolve();
141 }
142 };
143 }
144
145 async clear(): Promise<void> {
146 await this.dispose();

Callers 2

subscribeCoreEventsMethod · 0.95
subscribeVolumeForSdkMethod · 0.95

Calls 8

disposeMethod · 0.65
warnMethod · 0.65
removeScopeMethod · 0.65
debugMethod · 0.65
setLatestEventIdMethod · 0.65
errorMethod · 0.65
getMethod · 0.45
deleteMethod · 0.45

Tested by

no test coverage detected