MCPcopy Index your code
hub / github.com/plotly/dash / handleServerside

Function handleServerside

dash/dash-renderer/src/actions/callbacks.ts:463–691  ·  view source on GitHub ↗
(
    dispatch: any,
    hooks: any,
    config: any,
    payload: ICallbackPayload,
    background: BackgroundCallbackInfo | undefined,
    additionalArgs: [string, string, boolean?][] | undefined,
    getState: any,
    running: any
)

Source from the content-addressed store, hash-verified

461}
462
463function handleServerside(
464 dispatch: any,
465 hooks: any,
466 config: any,
467 payload: ICallbackPayload,
468 background: BackgroundCallbackInfo | undefined,
469 additionalArgs: [string, string, boolean?][] | undefined,
470 getState: any,
471 running: any
472): Promise<CallbackResponse> {
473 if (hooks.request_pre) {
474 hooks.request_pre(payload);
475 }
476
477 const requestTime = Date.now();
478 const body = JSON.stringify(payload);
479 let cacheKey: string;
480 let job: string;
481 let runningOff: any;
482 let progressDefault: any;
483 let moreArgs = additionalArgs;
484
485 if (running) {
486 dispatch(sideUpdate(running.running, payload));
487 runningOff = running.runningOff;
488 }
489
490 const fetchCallback = () => {
491 const headers = getCSRFHeader(config) as any;
492 let url = `${urlBase(config)}_dash-update-component`;
493 let newBody = body;
494
495 const addArg = (name: string, value: string) => {
496 let delim = '?';
497 if (url.includes('?')) {
498 delim = '&';
499 }
500 url = `${url}${delim}${name}=${value}`;
501 };
502 if (cacheKey || job) {
503 if (cacheKey) addArg('cacheKey', cacheKey);
504 if (job) addArg('job', job);
505
506 // clear inputs as background callback doesnt need inputs, just verify for context
507 const tmpBody = JSON.parse(newBody);
508 for (let i = 0; i < tmpBody.inputs.length; i++) {
509 tmpBody.inputs[i]['value'] = null;
510 }
511 for (let i = 0; i < (tmpBody?.state || []).length; i++) {
512 tmpBody.state[i]['value'] = null;
513 }
514 newBody = JSON.stringify(tmpBody);
515 }
516
517 if (moreArgs) {
518 moreArgs.forEach(([key, value]) => addArg(key, value));
519 moreArgs = moreArgs.filter(([_, __, single]) => !single);
520 }

Callers 1

__executeFunction · 0.85

Calls 2

sideUpdateFunction · 0.85
handleFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…