@adv-ui/boros-tcf-stub
Version:
Adevinta GDPR - Transparency and Consent Framework - Stub for Boros TCF
81 lines (52 loc) • 2.86 kB
Markdown
# Boros TCF Stub
[](https://travis-ci.org/scm-spain/boros-tcf-stub)
[](https://codecov.io/gh/scm-spain/boros-tcf-stub)
[](https://github.com/scm-spain/boros-tcf-stub/blob/master/LICENSE)
[](https://www.npmjs.com/package/@adv-ui/boros-tcf-stub)
## Table of Contents
* [About](#about)
* [Features](#features)
* [Usage](#usage)
* [License](#license)
## About
The Boros TCF stub implements the [standard TCF v2 stub](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/TCFv2/IAB%20Tech%20Lab%20-%20CMP%20API%20v2.md#how-does-the-cmp-stub-api-work)
## Features
- Registers the `__tcfapiLocator` frame
- Stubs the `window.__tcfapi` responding immediately to the commands
- `ping` [See PingReturn in the stubbed __tcfapi](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/TCFv2/IAB%20Tech%20Lab%20-%20CMP%20API%20v2.md#requirements-for-the-cmp-stub-api-script)
- `pending` returns the pending calls accumulated while calling `window.__tcfapi` commands
- `onReady` returns the optional registered `onReady` callback
- Initializes the cross-framee communication via `postMessagee`, [see usage details](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/TCFv2/IAB%20Tech%20Lab%20-%20CMP%20API%20v2.md#how-can-vendors-that-use-iframes-call-the-cmp-api-from-an-iframe)
## Usage
### As an importable module
> Use it this way if you're generating your own initialization
**Install**
```
npm i @adv-ui/boros-tcf-stub --save
```
**Register the Stub**
```
import registerStub from '../main'
// do your magic
registerStub()
```
**Register the Stub with an onReady callback**
This allows creating additional commands that can have access to the Boros TCF API facade.
```
import registerStub from '../main'
const onReady = api => initializeCustomCommands(api)
registerStub({onReady})
```
> The `onReady` callback will be called after Boros TCF initializes the `window.__tcfapi` and before processing any pending command in the stub's queue.
> Remember that the Stub **must** be registered before any script depending on the TCF is loaded
### As a standalone script
**Add it to the `head` tag**
```
<script
src="https://c.dcdn.es/borostcf/stub/BorosTcfStub.pro.js"
async="false"
/>
```
> This does not accept registering an `onReady` callback. Import the `registerStub` and generate your own script if it's a need.
## License
Boros TCF Stub is [MIT licensed](./LICENSE).