{"id":31665375,"url":"https://github.com/freakyali/freakykit.utils","last_synced_at":"2025-10-07T21:56:32.865Z","repository":{"id":315235128,"uuid":"1057215082","full_name":"FreakyAli/FreakyKit.Utils","owner":"FreakyAli","description":null,"archived":false,"fork":false,"pushed_at":"2025-09-17T13:29:22.000Z","size":836,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-09-17T13:29:26.009Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FreakyAli.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-15T12:32:18.000Z","updated_at":"2025-09-17T13:26:53.000Z","dependencies_parsed_at":"2025-09-17T13:29:27.969Z","dependency_job_id":"d6ff7b8b-9162-40bb-82c7-f4fead89b145","html_url":"https://github.com/FreakyAli/FreakyKit.Utils","commit_stats":null,"previous_names":["freakyali/freakykit.utils"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/FreakyAli/FreakyKit.Utils","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreakyAli%2FFreakyKit.Utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreakyAli%2FFreakyKit.Utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreakyAli%2FFreakyKit.Utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreakyAli%2FFreakyKit.Utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FreakyAli","download_url":"https://codeload.github.com/FreakyAli/FreakyKit.Utils/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreakyAli%2FFreakyKit.Utils/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278854213,"owners_count":26057418,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-07T21:56:31.948Z","updated_at":"2025-10-07T21:56:32.858Z","avatar_url":"https://github.com/FreakyAli.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FreakyKit.Utils\n\nA robust and lightweight collection of C# extension methods designed to simplify common programming patterns and utility operations in .NET projects. This library includes extensions for arrays, collections, commands, dates, enumerables, exceptions, lists, numbers, objects, dependency injection, streams, strings, and tasks.\n\n## Features\n\n- Array Extensions: Multi-dimensional array traversal and element-wise actions.\n- Collection Extensions: Simplified range add/remove operations for any collection.\n- Command Extensions: Safe WPF `ICommand` pattern execution.\n- DateTime Extensions: Weekday/weekend checks and workday calculations.\n- Enumerable Extensions: Functional utilities like `WithIndex`, `DistinctBy`, safe list methods, shuffling, and more.\n- Exception Extensions: Deep exception tracing to system logs.\n- List Extensions: High-performance removal, insertion, and binary search.\n- Number Extensions: Generic range checks for all number types.\n- Object Extensions: Cloning, safe type conversions, JSON/XML utilities, and structural comparison.\n- ServiceProvider Extension: Strongly-typed DI service fetching.\n- Stream Extensions: Stream conversions and Base64 encoding/decoding.\n- String Extensions: Text manipulations, Base64, reverse, currency, and validation utilities.\n- Task Extensions: WhenAll with aggregate exceptions, safe result retrieval, and task timeout support.\n\n## Installation\n\nAdd the compiled DLL to your project, or copy the relevant extension files into your solution.\n\n```\ndotnet add package FreakyKit.Utils\n```\n\n## Usage\n\nAdd a using directive to the `FreakyKit.Utils` namespace:\n\n```\nusing FreakyKit.Utils;\n\n// Array: Traverse a 2D array\nmatrix.ForEach((array, position) =\u003e Console.WriteLine(array.GetValue(position)));\n\n// List: Remove items matching a predicate\nmyList.RemoveAll(x =\u003e x.IsObsolete);\n\n// String: Validate email\nbool isValid = \"test@example.com\".IsValidEmail();\n\n// Enumerable: Enumerate with index\nforeach (var (item, idx) in items.WithIndex()) { ... }\n\n// Number: Check range\nbool inRange = age.IsBetween(18, 65);\n\n// DateTime: Find next workday\nDateTime nextWorkday = today.NextWorkday();\n\n// Task: Await with timeout\nawait task.TimeoutAfter(TimeSpan.FromSeconds(10));\n```\n\n\nFor full API details, see the XML comments in each extension method.\n\n## Documentation\n\n- All extension classes are in the `FreakyKit.Utils` namespace.\n- Methods use strong typing, safe defaults, and minimal dependencies.\n- Most methods contain XML documentation accessible via IntelliSense.\n\nI am also planning to either add the documentation here or to the wiki soon. \n\n## Contributing\n\nContributions are welcome! Please submit issues and PRs for bug reports, new utilities, or improvements. All code must follow C# standard naming conventions and include XML documentation.\n\n## License\n\nThis project is released under the MIT License.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreakyali%2Ffreakykit.utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffreakyali%2Ffreakykit.utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreakyali%2Ffreakykit.utils/lists"}