Browse Source

local storage service refactored according to ssr

feature/ssr-migration-schematic
erdemcaygor 1 year ago
parent
commit
b2f36c28b4
  1. 33
      npm/ng-packs/packages/core/src/lib/services/local-storage.service.ts

33
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);
}
}
}

Loading…
Cancel
Save