diff --git a/.changeset/witty-roses-relate.md b/.changeset/witty-roses-relate.md new file mode 100644 index 0000000000..ef46e2a7aa --- /dev/null +++ b/.changeset/witty-roses-relate.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fix telemetry reporting for integrations that return an array diff --git a/packages/astro/src/events/session.ts b/packages/astro/src/events/session.ts index f2c26d9807..706779d4b8 100644 --- a/packages/astro/src/events/session.ts +++ b/packages/astro/src/events/session.ts @@ -83,7 +83,10 @@ export function eventCliSession( ) ?? []), ] as string[], adapter: userConfig?.adapter?.name ?? null, - integrations: (userConfig?.integrations ?? []).filter(Boolean).map((i: any) => i?.name), + integrations: (userConfig?.integrations ?? []) + .filter(Boolean) + .flat() + .map((i: any) => i?.name), trailingSlash: userConfig?.trailingSlash, build: userConfig?.build ? { diff --git a/packages/astro/test/events.test.js b/packages/astro/test/events.test.js index 98eaa2d540..b67c889b5d 100644 --- a/packages/astro/test/events.test.js +++ b/packages/astro/test/events.test.js @@ -385,6 +385,14 @@ describe('Events', () => { expect(payload.config.integrations.length).to.equal(0); }); + it('finds names for integration arrays', () => { + const config = { + integrations: [{ name: 'foo' }, [{ name: 'bar' }, { name: 'baz' }]], + }; + const [{ payload }] = events.eventCliSession({ cliCommand: 'dev' }, config); + expect(payload.config.integrations).to.deep.equal(['foo', 'bar', 'baz']); + }); + it('includes cli flags in payload', () => { const config = {}; const flags = {