Performance.psm1

[CmdletBinding()] 
param(
)

# Because these are set once in a script scope (modules and functions are all considered in one script scope)
# they will be effective in every function, and won't override or be overridden by changes in parent scopes.
Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"

foreach ($fileName in (Get-ChildItem $PSScriptRoot "*.ps1" -Recurse)) {
    try {
        Write-Verbose "Loading function from path '$fileName'."
        .$fileName.FullName
    } catch {
        Write-Error $_
    }
}

# This is required for nested modules, to be re-declared in the parent module
Set-Variable -Scope Script -Name PerformanceRecord -Value @{}