Skip to content

fix: use plugin instances instead of raw plugins array to prevent eror when getting plugin config#1263

Closed
letiescanciano wants to merge 3 commits intoPaloAltoNetworks:mainfrom
letiescanciano:main
Closed

fix: use plugin instances instead of raw plugins array to prevent eror when getting plugin config#1263
letiescanciano wants to merge 3 commits intoPaloAltoNetworks:mainfrom
letiescanciano:main

Conversation

@letiescanciano
Copy link
Copy Markdown

Description

When plugins are defined as functions in Docusaurus config, getPluginConfig crashes trying to access data[1].id on non-array entries. By passing pluginInstances (pre-filtered for docusaurus-plugin-openapi-docs) instead of the raw plugins array, we ensure only valid array-formatted plugins are processed.

Motivation and Context

Fixes #1246

How Has This Been Tested?

Types of changes

  • Bug fix (non-breaking change which fixes an issue)

Checklist

  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes if appropriate.
  • All new and existing tests passed.

…or when getting plugin config

 When plugins are defined as functions in Docusaurus config, getPluginConfig
  crashes trying to access data[1].id on non-array entries. By passing
  pluginInstances (pre-filtered for docusaurus-plugin-openapi-docs) instead
  of the raw plugins array, we ensure only valid array-formatted plugins
  are processed.

  Fixes PaloAltoNetworks#1246
Export getPluginConfig and getPluginInstances to enable unit testing.
Add comprehensive test coverage including edge cases and integration tests
to verify the bug fix where plugin instances must be filtered before
getting plugin config.
@sserrata
Copy link
Copy Markdown
Member

Hi @letiescanciano, just a heads up that builds are failing with your changes.

@sserrata sserrata self-assigned this Dec 19, 2025
@sserrata sserrata added the reviewing 👀 Undergoing manual audit to determine if issue should still be active label Dec 19, 2025
@sserrata
Copy link
Copy Markdown
Member

sserrata commented Apr 2, 2026

@dependabot rebase

Copy link
Copy Markdown
Member

@sserrata sserrata left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix looks correct — passing pluginInstances (pre-filtered to docusaurus-plugin-openapi-docs tuples) instead of the raw plugins array prevents the TypeError when non-array plugins (e.g. function plugins) are present in the config. Also catches the edge case where another plugin shares the same ID as the openapi-docs plugin. Good test coverage. Will merge once CI is green.

@sserrata
Copy link
Copy Markdown
Member

sserrata commented Apr 2, 2026

CI is failing due to two TypeScript implicit any[] errors in the test file. Here's the fix:

- const plugins = [];
+ const plugins: any[] = [];
- const pluginInstances = [];
+ const pluginInstances: any[] = [];

Lines 40 and 133 in src/index.test.ts — just add : any[] to both empty array declarations.

sserrata added a commit that referenced this pull request Apr 2, 2026
…y plugins (#1246)

Passing the raw `plugins` array to `getPluginConfig` caused a TypeError
when `plugins` contained non-array entries (e.g. function plugins), as
`data[1]` would be undefined. Since `pluginInstances` is already filtered
to only `docusaurus-plugin-openapi-docs` tuples, passing it instead is
both correct and safe. Also prevents incorrect matches when another plugin
shares the same ID as the openapi-docs plugin.

Fixes #1246
Closes #1263

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@sserrata sserrata closed this in 7309c09 Apr 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

reviewing 👀 Undergoing manual audit to determine if issue should still be active

Projects

None yet

Development

Successfully merging this pull request may close these issues.

gen-api-docs command doesn't support non-array plugins

2 participants