Skip to content

Instantly share code, notes, and snippets.

@shaharyar123
Created August 23, 2019 12:28
Show Gist options
  • Save shaharyar123/5a05dbce8328296b0f13d3aa3a0edd99 to your computer and use it in GitHub Desktop.
Save shaharyar123/5a05dbce8328296b0f13d3aa3a0edd99 to your computer and use it in GitHub Desktop.
Local storage provider
import { LocalStorageService } from '../services/local-storage.service';
import { NgModule, ModuleWithProviders } from '@angular/core';
import { Platform } from '@ionic/angular';
import { LocalStorageMobileService } from '../services/local-storage-mobile.service';
import { LocalStorageBrowserService } from '../services/local-storage-browser.service';
import { CookieService } from 'ngx-cookie-service';
const storageServiceFactory = (platform: Platform, cookieService: CookieService) => (
platform.is('cordova') ? new LocalStorageMobileService() : new LocalStorageBrowserService(cookieService)
);
@NgModule({})
export class LocalStorageModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: LocalStorageModule,
providers: [
CookieService,
{ provide: LocalStorageService, useFactory: storageServiceFactory, deps: [Platform, CookieService] },
]
}
}
}
import { LocalStorageService } from './local-storage.service';
import { Injectable } from '@angular/core';
@Injectable()
export class LocalStorageMobileService extends LocalStorageService {
constructor() {
super()
}
}
import { NgModule, ModuleWithProviders } from "@angular/core";
import { HttpService } from './services/http.service';
import { PopupService } from './services/popup.service';
import { LocalStorageModule } from './module/local-storage.module';
@NgModule({
imports: [
LocalStorageModule.forRoot()
],
declarations: [],
})
export class SharedModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: SharedModule,
providers: [
HttpService,
PopupService,
]
};
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment