@financial-times/privacy-legislation-client

A module that reports which privacy-related legislation applies in the user's current location.

Usage no npm install needed!

<script type="module">
  import financialTimesPrivacyLegislationClient from 'https://cdn.skypack.dev/@financial-times/privacy-legislation-client';
</script>

README

Privacy Legislation Client

What it is

A module that reports which privacy-related legislation applies in the user's current location.

Available for both server and client: see example

Usage

Typical usage would be to add the module to your app, call the imported method and then update the UI in line with any applicable legal requirements:

import { fetchLegislation, buildConsentPageUrl } from "@financial-times/privacy-legislation-client";

function onPageLoad() {
  /**
   * `legislation`: a Set of applicable laws: "ccpa", "gdpr", etc
   * `region`: Identifies countries or subdivisions - "GB", "US-CA"
   */ 
  const { legislation, region } = await fetchLegislation();

  // Contruct a standardised URL for the Consent Page, embedding legislation  & referrer
  const url = buildConsentPageUrl({ url: "...", legislation })

  if(legislation.has("ccpa")) {
    insertCCPALink(url)
  }

  if(legislation.has("gdpr")) {
    ...
  }
}

How it works

This module is a lightweight wrapper over the Fetch API that hits https://privacy.ft.com/api/v1/compliance-region.json, and exposes the comma-delimted response as a property called legislation in the form of a Set.

The abstraction allows us to change implementation details like the API's URL, version, etc. without impacting consumers

See the legislation-api for more details