Skip to content

Support for custom types is required #355

@GABRIELNGBTUC

Description

@GABRIELNGBTUC

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-GB

The 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions