Public/Add-PsmData.ps1

function Add-PsmData {
  <#
    .Synopsis
      A function that creates a data file in the module's Data/ folder
    .DESCRIPTION
      A function that creates a data file in the module's Data/ folder
    .EXAMPLE
      Add-PsmData "package.json" #creates empty file
      Add-PsmData "package.json" $jsonString #creates file with $jsonString as the content
      Add-PsmData "package.json" -Whatif
  #>

  [CmdletBinding(SupportsShouldProcess=$true)]
  param(
    [Parameter(
      Mandatory=$true, 
      ValueFromPipeline=$true,
      ValueFromPipelineByPropertyName=$true)]
    [string]$dataName,
    [Parameter(
      Mandatory=$false, 
      ValueFromPipeline=$true,
      ValueFromPipelineByPropertyName=$true)]
    [string]$data
  )

  BEGIN{
    Write-Verbose "Starting Add-PsmData..."
    Confirm-IsInitializedModulePath
    $packageXml = Import-CliXml .\module-psd1.xml
  }#begin

  PROCESS{
    if ($psCmdlet.ShouldProcess(<# on target --> #>"$($packageXml.RootModule)", <# What if: Performing operation --> #>"Adding new data file $dataName")) {    
      if (Test-Path -Path .\Data -PathType Container) {
        $data | Set-Content .\Data\$dataName -Force
        Write-Verbose ".\Data\$dataName file written"
      } else {
        throw "No .\Data folder found, this is not an initialized module folder... Run: ``Initialize-Psm``"
      }
    }
  }#process
  
  END{
    Write-Verbose "Finished Add-PsmData..."
  }#end
}