source/Private/RJEnvironment.ps1

function Get-RJCurrentEnvironment {
    [CmdletBinding()]
    [OutputType([System.String])]
    param()

    $envVar = $env:RJ_ENVIRONMENT
    if ($envVar -and $envVar -in @('Development', 'Production')) {
        Write-Verbose "Using environment from RJ_ENVIRONMENT variable: $envVar"
        return $envVar
    }

    Write-Verbose "Defaulting to Production environment"
    return 'Production'
}

function Set-RJEnvironment {
    [CmdletBinding(SupportsShouldProcess)]
    param(
        [Parameter(Mandatory)]
        [ValidateSet('Development', 'Production')]
        [string]$Environment
    )

    if ($PSCmdlet.ShouldProcess("Environment Variable RJ_ENVIRONMENT", "Set to '$Environment'")) {
        $env:RJ_ENVIRONMENT = $Environment
        Write-Verbose "RealmJoin environment set to: $Environment"
    }
}

function Get-RJUseStagingEndpoint {
    [CmdletBinding()]
    [OutputType([bool])]
    param()

    $result = $env:RJ_USE_STAGING_ENDPOINTS -ieq 'true'
    Write-Verbose "Using staging endpoints: $result"
    return $result
}

function Set-RJUseStagingEndpoint {
    [CmdletBinding(SupportsShouldProcess)]
    param(
        [Parameter(Mandatory)]
        [bool]$UseStaging
    )

    if ($PSCmdlet.ShouldProcess("Environment Variable RJ_USE_STAGING_ENDPOINTS", "Set to '$UseStaging'")) {
        $env:RJ_USE_STAGING_ENDPOINTS = if ($UseStaging) { 'true' } else { 'false' }
        Write-Verbose "RealmJoin staging endpoints set to: $UseStaging"
    }
}