Skip to content
This repository was archived by the owner on Aug 21, 2025. It is now read-only.

Commit a96b9bb

Browse files
committed
0.4.1 - Scoped browser window and localStorage for SSR envs
1 parent 1c80424 commit a96b9bb

File tree

7 files changed

+43
-22
lines changed

7 files changed

+43
-22
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@funixproductions/angular-core",
3-
"version": "0.4.0",
3+
"version": "0.4.1",
44
"description": "Package used in all FunixProductions Angular projects",
55
"scripts": {
66
"ng": "ng",

projects/funixproductions-requests/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@funixproductions/funixproductions-requests",
3-
"version": "0.4.0",
3+
"version": "0.4.1",
44
"description": "Package used in all FunixProductions Angular projects",
55
"peerDependencies": {
66
"@angular/common": "^19.1.7",

projects/funixproductions-requests/src/lib/services/core/components/requests/funixprod-http-client.ts

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@ import {ErrorDto} from "../../dtos/error-dto";
44
export abstract class FunixprodHttpClient {
55

66
protected getBearer(): string | null {
7-
return localStorage.getItem(FunixprodHttpClient.accessTokenLocalStorageName);
7+
if (typeof localStorage !== 'undefined') {
8+
return localStorage.getItem(FunixprodHttpClient.accessTokenLocalStorageName);
9+
} else {
10+
return null;
11+
}
812
}
913

1014
public static readonly accessTokenLocalStorageName: string = 'user-token-requests'
@@ -21,20 +25,22 @@ export abstract class FunixprodHttpClient {
2125
headersToSend = headersToSend.set(FunixprodHttpClient.captchaHeaderCode, captchaCode);
2226
}
2327

24-
const bearerToken: string | null = localStorage.getItem(FunixprodHttpClient.accessTokenLocalStorageName);
25-
if (bearerToken !== null) {
26-
headersToSend = headersToSend.append(FunixprodHttpClient.headerAuth, FunixprodHttpClient.bearerPrefix + ' ' + bearerToken);
28+
if (typeof localStorage !== 'undefined') {
29+
const bearerToken: string | null = localStorage.getItem(FunixprodHttpClient.accessTokenLocalStorageName);
30+
if (bearerToken !== null) {
31+
headersToSend = headersToSend.append(FunixprodHttpClient.headerAuth, FunixprodHttpClient.bearerPrefix + ' ' + bearerToken);
32+
}
2733
}
2834

2935
return headersToSend;
3036
}
3137

3238
public buildErrorDto(error: HttpErrorResponse): ErrorDto {
3339
let customError: ErrorDto = new ErrorDto(
34-
'Une erreur est survenue : ',
35-
error.status,
36-
Date.now(),
37-
[]
40+
'Une erreur est survenue : ',
41+
error.status,
42+
Date.now(),
43+
[]
3844
);
3945

4046
if (error.error instanceof ErrorEvent) {

projects/funixproductions-requests/src/lib/services/core/components/requests/storage-http-client.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,12 @@ export class StorageHttpClient<DTO extends ApiDTO> extends CrudHttpClient<DTO> {
5151

5252
private getHeadersAuth(): HttpHeaders {
5353
let headers = new HttpHeaders();
54-
const bearerToken: string | null = localStorage.getItem(FunixprodHttpClient.accessTokenLocalStorageName);
55-
if (bearerToken !== null) {
56-
headers = headers.append(FunixprodHttpClient.headerAuth, FunixprodHttpClient.bearerPrefix + ' ' + bearerToken);
54+
55+
if (typeof localStorage !== 'undefined') {
56+
const bearerToken: string | null = localStorage.getItem(FunixprodHttpClient.accessTokenLocalStorageName);
57+
if (bearerToken !== null) {
58+
headers = headers.append(FunixprodHttpClient.headerAuth, FunixprodHttpClient.bearerPrefix + ' ' + bearerToken);
59+
}
5760
}
5861

5962
return headers;

projects/funixproductions-requests/src/lib/services/funixproductions-api/billing/services/funixprod-billing-service.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ export class FunixprodBillingService extends CrudHttpClient<FunixprodBillingDto>
1616
}
1717

1818
downloadInvoice(invoiceId: string) {
19+
if (typeof window === 'undefined' || typeof document === 'undefined') return
20+
1921
this.http.get<Blob>(this.domain + this.path + '/' + invoiceId + '/invoice', {
2022
headers: this.getHeadersAuth(),
2123
responseType: 'blob' as 'json'
@@ -34,9 +36,11 @@ export class FunixprodBillingService extends CrudHttpClient<FunixprodBillingDto>
3436
private getHeadersAuth(): HttpHeaders {
3537
let headers = new HttpHeaders();
3638

37-
const bearerToken: string | null = localStorage.getItem(FunixprodHttpClient.accessTokenLocalStorageName);
38-
if (bearerToken !== null) {
39-
headers = headers.append(FunixprodHttpClient.headerAuth, FunixprodHttpClient.bearerPrefix + ' ' + bearerToken);
39+
if (typeof localStorage !== 'undefined') {
40+
const bearerToken: string | null = localStorage.getItem(FunixprodHttpClient.accessTokenLocalStorageName);
41+
if (bearerToken !== null) {
42+
headers = headers.append(FunixprodHttpClient.headerAuth, FunixprodHttpClient.bearerPrefix + ' ' + bearerToken);
43+
}
4044
}
4145

4246
return headers;

projects/funixproductions-requests/src/lib/services/funixproductions-api/user/services/user-jwt-checker-service.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ export class UserJwtCheckerService {
2626
}
2727

2828
private getTokenFromLocalStorage(): UserSessionJwt | null {
29+
if (typeof localStorage === 'undefined') {
30+
return null;
31+
}
32+
2933
const token: string | null = localStorage.getItem(FunixprodHttpClient.accessTokenLocalStorageName);
3034

3135
if (token) {

projects/funixproductions-requests/src/lib/services/pacifista-api/web/news/services/PacifistaNewsService.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -135,24 +135,28 @@ export class PacifistaNewsService extends FunixprodHttpClient {
135135
}
136136

137137
static getHeadersForGetRequest(): HttpHeaders {
138-
let bearerToken: string | null = localStorage.getItem(FunixprodHttpClient.accessTokenLocalStorageName);
139138
let headersToSend = new HttpHeaders({
140139
'Content-Type': 'application/json'
141140
});
142141

143-
if (bearerToken !== null) {
144-
headersToSend = headersToSend.set(FunixprodHttpClient.headerAuth, FunixprodHttpClient.bearerPrefix + ' ' + bearerToken);
142+
if (typeof localStorage !== 'undefined') {
143+
let bearerToken: string | null = localStorage.getItem(FunixprodHttpClient.accessTokenLocalStorageName);
144+
if (bearerToken !== null) {
145+
headersToSend = headersToSend.set(FunixprodHttpClient.headerAuth, FunixprodHttpClient.bearerPrefix + ' ' + bearerToken);
146+
}
145147
}
146148

147149
return headersToSend;
148150
}
149151

150152
private getHeadersForMultiPartRequest(): HttpHeaders {
151153
let headersToSend = new HttpHeaders();
152-
const bearerToken: string | null = localStorage.getItem(FunixprodHttpClient.accessTokenLocalStorageName);
153154

154-
if (bearerToken !== null) {
155-
headersToSend = headersToSend.set(FunixprodHttpClient.headerAuth, FunixprodHttpClient.bearerPrefix + ' ' + bearerToken);
155+
if (typeof localStorage !== 'undefined') {
156+
const bearerToken: string | null = localStorage.getItem(FunixprodHttpClient.accessTokenLocalStorageName);
157+
if (bearerToken !== null) {
158+
headersToSend = headersToSend.set(FunixprodHttpClient.headerAuth, FunixprodHttpClient.bearerPrefix + ' ' + bearerToken);
159+
}
156160
}
157161

158162
return headersToSend

0 commit comments

Comments
 (0)