# Apolitical GTM

Browser library to interact with Google Tag Manager (GTM)

## Requirements

Requires the following to run:

- [node.js][node] 16.13.0+
- [yarn][yarn]

[node]: https://nodejs.org/en/download/
[yarn]: https://classic.yarnpkg.com/en/docs/install

## Installation

Install with `yarn`:

```sh
yarn add @apolitical/gtm
```

## Available Scripts

In the project directory, you can run:
### `yarn run test`

Runs the test (and the interactive mode can be enabled with `--watchAll`).

### `yarn build`

Builds the library for production to the `build` folder.
It correctly bundles the code on production mode and optimizes the build for the best performance.

### `yarn publish`

Publishes the library to NPM.

## Usage

The recommended way to use `@apolitical/gtm` is to set the context with the appropriate parameters:

```js
const { setContext, runExample } = require('@apolitical/gtm');

setContext({ origin: 'some-url' });
```

And then, you can query Contentful as you like:

```js
runExample();
```

## Troubleshooting

### Usage of other libraries within your library

- Add the library as a dependency in `package.json` (effectively requiring the calling project to provide this dependency)
- Add the Contentful library as a dependency in `package.json`. By default, only the library code is published, meaning that the Contentful library needs to be installed separately
