-
Notifications
You must be signed in to change notification settings - Fork 23
Description
Description of the issue
We have some bicep/ARM templates that use outputs with a user defined type as the output type.
When trying to create documentation on the compiled ARM file using PSDocs, the command fails with the error Invoke-PSDocument: Object reference not set to an instance of an object..
This only happens if the template both:
- Have an output with a user defined type as the type
- A resource/module is also deployed in the same file
If I either replace the user defined type with object or remove all the resources/modules from the template, PSDocs successfully run
To reproduce
Have a bicep file with the following content:
type test = {
str: string
}
param text test
resource res 'Microsoft.Compute/virtualMachines@2024-03-01'= {
name: 'myVM'
location: ''
}
// si custom type + resource => instance of object
output out test = {str: 'test'}
Compile that file with the bicep cli and run the following command
Invoke-PSDocument -Module PSDocs.Azure -InputObject .\main.json -OutputPath $pwd -InstanceName .\main.md -Culture en-GBThe command will fail.
If you either replace the output line with output out object = {str: 'test'} or command the res resource, no error is triggered
Expected behaviour
The command succeed in creating the documentation.
Error output
Module in use and version:
- Module: PSDocs.Azure
- Version: 0.3.0
Captured output from $PSVersionTable:
VERBOSE: [Invoke-PSDocument]::BEGIN
VERBOSE: [New-PSDocumentOption] BEGIN::
VERBOSE: Attempting to read: D:\Users\GNGANDUB\OneDrive - TUC RAIL\Documents\test\test-json\psdoc
VERBOSE: [New-PSDocumentOption] END::
VERBOSE: [PSDocs][D] -- Scanning for source files in module: PSDocs.Azure
Invoke-PSDocument: Object reference not set to an instance of an object.
VERBOSE: [Invoke-PSDocument]::END
Additional context