{"id":22568511,"url":"https://github.com/expressots/boost-ts","last_synced_at":"2025-04-10T12:34:51.864Z","repository":{"id":143393003,"uuid":"615147909","full_name":"expressots/boost-ts","owner":"expressots","description":"Boost a set of libraries for the Typescript programming language that extends the language capability in several areas","archived":false,"fork":false,"pushed_at":"2024-09-17T20:33:41.000Z","size":40,"stargazers_count":10,"open_issues_count":4,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-02T21:42:22.116Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/expressots.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2023-03-17T03:42:09.000Z","updated_at":"2024-11-20T17:47:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"d977160a-d954-41c5-a4b6-a18503aba62f","html_url":"https://github.com/expressots/boost-ts","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressots%2Fboost-ts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressots%2Fboost-ts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressots%2Fboost-ts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressots%2Fboost-ts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/expressots","download_url":"https://codeload.github.com/expressots/boost-ts/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247704579,"owners_count":20982299,"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","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":"2024-12-08T00:13:31.685Z","updated_at":"2025-04-10T12:34:51.826Z","avatar_url":"https://github.com/expressots.png","language":"TypeScript","funding_links":["https://github.com/sponsors/expressots"],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n\u003c!-- PROJECT SHIELDS --\u003e\n\n[![Codecov][codecov-shield]][codecov-url]\n[![NPM][npm-shield]][npm-url]\n![Build][build-shield]\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![MIT License][license-shield]][license-url]\n[![LinkedIn][linkedin-shield]][linkedin-url]\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/othneildrew/Best-README-Template\"\u003e\n    \u003cimg src=\"https://github.com/expressots/expressots/blob/main/media/expressots.png\" alt=\"Logo\" width=\"120\"\u003e\n  \u003c/a\u003e\n\n  \u003ch3 align=\"center\"\u003eExpressoTS Framework\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    Everything you need to know to build applications with ExpressoTS\n    \u003cbr /\u003e\n    \u003ca href=\"https://doc.expresso-ts.com/\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/expressots/expressots/discussions\"\u003eLet's discuss\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/expressots/expressots/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/expressots/expressots/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#support-the-project\"\u003eSupport the project\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n\n# About The Project\n\nExpressoTS is a [Typescript](https://www.typescriptlang.org/) + [Node.js](https://nodejs.org/en/) lightweight framework for quick building scalable, easy to read and maintain, server-side applications 🐎\n\n## Getting Started\n\n-   Here is our [Site](https://expresso-ts.com/)\n-   You can find our [Documentation here](https://doc.expresso-ts.com/)\n-   Checkout our [First Steps documentation](https://doc.expresso-ts.com/docs/overview/first-steps)\n-   Our [CLI Documentation](https://doc.expresso-ts.com/docs/cli/overview)\n\n## Boost-TS\n\nBoost is a collection of libraries for the TypeScript programming language designed to enhance its capabilities across various domains. These libraries provide a wide range of functionality, enabling developers to leverage the full potential of TypeScript and streamline their development process. With Boost, TypeScript developers can efficiently tackle complex tasks, improve code readability, and maintainability, while also benefiting from advanced features and best practices.\n\n## Available Libraries\n\n-   Match Pattern\n-   Optional Pattern\n\n## Installation\n\n```bash\nnpm i @expressots/boost-ts\n```\n\n## Match Pattern Usage\n\n-   Using Match pattern with enums\n\n```typescript\nimport { match } from \"./match-pattern\";\n\nconst enum Coin {\n    Penny,\n    Nickel,\n    Dime,\n    Quarter,\n}\n\nfunction valueInCents(coin: Coin): number {\n    return match(coin, {\n        [Coin.Penny]: () =\u003e 1,\n        [Coin.Nickel]: () =\u003e 5,\n        [Coin.Dime]: () =\u003e 10,\n        [Coin.Quarter]: () =\u003e 25,\n    });\n}\n\nconsole.log(valueInCents(Coin.Penny)); // 1\n```\n\n-   Using Match pattern with numbers\n\n```typescript\nlet isNumber: number = 1;\n\nconst result = match(isNUmber, {\n    1: () =\u003e 1,\n    2: () =\u003e 2,\n    _: () =\u003e \"No number found\",\n});\n\nconsole.log(result); // 1\n```\n\n-   Using Match pattern with boolean\n\n```typescript\nlet isOn: boolean = true;\n\nconst result = match(isOn, {\n    true: () =\u003e \"The light is on\",\n    false: () =\u003e \"The light is off\",\n});\n\nconsole.log(result); // The light is off\n```\n\n-   Using Match pattern with Optional pattern\n\n```typescript\nimport { Some, None, Optional, matchOptional } from \"./optional-pattern\";\nimport { match } from \"./match-pattern\";\n\nconst v1: Optional\u003cnumber\u003e = Some(1);\nconst v2: Optional\u003cnumber\u003e = None();\n\nconst result = match(v1, {\n    Some: (x) =\u003e x + 1,\n    None: 0,\n});\n\nconsole.log(result); // 2\n```\n\n-   Other possible combinations\n    -   \"expressions..=expressions\" -\u003e numbers or characters\n    -   \"isOr: this | that | other\"\n    -   \"Regex: \"/[a-z]/\"\n\n```typescript\nconst result = match(\"a\", {\n    \"1..=13\": () =\u003e \"Between 1 and 13\",\n    \"25 | 50 | 100\": () =\u003e \"A bill\",\n    \"a..=d\": () =\u003e \"A letter\",\n    \"/[a-z]/\": () =\u003e \"A lowercase letter\",\n    _: () =\u003e \"Default\",\n});\nconsole.log(result); // A letter\n```\n\n## Optional Pattern Usage\n\n```typescript\nconst someValue: Optional\u003cnumber\u003e = Some(1);\n\nfunction plusOne(x: Optional\u003cnumber\u003e): number {\n    return match(x, {\n        Some: (x) =\u003e x + 3,\n        None: 0,\n    });\n}\n\nconsole.log(plusOne(None())); // 0\n```\n\n## Contributing\n\nWelcome to the ExpressoTS community, a place bustling with innovative minds just like yours. We're absolutely thrilled to have you here!\nExpressoTS is more than just a TypeScript framework; it's a collective effort by developers who are passionate about creating a more efficient, secure, and robust web ecosystem. We firmly believe that the best ideas come from a diversity of perspectives, backgrounds, and skills.\n\nWhy Contribute to Documentation?\n\n-   **Share Knowledge**: If you've figured out something cool, why keep it to yourself?\n-   **Build Your Portfolio**: Contributing to an open-source project like ExpressoTS is a great way to showcase your skills.\n-   **Join a Network**: Get to know a community of like-minded developers.\n-   **Improve the Product**: Help us fill in the gaps, correct errors, or make complex topics easier to understand.\n\nReady to contribute?\n\n-   [Contributing Guidelines](https://github.com/expressots/expressots/blob/main/CONTRIBUTING.md)\n-   [How to Contribute](https://github.com/expressots/expressots/blob/main/CONTRIBUTING_HOWTO.md)\n-   [Coding Guidelines](https://github.com/rsaz/TypescriptCodingGuidelines)\n\n## Support the project\n\nExpressoTS is an independent open source project with ongoing development made possible thanks to your support. If you'd like to help, please consider:\n\n-   Become a **[sponsor on GitHub](https://github.com/sponsors/expressots)**\n-   Follow the **[organization](https://github.com/expressots)** on GitHub and Star ⭐ the project\n-   Subscribe to the Twitch channel: **[Richard Zampieri](https://www.twitch.tv/richardzampieri)**\n-   Join our **[Discord](https://discord.com/invite/PyPJfGK)**\n-   Contribute submitting **[issues and pull requests](https://github.com/expressots/expressots/issues)**\n-   Share the project with your friends and colleagues\n\n## License\n\nDistributed under the MIT License. See [`LICENSE.txt`](https://github.com/expressots/expressots/blob/main/LICENSE) for more information.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n\n[codecov-url]: https://codecov.io/gh/expressots/boost-ts\n[codecov-shield]: https://img.shields.io/codecov/c/gh/expressots/boost-ts/main?style=for-the-badge\u0026logo=codecov\u0026labelColor=FB9AD1\n[npm-url]: https://www.npmjs.com/package/@expressots/boost-ts\n[npm-shield]: https://img.shields.io/npm/v/@expressots/boost-ts?style=for-the-badge\u0026logo=npm\u0026color=9B3922\n[build-shield]: https://img.shields.io/github/actions/workflow/status/expressots/boost-ts/build.yaml?branch=main\u0026style=for-the-badge\u0026logo=github\n[contributors-shield]: https://img.shields.io/github/contributors/expressots/boost-ts?style=for-the-badge\n[contributors-url]: https://github.com/expressots/boost-ts/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/expressots/boost-ts?style=for-the-badge\n[forks-url]: https://github.com/expressots/boost-ts/forks\n[stars-shield]: https://img.shields.io/github/stars/expressots/boost-ts?style=for-the-badge\n[stars-url]: https://github.com/expressots/boost-ts/stargazers\n[issues-shield]: https://img.shields.io/github/issues/expressots/boost-ts?style=for-the-badge\n[issues-url]: https://github.com/expressots/boost-ts/issues\n[license-shield]: https://img.shields.io/github/license/expressots/boost-ts?style=for-the-badge\n[license-url]: https://github.com/expressots/boost-ts/blob/main/LICENSE\n[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge\u0026logo=linkedin\u0026colorB=555\n[linkedin-url]: https://www.linkedin.com/company/expresso-ts/\n[product-screenshot]: images/screenshot.png\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexpressots%2Fboost-ts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexpressots%2Fboost-ts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexpressots%2Fboost-ts/lists"}