From d5578af1ce7041da66734731f1a8f45bda905c6f Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 6 Jul 2026 08:27:03 +0200 Subject: [PATCH 1/4] Standardize README landing page --- README.md | 108 ++++-------------------------------------------------- 1 file changed, 8 insertions(+), 100 deletions(-) diff --git a/README.md b/README.md index ebb04ec..fe93142 100644 --- a/README.md +++ b/README.md @@ -1,119 +1,27 @@ # Hashtable -Hashtable is a comprehensive module that provides functions for working with PowerShell hashtables. -It enables you to convert hashtables to PSCustomObjects and vice versa, format hashtables into readable PowerShell -code, merge hashtables with override support, and remove entries based on specific criteria. This collection of -utilities is designed to simplify complex hashtable manipulations and help automate your PowerShell workflows. - -## Prerequisites - -This module uses the following external resources: -- The [PSModule framework](https://github.com/PSModule) for building, testing, and publishing the module. +Hashtable is a PowerShell module that simplifies common hashtable operations. ## Installation -To install the module from the PowerShell Gallery, you can use the following command: +Install the module from the PowerShell Gallery: ```powershell Install-PSResource -Name Hashtable Import-Module -Name Hashtable ``` -## Usage - -Below are some examples illustrating typical use cases for the module. - -### Example 1: Converting a Hashtable to a PSCustomObject - -This example demonstrates how to convert a nested hashtable into a PSCustomObject, making it easier to manipulate and explore your data. - -```powershell -$hashtable = @{ - Name = 'Alice' - Age = 30 - Contact = @{ - Email = 'alice@example.com' - Phone = '123-456-7890' - } -} - -$object = $hashtable | ConvertFrom-Hashtable -$object | Format-List -``` - -### Example 2: Merging Hashtables - -Merge a default settings hashtable with user-specified overrides. In this example, the values in the override hashtable -replace those in the main hashtable. - -```powershell -$defaultSettings = @{ - Theme = 'Light' - Language = 'en' - Layout = 'Standard' -} -$userSettings = @{ - Theme = 'Dark' - Layout = 'Compact' -} - -$mergedSettings = $defaultSettings | Merge-Hashtable -Overrides $userSettings -$mergedSettings -``` - -### Example 3: Formatting a Hashtable as PowerShell Code - -Convert a hashtable into a nicely formatted PowerShell code representation. This is especially useful for exporting -configurations to a `.psd1` file. - -```powershell -$configuration = @{ - Server = 'localhost' - Port = 8080 - Credentials = @{ - Username = 'admin' - Password = 'P@ssw0rd' - } - Enabled = $true -} - -$formattedConfig = $configuration | Format-Hashtable -Write-Output $formattedConfig -``` +## Documentation -### Example 4: Removing Hashtable Entries Based on Criteria +Documentation is published at [psmodule.io/Hashtable](https://psmodule.io/Hashtable/). -Remove specific entries from a hashtable, such as keys with null or empty values, or those matching a particular name. +Use PowerShell help and command discovery for module details: ```powershell -$ht = @{ - ValidKey = 'SomeValue' - EmptyKey = '' - RemoveMe = 'Unwanted' -} - -# Remove entries with null or empty values and keys named 'RemoveMe' -$ht | Remove-HashtableEntry -NullOrEmptyValues -Keys 'RemoveMe' -$ht +Get-Command -Module Hashtable +Get-Help -Examples ``` -You can use `Get-Command -Module 'Hashtable'` to list available commands, and `Get-Help -Examples ` to view command-specific examples. - -## Documentation - -Detailed documentation for each function is available via inline help. For more extensive documentation, please visit the -[Hashtable docs](https://psmodule.io/Hashtable/) or [PSModule Docs](https://psmodule.io/docs). - ## Contributing -Coder or not, you can contribute to the project! We welcome all contributions. - -### For Users - -If you don't code, your feedback is invaluable. If you encounter issues, unexpected behaviors, or missing functionality, -please submit a bug report or feature request via the project's issues page. - -### For Developers - -If you code, we'd love to see your contributions. Please review the [Contribution Guidelines](CONTRIBUTING.md) for more details. -You can start by picking up an existing issue or submitting a new one if you have an idea for a new feature or improvement. +Issues and pull requests are welcome. Please use the repository issue tracker to report bugs, request features, or discuss improvements. From 5809ebaeb0858b3dfd3d2378e02fc4e172342484 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 6 Jul 2026 10:41:28 +0200 Subject: [PATCH 2/4] Address Copilot README review --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index fe93142..cb5edcb 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,8 @@ Install-PSResource -Name Hashtable Import-Module -Name Hashtable ``` +If your environment still uses PowerShellGet, install the module with `Install-Module -Name Hashtable` instead. + ## Documentation Documentation is published at [psmodule.io/Hashtable](https://psmodule.io/Hashtable/). @@ -19,7 +21,7 @@ Use PowerShell help and command discovery for module details: ```powershell Get-Command -Module Hashtable -Get-Help -Examples +Get-Help 'CommandName' -Examples ``` ## Contributing From c28f667387d51c0663e06eea9891a63932c7e78a Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 6 Jul 2026 10:49:31 +0200 Subject: [PATCH 3/4] Address Copilot README review --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cb5edcb..f35ecdf 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Use PowerShell help and command discovery for module details: ```powershell Get-Command -Module Hashtable -Get-Help 'CommandName' -Examples +Get-Help ConvertTo-HashTable -Examples ``` ## Contributing From 0883750528e06f66d5a58e03d891141bfbfc2cab Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 6 Jul 2026 10:57:47 +0200 Subject: [PATCH 4/4] Address Copilot README review --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f35ecdf..dacb588 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Use PowerShell help and command discovery for module details: ```powershell Get-Command -Module Hashtable -Get-Help ConvertTo-HashTable -Examples +Get-Help ConvertTo-Hashtable -Examples ``` ## Contributing