{"id":13457598,"url":"https://github.com/nestjsx/crud","last_synced_at":"2025-05-13T17:10:34.517Z","repository":{"id":37285993,"uuid":"133998889","full_name":"nestjsx/crud","owner":"nestjsx","description":"NestJs CRUD for RESTful APIs","archived":false,"fork":false,"pushed_at":"2024-07-16T21:43:39.000Z","size":2431,"stargazers_count":4185,"open_issues_count":290,"forks_count":562,"subscribers_count":59,"default_branch":"master","last_synced_at":"2025-04-17T20:14:51.241Z","etag":null,"topics":["crud","crud-generator","nest","nestjs","restful-api","typeorm","typescript"],"latest_commit_sha":null,"homepage":"https://github.com/nestjsx/crud/wiki","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/nestjsx.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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},"funding":{"github":null,"patreon":null,"open_collective":"nestjsx","ko_fi":null,"tidelift":"npm/@nestjsx/crud","community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2018-05-18T20:03:38.000Z","updated_at":"2025-04-17T13:47:10.000Z","dependencies_parsed_at":"2024-11-06T23:01:46.267Z","dependency_job_id":null,"html_url":"https://github.com/nestjsx/crud","commit_stats":{"total_commits":411,"total_committers":45,"mean_commits":9.133333333333333,"dds":"0.35036496350364965","last_synced_commit":"d6d3c4ebd844d543ab71b494d424660c448a9d42"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nestjsx%2Fcrud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nestjsx%2Fcrud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nestjsx%2Fcrud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nestjsx%2Fcrud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nestjsx","download_url":"https://codeload.github.com/nestjsx/crud/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250348667,"owners_count":21415898,"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":["crud","crud-generator","nest","nestjs","restful-api","typeorm","typescript"],"created_at":"2024-07-31T09:00:31.045Z","updated_at":"2025-04-23T23:26:59.672Z","avatar_url":"https://github.com/nestjsx.png","language":"TypeScript","funding_links":["https://opencollective.com/nestjsx","https://tidelift.com/funding/github/npm/@nestjsx/crud"],"categories":["TypeScript","Servers","资源","\u003e 5K ⭐️"],"sub_categories":["Node.js","组件和库"],"readme":"[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine/)\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003e:point_right:\u003ca href=\"https://github.com/nestjsx/crud/issues/784\"\u003eYou can help NestJs CRUD\n  \u003c/a\u003e\u003c/h1\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003eCRUD\u003c/h1\u003e\n\u003c/div\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003cstrong\u003efor RESTful APIs built with NestJs\u003c/strong\u003e\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/vshymanskyy/StandWithUkraine/blob/main/docs/README.md\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg\" alt=\"StandWithUkraine\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://travis-ci.org/nestjsx/crud\"\u003e\n    \u003cimg src=\"https://github.com/nestjsx/crud/workflows/Tests/badge.svg\" alt=\"Build\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://coveralls.io/github/nestjsx/crud?branch=master\"\u003e\n    \u003cimg src=\"https://coveralls.io/repos/github/nestjsx/crud/badge.svg\" alt=\"Coverage\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/nestjsx/crud/blob/master/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/nestjsx/crud.svg\" alt=\"License\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@nestjsx/crud\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/v/@nestjsx/crud.svg\" alt=\"npm version\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/org/nestjsx\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/dm/@nestjsx/crud.svg\" alt=\"npm downloads\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"http://makeapullrequest.com\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square\" alt=\"PRs welcome\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/marmelab/awesome-rest#nodejs\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/nestjsx/crud/master/img/awesome-rest.svg?sanitize=true\" alt=\"Awesome REST\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"#individuals\" alt=\"Sponsors on Open Collective\"\u003e\n    \u003cimg src=\"https://opencollective.com/nestjsx/backers/badge.svg\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"#organizations\" alt=\"Sponsors on Open Collective\"\u003e\n    \u003cimg src=\"https://opencollective.com/nestjsx/sponsors/badge.svg\" /\u003e\n  \u003c/a\u003e \n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003csub\u003eBuilt with :purple_heart: by\n  \u003ca href=\"https://twitter.com/MichaelYali\"\u003e@MichaelYali\u003c/a\u003e and\n  \u003ca href=\"https://github.com/nestjsx/crud/graphs/contributors\"\u003e\n    Contributors\n  \u003c/a\u003e\n  \u003cdiv align=\"center\"\u003e\n    :star2: :eyes: :zap: :boom:\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\nWe believe that everyone who's working with NestJs and building some RESTful services and especially some CRUD functionality will find `@nestjsx/crud` microframework very useful.\n\n## Features\n\n\u003cimg align=\"right\" src=\"img/crud-usage2.png\" alt=\"CRUD usage\" /\u003e\n\n- :electric_plug: Super easy to install and start using the full-featured controllers and services :point_right:\n\n- :octopus: DB and service agnostic extendable CRUD controllers\n\n- :mag_right: Reach query parsing with filtering, pagination, sorting, relations, nested relations, cache, etc.\n\n- :telescope: Framework agnostic package with query builder for a frontend usage\n\n- :space_invader: Query, path params and DTOs validation included\n\n- :clapper: Overriding controller methods with ease\n\n- :wrench: Tiny config (including globally)\n\n- :gift: Additional helper decorators\n\n- :pencil2: Swagger documentation\n\n## Packages\n\n- [**@nestjsx/crud**](https://www.npmjs.com/package/@nestjsx/crud) - core package which provides `@Crud()` decorator for endpoints generation, global configuration, validation, helper decorators ([docs](https://github.com/nestjsx/crud/wiki/Controllers#description))\n- [**@nestjsx/crud-request**](https://www.npmjs.com/package/@nestjsx/crud-request) - request builder/parser package which provides `RequestQueryBuilder` class for a frontend usage and `RequestQueryParser` that is being used internally for handling and validating query/path params on a backend side ([docs](https://github.com/nestjsx/crud/wiki/Requests#frontend-usage))\n- [**@nestjsx/crud-typeorm**](https://www.npmjs.com/package/@nestjsx/crud-typeorm) - TypeORM package which provides base `TypeOrmCrudService` with methods for CRUD database operations ([docs](https://github.com/nestjsx/crud/wiki/ServiceTypeorm))\n\n## Documentation\n\n- :dart: [General Information](https://github.com/nestjsx/crud/wiki#why)\n- :video_game: [CRUD Controllers](https://github.com/nestjsx/crud/wiki/Controllers#description)\n- :horse_racing: [CRUD ORM Services](https://github.com/nestjsx/crud/wiki/Services#description)\n- :trumpet: [Handling Requests](https://github.com/nestjsx/crud/wiki/Requests#description)\n\n## Support\n\nAny support is welcome. At least you can give us a star :star:\n\n## Contributors\n\n### Code Contributors\n\nThis project exists thanks to all the people who contribute. [[Contribute](CODE_OF_CONDUCT.md)].\n\u003ca href=\"https://github.com/nestjsx/crud/graphs/contributors\"\u003e\u003cimg src=\"https://opencollective.com/nestjsx/contributors.svg?width=890\u0026button=false\" /\u003e\u003c/a\u003e\n\n### Financial Contributors\n\nBecome a financial contributor and help us sustain our community. [[Contribute](https://opencollective.com/nestjsx#backer)]\n\n#### Individuals\n\n\u003ca href=\"https://opencollective.com/nestjsx#backers\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/nestjsx/backers.svg?width=890\u0026button=false\"\u003e\u003c/a\u003e\n\n#### Organizations\n\nSupport this project with your organization. Your logo will show up here with a link to your website. [[Contribute](https://opencollective.com/nestjsx#sponsor)]\n\n\u003ca href=\"https://opencollective.com/nestjsx/sponsor/0/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/nestjsx/sponsor/0/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/nestjsx/sponsor/1/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/nestjsx/sponsor/1/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/nestjsx/sponsor/2/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/nestjsx/sponsor/2/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/nestjsx/sponsor/3/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/nestjsx/sponsor/3/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/nestjsx/sponsor/4/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/nestjsx/sponsor/4/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/nestjsx/sponsor/5/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/nestjsx/sponsor/5/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/nestjsx/sponsor/6/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/nestjsx/sponsor/6/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/nestjsx/sponsor/7/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/nestjsx/sponsor/7/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/nestjsx/sponsor/8/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/nestjsx/sponsor/8/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/nestjsx/sponsor/9/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/nestjsx/sponsor/9/avatar.svg\"\u003e\u003c/a\u003e\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnestjsx%2Fcrud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnestjsx%2Fcrud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnestjsx%2Fcrud/lists"}