|
7 | 7 | clippyRequestSelector, |
8 | 8 | formatRequestSelector, |
9 | 9 | getCrateType, |
10 | | - isAutoBuildSelector, |
11 | 10 | runAsTest, |
12 | 11 | useWebsocketSelector, |
13 | 12 | } from './selectors'; |
@@ -145,7 +144,7 @@ export const WebSocketError = z.object({ |
145 | 144 | export type WebSocketError = z.infer<typeof WebSocketError>; |
146 | 145 |
|
147 | 146 | const ExecuteExtra = z.object({ |
148 | | - isAutoBuild: z.boolean(), |
| 147 | + sequenceNumber: z.number(), |
149 | 148 | }); |
150 | 149 | type ExecuteExtra = z.infer<typeof ExecuteExtra>; |
151 | 150 |
|
@@ -223,22 +222,14 @@ interface ExecuteResponseBody { |
223 | 222 | stderr: string; |
224 | 223 | } |
225 | 224 |
|
226 | | -interface ExecuteSuccess extends ExecuteResponseBody { |
227 | | - isAutoBuild: boolean; |
228 | | -} |
229 | | - |
230 | 225 | const requestExecute = () => |
231 | 226 | createAction(ActionType.ExecuteRequest); |
232 | 227 |
|
233 | | -const receiveExecuteSuccess = ({ stdout, stderr, isAutoBuild }: ExecuteSuccess) => |
234 | | - createAction(ActionType.ExecuteSucceeded, { stdout, stderr, isAutoBuild }); |
| 228 | +const receiveExecuteSuccess = ({ stdout, stderr }: ExecuteResponseBody) => |
| 229 | + createAction(ActionType.ExecuteSucceeded, { stdout, stderr }); |
235 | 230 |
|
236 | | -const receiveExecuteFailure = ({ |
237 | | - error, isAutoBuild, |
238 | | -}: { |
239 | | - error?: string, isAutoBuild: boolean, |
240 | | -}) => |
241 | | - createAction(ActionType.ExecuteFailed, { error, isAutoBuild }); |
| 231 | +const receiveExecuteFailure = ({ error }: { error?: string }) => |
| 232 | + createAction(ActionType.ExecuteFailed, { error }); |
242 | 233 |
|
243 | 234 | function jsonGet(urlObj: string | UrlObject) { |
244 | 235 | const urlStr = url.format(urlObj); |
@@ -315,19 +306,17 @@ const performCommonExecute = (crateType: string, tests: boolean): ThunkAction => |
315 | 306 | const state = getState(); |
316 | 307 | const { code, configuration: { channel, mode, edition } } = state; |
317 | 308 | const backtrace = state.configuration.backtrace === Backtrace.Enabled; |
318 | | - const isAutoBuild = isAutoBuildSelector(state); |
319 | | - |
320 | 309 |
|
321 | 310 | if (useWebsocketSelector(state)) { |
322 | | - return dispatch(wsExecuteRequest(channel, mode, edition, crateType, tests, code, backtrace, { isAutoBuild })); |
| 311 | + return dispatch(wsExecuteRequest(channel, mode, edition, crateType, tests, code, backtrace)); |
323 | 312 | } else { |
324 | 313 | dispatch(requestExecute()); |
325 | 314 |
|
326 | 315 | const body: ExecuteRequestBody = { channel, mode, edition, crateType, tests, code, backtrace }; |
327 | 316 |
|
328 | 317 | return jsonPost<ExecuteResponseBody>(routes.execute, body) |
329 | | - .then(json => dispatch(receiveExecuteSuccess({ ...json, isAutoBuild }))) |
330 | | - .catch(json => dispatch(receiveExecuteFailure({ ...json, isAutoBuild }))); |
| 318 | + .then(json => dispatch(receiveExecuteSuccess(json))) |
| 319 | + .catch(json => dispatch(receiveExecuteFailure(json))); |
331 | 320 | } |
332 | 321 | }; |
333 | 322 |
|
@@ -509,16 +498,31 @@ const PRIMARY_ACTIONS: { [index in PrimaryAction]: () => ThunkAction } = { |
509 | 498 | [PrimaryActionCore.Wasm]: performCompileToNightlyWasmOnly, |
510 | 499 | }; |
511 | 500 |
|
| 501 | +let sequenceNumber = 0; |
| 502 | +const nextSequenceNumber = () => sequenceNumber++; |
| 503 | +const makeExtra = (): ExecuteExtra => ({ |
| 504 | + sequenceNumber: nextSequenceNumber(), |
| 505 | +}); |
| 506 | + |
512 | 507 | const wsExecuteRequest = ( |
513 | 508 | channel: Channel, |
514 | 509 | mode: Mode, |
515 | 510 | edition: Edition, |
516 | 511 | crateType: string, |
517 | 512 | tests: boolean, |
518 | 513 | code: string, |
519 | | - backtrace: boolean, |
520 | | - extra: ExecuteExtra, |
521 | | -) => createAction(ActionType.WSExecuteRequest, { channel, mode, edition, crateType, tests, code, backtrace, extra }); |
| 514 | + backtrace: boolean |
| 515 | +) => |
| 516 | + createAction(ActionType.WSExecuteRequest, { |
| 517 | + channel, |
| 518 | + mode, |
| 519 | + edition, |
| 520 | + crateType, |
| 521 | + tests, |
| 522 | + code, |
| 523 | + backtrace, |
| 524 | + extra: makeExtra(), |
| 525 | + }); |
522 | 526 |
|
523 | 527 | export const performPrimaryAction = (): ThunkAction => (dispatch, getState) => { |
524 | 528 | const state = getState(); |
|
0 commit comments