Skip to content

Node.js module for fetching Cortina blocks and optionally cache using Redis.

License

Notifications You must be signed in to change notification settings

KTH/kth-node-cortina-block

Repository files navigation

@kth/cortina-block

This package exports:

  • cortinaMiddleware - Express middleware to fectch cortina blocks and store them in res.locals.blocks (optional resis cache)
  • cortina - function that fetches cortina blocks (optional redis cache). Used by cortinaMiddleware.
  • prepare - function for formatting fetched cortina blocks, e.g. site name and locale link text. Used by cortinaMiddleware

Installation

npm install @kth/cortina-block

Usage

import { cortinaMiddleware } from '@kth/cortina-block'

apply middleware

server.use(
  '',
  cortinaMiddleware({
    blockApiUrl,
    siteName,
    localeText,
    resourceUrl,
    blocksConfig,
    redisConfig,
  })
)

Default blocks that will be fetched can be found in config.ts. If you want to fetch other blocks or override the id of the default blocks, provide the optional blocksConfig:

const blocksConfig = {
  anotherBlock: 'id',
}

Options

  • blockApiUrl is required. Should point to the Cortina block API endpoint.

  • headers is optional, pass headers used when fetching Cortina blocks.

  • blocks is optional. It's a plain object containing Cortina block IDs. The following IDs are default and can be overridden.

    • title defaults to 1.260060.
    • megaMenu defaults to 1.855134.
    • secondaryMenu defaults to 1.865038.
    • image defaults to 1.77257.
    • footer defaults to 1.202278.
    • search defaults to 1.77262.
    • language optional object with language block IDs.
      • en defaults to 1.77273.
      • sv defaults to 1.272446.
    • klaroConfig defaults to 1.1137647.
    • matomoAnalytics defaults to 1.714097.
  • redisConfig is optional. An object parsed from kth-node-configuration, containing host and port. If provided, blocks will be cached in redis.

Returned blocks

title: "\n\n\n  <h1 class=\"bloc…logy</a>\n  </h1>\n\n\n",
megaMenu: "\n\n\n\n  <nav class=\"b…\n     </nav>\n\n  \n\n",
secondaryMenu: "\n\n\n  <div class=\"blo…   </ul>\n  </div>\n\n\n",
image: "\n\n\n  <figure class=\"…    \n  </figure>\n\n\n",
footer: "\n\n\n  <div class=\"blo…  </div>\n  </div>\n\n\n",
search: "\n\n\n  <div class=\"blo…aded=!0);</script>\n\n\n",
language: "\n\n\n  <a class=\"block…KTH på svenska</a>\n\n\n",
analytics: "\n\n\n  \n    <!-- conte…r\n};</script>\n  \n\n\n",
gtmAnalytics: "\n\n\n  <!-- Begin JavaS…entId-1_714097 -->\n\n\n",
gtmNoscript: "\n\n\n  <!-- Begin HTML …entId-1_714099 -->\n\n\n"

About

Node.js module for fetching Cortina blocks and optionally cache using Redis.

Resources

License

Stars

Watchers

Forks

Packages

No packages published