Revert last canary flag PR and use a better method (#5535)

* Revert "Implement Labrinth Canary API flag (#5531)"

This reverts commit 3b21944a75.

* Use Labrinth-Canary header instead of cookie for API canary

* prepr

* fix rebase
This commit is contained in:
aecsocket
2026-03-13 16:29:08 +00:00
committed by GitHub
parent d14360aba5
commit c8279481f8
8 changed files with 22 additions and 70 deletions

View File

@@ -1,37 +0,0 @@
import { AbstractFeature, type FeatureConfig } from '../core/abstract-feature'
export const LABRINTH_CANARY_COOKIE = 'labrinth-canary=always'
export interface CanaryCookieConfig extends FeatureConfig {
getCookie?: () => string | undefined | Promise<string | undefined>
}
export class CanaryCookieFeature extends AbstractFeature {
declare protected config: CanaryCookieConfig
constructor(config?: CanaryCookieConfig) {
super(config)
}
shouldApply(context: Parameters<AbstractFeature['shouldApply']>[0]): boolean {
return super.shouldApply(context) && context.options.api === 'labrinth'
}
async execute<T>(next: () => Promise<T>, context: Parameters<AbstractFeature['execute']>[1]) {
const cookie = this.config.getCookie ? await this.config.getCookie() : LABRINTH_CANARY_COOKIE
if (!cookie) {
return next()
}
const headers = { ...(context.options.headers ?? {}) }
const existingCookie = headers.cookie ?? headers.Cookie
if (!existingCookie?.split('; ').includes(cookie)) {
headers.cookie = existingCookie ? `${existingCookie}; ${cookie}` : cookie
delete headers.Cookie
context.options.headers = headers
}
return next()
}
}

View File

@@ -9,11 +9,6 @@ export {
} from './core/abstract-websocket'
export { ModrinthApiError, ModrinthServerError } from './core/errors'
export { type AuthConfig, AuthFeature } from './features/auth'
export {
type CanaryCookieConfig,
CanaryCookieFeature,
LABRINTH_CANARY_COOKIE,
} from './features/canary-cookie'
export {
type CircuitBreakerConfig,
CircuitBreakerFeature,