1
0

fix: add x-panel-version header (#4855)

This commit is contained in:
Calum H.
2025-12-04 14:15:03 +00:00
committed by GitHub
parent c421249767
commit a558064f9d
5 changed files with 25 additions and 1 deletions

View File

@@ -1,5 +1,5 @@
<script setup>
import { AuthFeature, TauriModrinthClient } from '@modrinth/api-client'
import { AuthFeature, PanelVersionFeature, TauriModrinthClient } from '@modrinth/api-client'
import {
ArrowBigUpDashIcon,
ChangeSkinIcon,
@@ -115,6 +115,7 @@ const tauriApiClient = new TauriModrinthClient({
new AuthFeature({
token: async () => (await getCreds()).session,
}),
new PanelVersionFeature(),
],
})
provideModrinthClient(tauriApiClient)

View File

@@ -1,3 +1,4 @@
import { PANEL_VERSION } from '@modrinth/api-client'
import type { V1ErrorInfo } from '@modrinth/utils'
import { ModrinthServerError, ModrinthServersFetchError } from '@modrinth/utils'
import { $fetch, FetchError } from 'ofetch'
@@ -103,6 +104,7 @@ export async function useServersFetch<T>(
const headers: Record<string, string> = {
'User-Agent': 'Modrinth/1.0 (https://modrinth.com)',
'X-Archon-Request': 'true',
'X-Panel-Version': String(PANEL_VERSION),
Vary: 'Accept, Origin',
}

View File

@@ -6,6 +6,7 @@ import {
NuxtCircuitBreakerStorage,
type NuxtClientConfig,
NuxtModrinthClient,
PanelVersionFeature,
VerboseLoggingFeature,
} from '@modrinth/api-client'
import type { Ref } from 'vue'
@@ -31,6 +32,7 @@ export function createModrinthClient(
maxFailures: 3,
resetTimeout: 30000,
}),
new PanelVersionFeature(),
...optionalFeatures,
],
}

View File

@@ -0,0 +1,18 @@
import { AbstractFeature } from '../core/abstract-feature'
import type { RequestContext } from '../types/request'
export const PANEL_VERSION = 1
export class PanelVersionFeature extends AbstractFeature {
async execute<T>(next: () => Promise<T>, context: RequestContext): Promise<T> {
context.options.headers = {
...context.options.headers,
'X-Panel-Version': String(PANEL_VERSION),
}
return next()
}
shouldApply(_: RequestContext): boolean {
return true
}
}

View File

@@ -15,6 +15,7 @@ export {
type CircuitBreakerStorage,
InMemoryCircuitBreakerStorage,
} from './features/circuit-breaker'
export { PANEL_VERSION, PanelVersionFeature } from './features/panel-version'
export { type BackoffStrategy, type RetryConfig, RetryFeature } from './features/retry'
export { type VerboseLoggingConfig, VerboseLoggingFeature } from './features/verbose-logging'
export type { InferredClientModules } from './modules'