From 73381170ef2eb3e97d58ea429f56cc0b1de86b68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?nicole=20miko=C5=82ajczyk?= Date: Sat, 24 Jan 2026 21:17:41 +0100 Subject: [PATCH] pl-api: support custom auth token MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: nicole mikołajczyk --- packages/pl-api/lib/client.ts | 12 ++++++++++++ packages/pl-api/lib/request.ts | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/pl-api/lib/client.ts b/packages/pl-api/lib/client.ts index 19034c763..a57f58f7f 100644 --- a/packages/pl-api/lib/client.ts +++ b/packages/pl-api/lib/client.ts @@ -292,6 +292,8 @@ interface PlApiClientConstructorOpts { onInstanceFetchSuccess?: (instance: Instance) => void; /** Executed when the initial instance fetch failed */ onInstanceFetchError?: (error?: any) => void; + /** Custom authorization token to use for requests */ + customAuthorizationToken?: string; } /** @@ -303,6 +305,7 @@ class PlApiClient { baseURL: string; #accessToken?: string; #iceshrimpAccessToken?: string; + #customAuthorizationToken?: string; #instance: Instance = v.parse(instanceSchema, {}); public request = request.bind(this) as typeof request; public features: Features = getFeatures(this.#instance); @@ -329,6 +332,7 @@ class PlApiClient { fetchInstanceSignal, onInstanceFetchSuccess, onInstanceFetchError, + customAuthorizationToken, }: PlApiClientConstructorOpts = {}) { this.baseURL = baseURL; this.#accessToken = accessToken; @@ -6388,6 +6392,14 @@ class PlApiClient { return this.#iceshrimpAccessToken; } + get customAuthorizationToken(): string | undefined { + return this.#customAuthorizationToken; + } + + set customAuthorizationToken(token: string | undefined) { + this.#customAuthorizationToken = token; + } + get instanceInformation() { return this.#instance; } diff --git a/packages/pl-api/lib/request.ts b/packages/pl-api/lib/request.ts index 3c528dab7..904f7ae61 100644 --- a/packages/pl-api/lib/request.ts +++ b/packages/pl-api/lib/request.ts @@ -82,7 +82,7 @@ interface RequestBody> { type RequestMeta = Pick; -function request(this: Pick, input: URL | RequestInfo, { +function request(this: Pick, input: URL | RequestInfo, { body, method = body ? 'POST' : 'GET', params, @@ -97,6 +97,7 @@ function request(this: Pick