New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@kth/cortina-block

Package Overview
Dependencies
Maintainers
8
Versions
39
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@kth/cortina-block

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

  • 5.1.1
  • 5-latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
918
increased by65.7%
Maintainers
8
Weekly downloads
 
Created
Source

@kth/cortina-block

Fetch Cortina blocks and optionally cache using Redis.

Installation

npm install @kth/cortina-block

Usage

A basic NodeJS example is located under /examples/.

const cortina = require('@kth/cortina-block')
const options = {
  /* see below for options */
}

// somewhere else, usually in an express controller

cortina(options)
  .then(blocks =>  {
    // blocks should be used in the layout/view
    // each block contains HTML,
    // meaning it should not be escaped in the view

    // blocks is a plain object with the following properties:
    // title, image, footer, search, language, analytics

    res.render('page', { blocks })
  })
  .catch(err = > {
    log.error({ err }, 'failed to get cortina blocks')

    // either display the error:

    res.render('error', { err })

    // or render page without blocks:

    res.render('page', { blocks: {} })
  })

Options

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

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

  • debug is optional, defaults to false. Enables logging of Redis errors.

  • version is optional, defaults to head. Change if needed.

  • language is optional, defaults to en.

  • redisKey is optional, defaults to CortinaBlock_. Used as a prefix for the Redis cache. The language setting will be appended.

  • redisExpire is optional, defaults to 600 (10 minutes). Sets expiration time in seconds for blocks stored in Redis.

  • redis is optional. Set to a Redis client instance when you want to enable Redis caching. Basically requires an object with get and set functions.

  • 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.

    You can also add application specific blocks to the options obejct like this:

    addBlocks: {
      placesSearch: '1.672888'
    }
    

Run tests

Clone this repository, run npm install followed by npm test.

New version

Run the npm version <version> command. See https://docs.npmjs.com/cli/version for more details.

Prepare helper

A helper to modify paths in the blocks HTML for logo, site link/name, and locale link. The resulting blocks object should not be cached (i.e. called this after getting the blocks from the cache/API), because the locale URL changes with the request URL.

Usage

const cortina = require('@kth/cortina-block')

function prepare(blocks, req, config) {
  return cortina.prepare(blocks, {
    urls: {
      request: req.url,
      app: config.full.hostUrl + config.full.proxyPrefixPath.uri,
    },
    // more options below e.g.
    // addBlocks: {
    //  myBlock: '1.1234',
    // },
  })
}

Options

  • blocks is required. You get this from the main call to cortina.
  • config is required. A plain object with the following properties:
    • siteName is optional. Set this to override the site link text.
    • localeText is optional. Set this to override the locale link text.
    • urls is required. A plain object with the following properties:
      • prod is optional, defaults to //www.kth.se. The production URL.
      • request is required. Usually the express req.url value.
      • app is optional, defaults to an empty string. Usually the host URL and the proxy prefix path.
      • siteUrl is optional, overides default url on the site name only.
    • selectors is optional, defaults to a plain object with the following properties:
      • logo is optional, defaults to .imageWrapper img.
      • siteName is optional, defaults to .siteName a.
      • localeLink is optional, defaults to .block.link a.localeLink.

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"

Keywords

FAQs

Package last updated on 17 Jan 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc