pf-Json.ps1

Write-Host "Loading Module from $PSScriptRoot"

$Public  = @( Get-ChildItem -Path $PSScriptRoot\Public -Filter *.ps1 -ErrorAction SilentlyContinue )
$Private = @( Get-ChildItem -Path $PSScriptRoot\Private -Filter *.ps1 -ErrorAction SilentlyContinue )

#Dot source the files
$failed = Foreach ($import in @($Public + $Private)) {
    Try {
        . $import.fullname
    }
    Catch {
        @(
            file = $import,
            error = $errors[0] 
        )
    }
}

if ($failed) {
    Write-Error "Failed loading $failed.file "
}

$nonFailed = $Public | Where-Object { $_ -notin $failed.file } 
Write-Host $nonFailed.Basename

Export-ModuleMember -Function $nonFailed.Basename