@mashroom/mashroom-browser-cache

2.6.0 • Public • Published

Mashroom Browser Cache

Plugin for Mashroom Server, a Microfrontend Integration Platform.

This plugin adds a Service to manage cache control headers. It also allows to disable the cache globally.

Usage

If node_modules/@mashroom is configured as plugin path just add @mashroom/mashroom-browser-cache as dependency.

After that you can use the service like this:

import type {MashroomCacheControlService} from '@mashroom/mashroom-browser-cache/type-definitions';

export default async (req: Request, res: Response) => {

    const cacheControlService: MashroomCacheControlService = req.pluginContext.services.browserCache.cacheControl;
    await cacheControlService.addCacheControlHeader('ONLY_FOR_ANONYMOUS_USERS', req, res);

    // ..
};

You can override the default config in your Mashroom config file like this:

{
  "plugins": {
        "Mashroom Cache Control Services": {
            "disabled": false,
            "maxAgeSec": 31536000
        }
    }
}
  • disabled: Disable browser caching (default: false)
  • maxAgeSec: Max age in seconds (default: 31536000 (30d))

Services

MashroomCacheControlService

The Cache Control service is accessible through pluginContext.services.browserCache.cacheControl

Interface:

export interface MashroomCacheControlService {
    /**
     * Add the Cache-Control header based on the policy and authentication status.
     */
     addCacheControlHeader(cachingPolicy: CachingPolicy, request: Request, response: Response): void;

    /**
     * Remove a previously set Cache-Control header
     */
     removeCacheControlHeader(response: Response): void;
}

Caching Policies are:

export type CachingPolicy =  'SHARED' | 'PRIVATE_IF_AUTHENTICATED' | 'NEVER' | 'ONLY_FOR_ANONYMOUS_USERS';

Versions

Current Tags

Version History

Package Sidebar

Install

npm i @mashroom/mashroom-browser-cache

Weekly Downloads

7

Version

2.6.0

License

MIT

Unpacked Size

8.37 kB

Total Files

7

Last publish

Collaborators

  • jkofler