0.0.157 • Published 12 months ago

@grec0/ngx-cachemanager v0.0.157

Weekly downloads
-
License
-
Repository
-
Last release
12 months ago

ngx-cachemanager

Líbrería Angular para la gestión de la cache implícita.

Con esta librería se pretende desacoplar la propia lógica de cache sobre el desarrollador, de tal manera que, le permite más control sobre ella sin necesidad de líneas de código solo de algunos Decorators.

Actualmente la comunidad en caso necesario, sulee delegar esta cache en un interceptor HTTP, lo cúal, no esta mal pero, para formatos de aplicación CRUD no suele ser válido además que implica saber que se realiza una llamada HTTP.

Con esta librería ignoraremos lo que hay por detras, ngx-cachemanager hace esto por ti, da igual si la petición es sincrona o no, Promise o Observable si el tipo está definido ngx-cachemanager sabrá que hacer.

En caso de que no se defina el tipo que devuelve la función ngx-cachemanager tomará esta cache como síncrona y puede llevar a errores en caso de que si lo séa.

Un ejemplo:

MAL (RETURN TYPE UNDEFINED async = false)

@Cache({map: 'tasks'})
private getTasks(range) {

    return this.projectService.getProject(
      this.clientId
    );
  }

BIEN (RETURN TYPE Observable async = true)

@Cache({map: 'tasks'})
private getTasks(range): Observable<ITaskDetail[]> {

    return this.projectService.getProject(
      this.clientId
    );
  }

Table of Contents

Quick Start

bower install --save @grec0/ngx-cachemanager or npm install --save @grec0/ngx-cachemanager.

2 opciones para inicializar la configuración:
1) APP_INITIALIZER (recomendada carga en nivel superior) "loadGlobalConfig(config: ConfigCacheGlobal): Promise<boolean>;"

2) Root Module environment (carga en nivel inferior) NgxCachemanagerModule.forRoot(config);

1) APP_INITIALIZER app.module.ts

export function initializer(cacheConfig: CacheConfigService): () => Promise<any> {
	return (): Promise<any> => cacheConfig.loadGlobalConfig({});
}

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    NgxCachemanagerModule
  ],
  providers: [
    {
			provide: APP_INITIALIZER,
			useFactory: initializer,
			deps: [CacheConfigService],
			multi: true
    }
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }

2) Root Module environment app.module.ts

import{ environment } from '@environment'; // environment contiene el objeto de configuración de cache descrito mas abajo.



@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    NgxCachemanagerModule.forRoot(environment)
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }

The Basics

Primero extendemos nuestro servicio de la clase CacheableService y aplicamos el decorator encima del @injectable con la estrategia requerida:

@Cacheable({defaultStrategy:'memory', logger: true})
@Injectable({providedIn:'root'})
export class UserService extends CacheableService {

  @Cache({timeout: 10000, map: 'users-search'})
  getUsers(clientId: string): Observable<Array<User>> {
    return this.userHttpService.getUsers(clientId);
  }
}
0.0.153

12 months ago

0.0.151

12 months ago

0.0.157

12 months ago

0.0.156

12 months ago

0.0.155

12 months ago

0.0.154

12 months ago

0.0.149

12 months ago

0.0.148

12 months ago

0.0.142

12 months ago

0.0.141

12 months ago

0.0.140

12 months ago

0.0.146

12 months ago

0.0.144

12 months ago

0.0.139

2 years ago

0.0.117

2 years ago

0.0.138

2 years ago

0.0.116

2 years ago

0.0.137

2 years ago

0.0.115

2 years ago

0.0.136

2 years ago

0.0.114

2 years ago

0.0.119

2 years ago

0.0.118

2 years ago

0.0.131

2 years ago

0.0.130

2 years ago

0.0.135

2 years ago

0.0.113

2 years ago

0.0.134

2 years ago

0.0.112

2 years ago

0.0.133

2 years ago

0.0.111

2 years ago

0.0.132

2 years ago

0.0.128

2 years ago

0.0.127

2 years ago

0.0.126

2 years ago

0.0.125

2 years ago

0.0.129

2 years ago

0.0.120

2 years ago

0.0.124

2 years ago

0.0.123

2 years ago

0.0.121

2 years ago

0.0.110

4 years ago

0.0.109

4 years ago

0.0.108

4 years ago

0.0.107

4 years ago

0.0.106

4 years ago

0.0.105

4 years ago

0.0.104

4 years ago

0.0.103

4 years ago

0.0.102

4 years ago

0.0.99

4 years ago

0.0.98

4 years ago

0.0.97

4 years ago