AffinityAPI.psm1
# Get public and private function definition files $script:Public = @( Get-ChildItem -Path "$PSScriptRoot\Public" -Recurse -Filter "*.ps1" -ErrorAction SilentlyContinue ) $script:Private = @( Get-ChildItem -Path "$PSScriptRoot\Private" -Recurse -Filter "*.ps1" -ErrorAction SilentlyContinue ) # Dot source the files Foreach($import in @($Public + $Private)) { Try { . $import.fullname } Catch { Write-Error -Message "Failed to import function $($import.fullname): $_" } } # Initialize standard base URL Set-Variable -Name AffinityStandardBaseUrl -Scope script -Option Constant -Value "https://api.affinity.co" # Initialize standard field value types Set-Variable -Name AffinityStandardFieldValueTypes -Scope script -Option Constant -Value @( "Person", "Organization", "Dropdown", "Number", "Date", "Location", "Text", "Ranked Dropdown" ) # Select type of cache ('ScriptVariable' or 'EnvironmentVariable') # 'EnvironmentVariable' can be useful in certain types of deployments (Azure Functions) # Eventually need to add a config file instead of these ham-fisted defaults Set-Variable -Name AffinityCacheType -Scope script -Option Constant -Value @{ LastList = 'EnvironmentVariable' AllLists = 'EnvironmentVariable' OrganizationGlobalFieldHeaders = 'EnvironmentVariable' Setting = 'ScriptVariable' } # Export only the functions using PowerShell standard verb-noun naming. # Be sure to list each exported functions in the FunctionsToExport field of the module manifest file. # This improves performance of command discovery in PowerShell. Export-ModuleMember -Function $Public.basename # Note: You cannot create cmdlets in a script module file, but you can import cmdlets from a binary module into a script module and re-export them from the script module. |