( server: LspServerDefinition, context: TransportContext, connection: LspRuntimeConnection, )
| 1166 | } |
| 1167 | |
| 1168 | function createTransportFromRuntimeConnection( |
| 1169 | server: LspServerDefinition, |
| 1170 | context: TransportContext, |
| 1171 | connection: LspRuntimeConnection, |
| 1172 | ): TransportHandle { |
| 1173 | if (connection.kind === "transport") { |
| 1174 | if (!connection.dispose) return connection.transport; |
| 1175 | return { |
| 1176 | ...connection.transport, |
| 1177 | dispose: async () => { |
| 1178 | await connection.transport.dispose?.(); |
| 1179 | await connection.dispose?.(); |
| 1180 | }, |
| 1181 | }; |
| 1182 | } |
| 1183 | |
| 1184 | const transportServer: LspServerDefinition = { |
| 1185 | ...server, |
| 1186 | transport: { |
| 1187 | ...server.transport, |
| 1188 | kind: "websocket", |
| 1189 | url: connection.url, |
| 1190 | protocols: connection.protocols, |
| 1191 | }, |
| 1192 | }; |
| 1193 | const handle = createTransport(transportServer, context); |
| 1194 | if (!connection.dispose) return handle; |
| 1195 | return { |
| 1196 | ...handle, |
| 1197 | dispose: async () => { |
| 1198 | await handle.dispose?.(); |
| 1199 | await connection.dispose?.(); |
| 1200 | }, |
| 1201 | }; |
| 1202 | } |
| 1203 | |
| 1204 | interface Change { |
| 1205 | from: number; |
no test coverage detected