Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com>
45 lines
1.2 KiB
JavaScript
45 lines
1.2 KiB
JavaScript
/**
|
|
* Shared response shapes for OpenCode config mutations.
|
|
*
|
|
* Settings writes persist to disk immediately but defer the OpenCode restart
|
|
* so the UI can accumulate pending changes and apply them once via
|
|
* POST /api/config/reload ("Apply & Restart OpenCode").
|
|
*/
|
|
|
|
export function buildDeferredRestartResponse(message) {
|
|
return {
|
|
success: true,
|
|
requiresReload: false,
|
|
requiresRestart: true,
|
|
restartDeferred: true,
|
|
message,
|
|
};
|
|
}
|
|
|
|
export function buildExternalManualRestartResponse(message) {
|
|
return {
|
|
success: true,
|
|
requiresReload: false,
|
|
requiresManualRestart: true,
|
|
message,
|
|
};
|
|
}
|
|
|
|
export function buildConfigMutationResponse(refreshResult, { liveMessage, manualRestartMessage, deferredMessage }) {
|
|
if (refreshResult && refreshResult.external) {
|
|
return buildExternalManualRestartResponse(manualRestartMessage);
|
|
}
|
|
|
|
// When callers skip the live refresh (deferred apply flow), report a pending restart.
|
|
if (!refreshResult || refreshResult.deferred === true) {
|
|
return buildDeferredRestartResponse(deferredMessage || liveMessage);
|
|
}
|
|
|
|
return {
|
|
success: true,
|
|
requiresReload: true,
|
|
message: liveMessage,
|
|
reloadDelayMs: refreshResult.reloadDelayMs,
|
|
};
|
|
}
|