@guardian/libs
v22.0.1
Published
A collection of JavaScript libraries and TypeScript types for Guardian projects
Downloads
13,226
Keywords
Readme
@guardian/libs
A collection of JavaScript libraries and TypeScript types for Guardian projects
ArticleElementRole
Type that describes the role of an element in an article.
Consent
The Guardian's consent management platform.
Cookies
API over document.cookies
.
Countries
Country data and methods to access it.
Format
Codified editorial design and information architecture.
Locale
Get the user’s current location.
Switches
Get the active switches on theguardian.com.
isBoolean
Check whether a value is a boolean.
isNonNullable
Check whether a value is a NonNullable
.
isObject
Checks whether a value is a plain object (i.e. {}
-like).
isOneOf
Check whether a value is one of a set of literal string or numbers.
isString
Check whether a value is a string.
isUndefined
Check whether a value is undefined
.
joinUrl
Combines separate url parts into one valid url string.
loadScript
Inject an external JavaScript file.
log
, debug
Selectively log team-specific messages to the console.
Ophan
Types relating to Ophan.
Performance
API over window.performance
with hooks into log
the data warehouse.
storage
Robust API over localStorage
and sessionStorage
.
timeAgo
Format absolute dates as time-ago strings.
Installation
yarn add @guardian/libs
or
npm install @guardian/libs
then
import { loadScript, storage, ...etc } from '@guardian/libs';
Bundling
This package uses ES2020
.
If your target environment does not support that, make sure you transpile this package when bundling your application.
Local Testing Using Linking
- In the command line in your terminal, navigate to the csnx root directory. Run:
make @guardian/libs:build
This build command has to be re-run for changes to be picked up.
- Navigate to the repo that will test your code changes. In the appropriate folder of that repo, run
npm/yarn/pnpm link ../csnx/libs/@guardian/libs
where '../csnx' is the path to your local changes in csnx where you cloned the csnx code to.
After re-building the '@guardian/libs' in step 1. this command does not have to be repeated and changes will be automatically picked up.
- Once you’ve developed your changes and tested, you can unlink from the repo where you are testing the changes
npm/yarn/pnpm unlink ../csnx/libs/@guardian/libs