inline timeout lookup in getEffectiveBuildStatus and update call sites

This commit is contained in:
Harsh Mahajan
2025-10-31 16:47:32 +05:30
parent f0cae0b4ba
commit 0ceaed9b49
11 changed files with 23 additions and 42 deletions
+3 -4
View File
@@ -28,8 +28,9 @@ export function isBuildTimedOut(
export function getEffectiveBuildStatus(
originalStatus: string,
createdAt: string,
timeoutSeconds: number
consoleVariables: Models.ConsoleVariables | undefined
): string {
const timeoutSeconds = getBuildTimeoutSeconds(consoleVariables);
if (isBuildTimedOut(createdAt, originalStatus, timeoutSeconds)) {
return 'failed';
}
@@ -39,9 +40,7 @@ export function getEffectiveBuildStatus(
/**
* Helper to get timeout value from console variables
*/
export function getBuildTimeoutSeconds(
consoleVariables: Models.ConsoleVariables | undefined
): number {
function getBuildTimeoutSeconds(consoleVariables: Models.ConsoleVariables | undefined): number {
if (!consoleVariables?._APP_COMPUTE_BUILD_TIMEOUT) {
return 0;
}
@@ -15,7 +15,7 @@
import { DeploymentSource, DeploymentCreatedBy, DeploymentDomains } from '$lib/components/git';
import { func } from '../store';
import { capitalize } from '$lib/helpers/string';
import { getEffectiveBuildStatus, getBuildTimeoutSeconds } from '$lib/helpers/buildTimeout';
import { getEffectiveBuildStatus } from '$lib/helpers/buildTimeout';
import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store';
import { isCloud } from '$lib/system';
import { IconInfo } from '@appwrite.io/pink-icons-svelte';
@@ -39,11 +39,7 @@
} = $props();
let effectiveStatus = $derived(
getEffectiveBuildStatus(
deployment.status,
deployment.$createdAt,
getBuildTimeoutSeconds($regionalConsoleVariables)
)
getEffectiveBuildStatus(deployment.status, deployment.$createdAt, $regionalConsoleVariables)
);
let totalSize = $derived(humanFileSize(deployment?.totalSize ?? 0));
</script>
@@ -24,7 +24,7 @@
} from '@appwrite.io/pink-svelte';
import { capitalize } from '$lib/helpers/string';
import { formatTimeDetailed } from '$lib/helpers/timeConversion';
import { getEffectiveBuildStatus, getBuildTimeoutSeconds } from '$lib/helpers/buildTimeout';
import { getEffectiveBuildStatus } from '$lib/helpers/buildTimeout';
import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store';
import { timer } from '$lib/actions/timer';
import { app } from '$lib/stores/app';
@@ -44,7 +44,7 @@
getEffectiveBuildStatus(
data.deployment.status,
data.deployment.$createdAt,
getBuildTimeoutSeconds($regionalConsoleVariables)
$regionalConsoleVariables
)
);
let showDelete = $state(false);
@@ -36,7 +36,7 @@
import Delete from './(modals)/deleteModal.svelte';
import { capitalize } from '$lib/helpers/string';
import { deploymentStatusConverter } from '$lib/stores/git';
import { getEffectiveBuildStatus, getBuildTimeoutSeconds } from '$lib/helpers/buildTimeout';
import { getEffectiveBuildStatus } from '$lib/helpers/buildTimeout';
import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store';
import DownloadActionMenuItem from './(components)/downloadActionMenuItem.svelte';
import { Menu } from '$lib/components/menu';
@@ -107,7 +107,7 @@
{@const effectiveStatus = getEffectiveBuildStatus(
deployment.status,
deployment.$createdAt,
getBuildTimeoutSeconds($regionalConsoleVariables)
$regionalConsoleVariables
)}
<Table.Row.Link
{root}
@@ -15,7 +15,7 @@
IconXCircle
} from '@appwrite.io/pink-icons-svelte';
import { ActionMenu, Icon, Tooltip } from '@appwrite.io/pink-svelte';
import { getEffectiveBuildStatus, getBuildTimeoutSeconds } from '$lib/helpers/buildTimeout';
import { getEffectiveBuildStatus } from '$lib/helpers/buildTimeout';
import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store';
export let selectedDeployment: Models.Deployment;
@@ -56,7 +56,7 @@
{@const effectiveStatus = getEffectiveBuildStatus(
deployment.status,
deployment.$createdAt,
getBuildTimeoutSeconds($regionalConsoleVariables)
$regionalConsoleVariables
)}
{#if !inCard}
<Tooltip disabled={selectedDeployment?.sourceSize !== 0} placement={'bottom'}>
@@ -18,7 +18,7 @@
<script lang="ts">
import { capitalize } from '$lib/helpers/string';
import { app } from '$lib/stores/app';
import { getEffectiveBuildStatus, getBuildTimeoutSeconds } from '$lib/helpers/buildTimeout';
import { getEffectiveBuildStatus } from '$lib/helpers/buildTimeout';
import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store';
import type { Models } from '@appwrite.io/console';
import { Badge, Card, Layout, Logs, Spinner, Typography } from '@appwrite.io/pink-svelte';
@@ -41,11 +41,7 @@
} = $props();
let effectiveStatus = $derived(
getEffectiveBuildStatus(
deployment.status,
deployment.$createdAt,
getBuildTimeoutSeconds($regionalConsoleVariables)
)
getEffectiveBuildStatus(deployment.status, deployment.$createdAt, $regionalConsoleVariables)
);
function setCopy() {
@@ -1,7 +1,7 @@
<script lang="ts">
import { timer } from '$lib/actions/timer';
import { formatTimeDetailed } from '$lib/helpers/timeConversion';
import { getEffectiveBuildStatus, getBuildTimeoutSeconds } from '$lib/helpers/buildTimeout';
import { getEffectiveBuildStatus } from '$lib/helpers/buildTimeout';
import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store';
import type { Models } from '@appwrite.io/console';
@@ -9,10 +9,8 @@
let { status, deployment }: { status: string; deployment: Models.Deployment } = $props();
// memoize timeout value to avoid recalculating on every render
let timeoutSeconds = $derived(getBuildTimeoutSeconds($regionalConsoleVariables));
let effectiveStatus = $derived(
getEffectiveBuildStatus(status, deployment.$createdAt, timeoutSeconds)
getEffectiveBuildStatus(status, deployment.$createdAt, $regionalConsoleVariables)
);
</script>
@@ -23,7 +23,7 @@
import { isCloud } from '$lib/system';
import { sdk } from '$lib/stores/sdk';
import { capitalize } from '$lib/helpers/string';
import { getEffectiveBuildStatus, getBuildTimeoutSeconds } from '$lib/helpers/buildTimeout';
import { getEffectiveBuildStatus } from '$lib/helpers/buildTimeout';
import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store';
import { regionalProtocol } from '$routes/(console)/project-[region]-[project]/store';
import type { Snippet } from 'svelte';
@@ -43,11 +43,7 @@
} = $props();
let effectiveStatus = $derived(
getEffectiveBuildStatus(
deployment.status,
deployment.$createdAt,
getBuildTimeoutSeconds($regionalConsoleVariables)
)
getEffectiveBuildStatus(deployment.status, deployment.$createdAt, $regionalConsoleVariables)
);
let show = $state(false);
@@ -13,7 +13,7 @@
import ActivateDeploymentModal from '../../../activateDeploymentModal.svelte';
import { Accordion, Tooltip } from '@appwrite.io/pink-svelte';
import { capitalize } from '$lib/helpers/string';
import { getEffectiveBuildStatus, getBuildTimeoutSeconds } from '$lib/helpers/buildTimeout';
import { getEffectiveBuildStatus } from '$lib/helpers/buildTimeout';
import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store';
import LogsTimer from '../../../(components)/logsTimer.svelte';
import { invalidate } from '$app/navigation';
@@ -27,11 +27,7 @@
let deployment = $derived(data.deployment);
let effectiveStatus = $derived(
getEffectiveBuildStatus(
deployment.status,
deployment.$createdAt,
getBuildTimeoutSeconds($regionalConsoleVariables)
)
getEffectiveBuildStatus(deployment.status, deployment.$createdAt, $regionalConsoleVariables)
);
let showRedeploy = $state(false);
@@ -17,7 +17,7 @@
import { capitalize } from '$lib/helpers/string';
import DeploymentActionMenu from '../../(components)/deploymentActionMenu.svelte';
import { deploymentStatusConverter } from '$lib/stores/git';
import { getEffectiveBuildStatus, getBuildTimeoutSeconds } from '$lib/helpers/buildTimeout';
import { getEffectiveBuildStatus } from '$lib/helpers/buildTimeout';
import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store';
import { sdk } from '$lib/stores/sdk';
import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
@@ -87,7 +87,7 @@
{@const effectiveStatus = getEffectiveBuildStatus(
deployment.status,
deployment.$createdAt,
getBuildTimeoutSeconds($regionalConsoleVariables)
$regionalConsoleVariables
)}
<Table.Row.Link
{root}
@@ -11,7 +11,7 @@
import ActivateDeploymentModal from '../activateDeploymentModal.svelte';
import CancelDeploymentModal from './deployments/cancelDeploymentModal.svelte';
import { capitalize } from '$lib/helpers/string';
import { getEffectiveBuildStatus, getBuildTimeoutSeconds } from '$lib/helpers/buildTimeout';
import { getEffectiveBuildStatus } from '$lib/helpers/buildTimeout';
import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store';
import DeleteDeploymentModal from './deployments/deleteDeploymentModal.svelte';
import DeploymentActionMenu from '../(components)/deploymentActionMenu.svelte';
@@ -77,7 +77,7 @@
{@const effectiveStatus = getEffectiveBuildStatus(
status,
deployment.$createdAt,
getBuildTimeoutSeconds($regionalConsoleVariables)
$regionalConsoleVariables
)}
{#if activeDeployment?.$id === deployment?.$id}
<Status status="complete" label="Active" />