Home

Awesome

NgMemento

ng-memento makes your application faster by preventing the same http requests from being called again in your Angular project.

Installation

npm i ng-memento --save

Demo

Example

The application was built by using this library. Visit

Image

til

Stable Versions

Angular versionng-memento version
v13.x.xv3.x.x
v14.x.xv4.x.x
v15.x.xv5.x.x
v16.x.xv6.x.x
v17.x.xv7.x.x
v18.x.xv8.x.x

Documentation

How can I use?

import { NgMementoModule, IMementoConfig } from "ng-memento";

const config: IMementoConfig = {
  expireTimeAsMilliSeconds: 60 * 60 * 1000, // an hour
  store: 'local',
  storeKey: 'MEMENTO_KEY',
  paths: [
    {
      methods: ["GET"],
      path: "comments/*",
      store: "session",
    },
    {
      methods: ["GET", "POST"],
      path: "users/1",
      storeKey: "MEMENTO_USERS",
      expireTimeAsMilliSeconds: 24 * 60 * 60 * 1000, // a day

    },
    {
      methods: ["GET", "POST"],
      path: "users/2",
      storeKey: "MEMENTO_USERS",
      expireTimeAsMilliSeconds: 24 * 60 * 60 * 1000, // a day
    },
    {
      methods: ["GET"],
      path: "posts",
      store: "none",
    },
  ],
};

/* MODULE-BASED ARCHITECTURE */
@NgModule({
  declarations: [],
  imports: [
    ...,
    NgMementoModule.forRoot(config),
  ],
  providers: [],
  bootstrap: [],
})
export class AppModule {}

/* STANDALONE ARCHITECTURE */
export const appConfig: ApplicationConfig = {
  providers: [
    ...,
    importProvidersFrom(
      NgMementoModule.forRoot(config),
    ),
  ],
};

Types

IMementoConfig

propertytypedefaultrequireddescription
expireTimeAsMilliSecondsnumber0xcached data stored time
pathsIMethodPath
storenone, local, sessionnonexnone: cached data stored lives only until next refresh
storeKeystringMEMENTO_KEYxkey that stores data if chose local or session

IMethodPath

propertytypedefaultrequireddescription
methodsMethodTypemethods to be cached
pathstringpath to be cached (if path ends with '/*' all sub paths will be cached)
expireTimeAsMilliSecondsnumberparent valuexcached data stored time
storenone, local, sessionparent valuexnone: cached data stored lives only until next refresh
storeKeystringparent valuexkey that stores data if chose local or session

MethodType

propertytypedefaultrequireddescription
MethodType"GET", "POST", "PUT", "PATCH"methods to be cached

Important

You should use MethodType carefully. You send same header, body, params and path when you use POST, PUT and PATCH method, ng-memento will prevent the request therefore the data will not affect.