mirror of
https://github.com/withastro/astro.git
synced 2024-12-16 21:46:22 -05:00
Add options to partytown integration (#3380)
* Add options to partytown integration * Update doc
This commit is contained in:
parent
77beab072f
commit
31b0bc87a4
3 changed files with 48 additions and 2 deletions
5
.changeset/silent-books-train.md
Normal file
5
.changeset/silent-books-train.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
'@astrojs/partytown': patch
|
||||
---
|
||||
|
||||
Add config options for integration
|
|
@ -59,6 +59,38 @@ Partytown should be ready-to-use with zero config. If you have an existing 3rd p
|
|||
|
||||
If you open the "Network" tab from [your browser's dev tools](https://developer.chrome.com/docs/devtools/open/), you should see the `partytown` proxy intercepting this request.
|
||||
|
||||
## Configuration
|
||||
|
||||
### config.debug
|
||||
|
||||
You can set debug mode using this integration's `config.debug` option. If `config.debug` is unset, it will fall back to `true` if the command is `dev`.
|
||||
|
||||
```js
|
||||
// astro.config.mjs
|
||||
export default {
|
||||
integrations: [partytown({
|
||||
// Example: Disable debug mode.
|
||||
config: { debug: false },
|
||||
})],
|
||||
}
|
||||
```
|
||||
|
||||
### config.forward
|
||||
|
||||
Because we’re moving third-party scripts to a web worker, the main thread needs to know which variables to patch on window, and when these services are called, the data is correctly forwarded to the web worker. You can to set it on the `config.forward` option.
|
||||
|
||||
```js
|
||||
// astro.config.mjs
|
||||
export default {
|
||||
integrations: [partytown({
|
||||
// Example: Add dataLayer.push as a forwarding-event.
|
||||
config: { forward: ["dataLayer.push"] },
|
||||
})],
|
||||
}
|
||||
```
|
||||
|
||||
## Read more
|
||||
|
||||
[Head to the Partytown docs](https://partytown.builder.io/configuration) for configuration options and more usage examples. You can also check our [Astro Integration Documentation][astro-integration] for more on integrations.
|
||||
|
||||
[astro-integration]: https://docs.astro.build/en/guides/integrations-guide/
|
||||
|
|
|
@ -7,7 +7,14 @@ import { createRequire } from 'module';
|
|||
import path from 'path';
|
||||
const resolve = createRequire(import.meta.url).resolve;
|
||||
|
||||
export default function createPlugin(): AstroIntegration {
|
||||
type PartytownOptions = {
|
||||
config?: {
|
||||
forward?: string[];
|
||||
debug?: boolean;
|
||||
}
|
||||
} | undefined;
|
||||
|
||||
export default function createPlugin(options: PartytownOptions): AstroIntegration {
|
||||
let config: AstroConfig;
|
||||
let partytownSnippetHtml: string;
|
||||
const partytownEntrypoint = resolve('@builder.io/partytown/package.json');
|
||||
|
@ -16,7 +23,9 @@ export default function createPlugin(): AstroIntegration {
|
|||
name: '@astrojs/partytown',
|
||||
hooks: {
|
||||
'astro:config:setup': ({ config: _config, command, injectScript }) => {
|
||||
partytownSnippetHtml = partytownSnippet({ debug: command === 'dev' });
|
||||
const forward = options?.config?.forward || []
|
||||
const debug = options?.config?.debug || command === 'dev'
|
||||
partytownSnippetHtml = partytownSnippet({ debug, forward });
|
||||
injectScript('head-inline', partytownSnippetHtml);
|
||||
},
|
||||
'astro:config:done': ({ config: _config }) => {
|
||||
|
|
Loading…
Reference in a new issue