diff --git a/npm/ng-packs/packages/core/src/lib/services/local-storage.service.ts b/npm/ng-packs/packages/core/src/lib/services/local-storage.service.ts index 15ae8d53a3..e4fadc2fa9 100644 --- a/npm/ng-packs/packages/core/src/lib/services/local-storage.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/local-storage.service.ts @@ -1,28 +1,45 @@ -import { Injectable } from '@angular/core'; +import { Inject, Injectable, PLATFORM_ID } from '@angular/core'; +import { isPlatformBrowser } from '@angular/common'; @Injectable({ providedIn: 'root', }) export class AbpLocalStorageService implements Storage { - constructor() {} + private isBrowser: boolean; + + constructor(@Inject(PLATFORM_ID) private platformId: unknown) { + this.isBrowser = isPlatformBrowser(this.platformId); + } [name: string]: any; get length(): number { - return localStorage.length; + return this.isBrowser ? localStorage.length : 0; } clear(): void { - localStorage.clear(); + if (this.isBrowser) { + localStorage.clear(); + } } - getItem(key: string): string { + getItem(key: string): string | null { + if (!this.isBrowser) { + return null; + } return localStorage.getItem(key); } - key(index: number): string { + key(index: number): string | null { + if (!this.isBrowser) { + return null; + } return localStorage.key(index); } removeItem(key: string): void { - localStorage.removeItem(key); + if (this.isBrowser) { + localStorage.removeItem(key); + } } setItem(key: string, value: string): void { - localStorage.setItem(key, value); + if (this.isBrowser) { + localStorage.setItem(key, value); + } } }