Azure / Azure/PSDocs.Azure

Support for custom types is required

Open
#355 2 comments 2 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
67
Forks
27
PR merge metrics
No merged PRs in 30d

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:

```bicep
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

```powershell
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**

```text

```

**Module in use and version:**

- Module: PSDocs.Azure
- Version: 0.3.0

Captured output from `$PSVersionTable`:

```text
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**

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.