(offset: number, code: number, length: number, bytes: Buffer)
| 155 | } |
| 156 | |
| 157 | private handlePacket(offset: number, code: number, length: number, bytes: Buffer): BackendMessage { |
| 158 | const { reader } = this |
| 159 | |
| 160 | // NOTE: This undesirably retains the buffer in `this.reader` if the `parse*Message` calls below throw. However, those should only throw in the case of a protocol error, which normally results in the reader being discarded. |
| 161 | reader.setBuffer(offset, bytes) |
| 162 | |
| 163 | let message: BackendMessage |
| 164 | |
| 165 | switch (code) { |
| 166 | case MessageCodes.BindComplete: |
| 167 | message = bindComplete |
| 168 | break |
| 169 | case MessageCodes.ParseComplete: |
| 170 | message = parseComplete |
| 171 | break |
| 172 | case MessageCodes.CloseComplete: |
| 173 | message = closeComplete |
| 174 | break |
| 175 | case MessageCodes.NoData: |
| 176 | message = noData |
| 177 | break |
| 178 | case MessageCodes.PortalSuspended: |
| 179 | message = portalSuspended |
| 180 | break |
| 181 | case MessageCodes.CopyDone: |
| 182 | message = copyDone |
| 183 | break |
| 184 | case MessageCodes.ReplicationStart: |
| 185 | message = replicationStart |
| 186 | break |
| 187 | case MessageCodes.EmptyQuery: |
| 188 | message = emptyQuery |
| 189 | break |
| 190 | case MessageCodes.DataRow: |
| 191 | message = parseDataRowMessage(reader) |
| 192 | break |
| 193 | case MessageCodes.CommandComplete: |
| 194 | message = parseCommandCompleteMessage(reader) |
| 195 | break |
| 196 | case MessageCodes.ReadyForQuery: |
| 197 | message = parseReadyForQueryMessage(reader) |
| 198 | break |
| 199 | case MessageCodes.NotificationResponse: |
| 200 | message = parseNotificationMessage(reader) |
| 201 | break |
| 202 | case MessageCodes.AuthenticationResponse: |
| 203 | message = parseAuthenticationResponse(reader, length) |
| 204 | break |
| 205 | case MessageCodes.ParameterStatus: |
| 206 | message = parseParameterStatusMessage(reader) |
| 207 | break |
| 208 | case MessageCodes.BackendKeyData: |
| 209 | message = parseBackendKeyData(reader) |
| 210 | break |
| 211 | case MessageCodes.ErrorMessage: |
| 212 | message = parseErrorMessage(reader, 'error') |
| 213 | break |
| 214 | case MessageCodes.NoticeMessage: |
no test coverage detected