{"id":19842884,"url":"https://github.com/deemp/servant-queryparam","last_synced_at":"2025-09-18T12:30:46.479Z","repository":{"id":168634469,"uuid":"644292676","full_name":"deemp/servant-queryparam","owner":"deemp","description":"Use records to specify query parameters in servant APIs","archived":false,"fork":false,"pushed_at":"2023-10-06T01:00:01.000Z","size":87,"stargazers_count":3,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-12T12:52:14.587Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deemp.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}},"created_at":"2023-05-23T08:12:39.000Z","updated_at":"2024-03-25T10:27:56.000Z","dependencies_parsed_at":"2023-09-24T04:01:25.048Z","dependency_job_id":null,"html_url":"https://github.com/deemp/servant-queryparam","commit_stats":null,"previous_names":["deemp/servant-queryparam"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deemp%2Fservant-queryparam","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deemp%2Fservant-queryparam/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deemp%2Fservant-queryparam/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deemp%2Fservant-queryparam/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deemp","download_url":"https://codeload.github.com/deemp/servant-queryparam/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233478611,"owners_count":18682235,"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-11-12T12:35:56.246Z","updated_at":"2025-09-18T12:30:40.652Z","avatar_url":"https://github.com/deemp.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# servant-queryparam\n\nProvides packages that let you use records to specify query parameters in [servant](https://hackage.haskell.org/package/servant) APIs.\n\nThese packages are:\n\n- [servant-queryparam-core](./servant-queryparam-core)\n- [servant-queryparam-server](./servant-queryparam-server)\n- [servant-queryparam-client](./servant-queryparam-client)\n- [servant-queryparam-openapi3](./servant-queryparam-openapi3)\n\nHere's an example of a server:\n\n- [servant-queryparam-core-example](./example/Main.hs)\n\n## Background\n\nPackages in this repo are based on the following packages:\n\n- [named-servant](https://github.com/kuribas/named-servant)\n- [named-servant-server](https://github.com/kuribas/named-servant-server)\n- [named-servant-client](https://github.com/kuribas/named-servant-client)\n\n## Build\n\nYou can build all packages using `cabal-install`.\n\n```console\ncabal build all\n```\n\n## Nix flake\n\nThis repository provides a `Nix` flake with development tools and Nix derivations of `servant-queryparam-*` libraries.\n\n### Prerequisites\n\n\u003cdetails\u003e\n\n  \u003csummary\u003eSpoiler\u003c/summary\u003e\n\n- [flake.nix](./flake.nix) - code in this flake is extensively commented.\n- [language-tools/haskell](https://github.com/deemp/flakes/blob/main/language-tools/haskell/flake.nix) - a flake that conveniently provides `Haskell` tools.\n- [Conventions](https://github.com/deemp/flakes/blob/main/README/Conventions.md#dev-tools) - I recommended to use this flake just for development. For packaging an app, make another flake with a limited number of inputs to reduce the `flake.lock` size.\n\nSee these for additional info:\n\n- [codium-generic](https://github.com/deemp/flakes/tree/main/templates/codium/generic#readme) - info just about `VSCodium` with extensions.\n- [codium-haskell](https://github.com/deemp/flakes/tree/main/templates/codium/haskell#readme) - an advanced version of this flake.\n  - Shows how to build a static binary from your package and how to make a Docker image with it.\n- [Haskell](https://github.com/deemp/flakes/blob/main/README/Haskell.md) - general info about `Haskell` tools.\n- [Troubleshooting](https://github.com/deemp/flakes/blob/main/README/Troubleshooting.md)\n- [Prerequisites](https://github.com/deemp/flakes#prerequisites)\n- [Nixpkgs support for incremental Haskell builds](https://www.haskellforall.com/2022/12/nixpkgs-support-for-incremental-haskell.html)\n- [flakes](https://github.com/deemp/flakes#readme) - my Nix flakes that may be useful for you.\n\n\u003c/details\u003e\n\n### Quick start\n\n1. Install Nix - see [how](https://github.com/deemp/flakes/blob/main/README/InstallNix.md).\n\n1. In a new terminal, start a devshell and build all packages.\n\n    ```console\n    nix develop\n    cabal build all\n    ```\n\n1. (Optionally) Write `settings.json` and start `VSCodium`.\n\n    ```console\n    nix run .#writeSettings\n    nix run .#codium .\n    ```\n\n1. (Optionally) Open a `Haskell` file and hover over a function.\n\n1. (Optionally) Wait until `Haskell Language Server` (`HLS`) starts giving you type info.\n\n## Configs\n\n- [package.yaml](./package.yaml) - used by `stack` or `hpack` to generate a `.cabal`\n- [.markdownlint.jsonc](./.markdownlint.jsonc) - for `markdownlint` from the extension `davidanson.vscode-markdownlint`\n- [.envrc](./.envrc) - for [direnv](https://github.com/direnv/direnv)\n- [fourmolu.yaml](./fourmolu.yaml) - for [fourmolu](https://github.com/fourmolu/fourmolu#configuration)\n- [ci.yaml](.github/workflows/ci.yaml) - a generated `GitHub Actions` workflow. See [workflows](https://github.com/deemp/flakes/tree/main/workflows). Generate a workflow via `nix run .#writeWorkflows`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeemp%2Fservant-queryparam","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeemp%2Fservant-queryparam","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeemp%2Fservant-queryparam/lists"}