|
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