holidayextras / jsonapi-server

A config driven NodeJS framework implementing json:api and GraphQL
MIT License
488 stars 115 forks source link

info: I am maintaining a fork at `@jagql/framework` #407

Open championswimmer opened 6 years ago

championswimmer commented 6 years ago

Information

Package: https://npmjs.com/@jagql/framework Repo: https://github.com/jagql/framework

Motivation

I have been using jsonapi-server in my projects for quite some time now.
While I have huge, huge respect for everyone from holidayextras who has worked hard and made this great project possible, I think recently, there has been a bit of slowdown. There are many features and issues that can be added/fixed, and there are many PRs lying, which the maintainers are not having time to review and update (I can understand there must be other work, holidayextras is a big company, so I am not criticizing).

I have even been contributing a lot of PRs to both jsonapi-server and jsonapi-store-sequelize but I think the speed of things getting updated has been slow

Differences

Differences are noted here https://github.com/jagql/framework#differences-from-upstream And in changelog https://github.com/jagql/framework/blob/master/CHANGELOG.md

uuid + autoincrement support

Both uuid and autoincrement is supported (even in foreignkey relations handled properly) ids can be generated by client or provided by server

Typescript support

https://github.com/jagql/framework/tree/master/types It has full Typedefinitions, to give 100% autocomplete and type linting support for those who use TS to build nodejs projects

Merged PRs

  1. https://github.com/holidayextras/jsonapi-server/pull/311 pagination for nested resources
  2. https://github.com/holidayextras/jsonapi-server/pull/366 body parser options (now merged here too)
  3. https://github.com/holidayextras/jsonapi-server/pull/367 crud op detection fix (now merged here too)
  4. https://github.com/holidayextras/jsonapi-server/pull/274 expose req, res to handler
  5. https://github.com/holidayextras/jsonapi-server sort and filter skipping in handlers
  6. https://github.com/holidayextras/jsonapi-server/pull/277 async validation - huge perf increase

Other improvements

  1. https://github.com/jagql/framework/commit/94a6d0cc5d7d3ab2ab22cd305d2fd40557452ebe GrqphQL object type fixed
  2. https://github.com/jagql/framework/commit/e4f513d2dee877ffd422415998cc78e6990b7f27 handlers are es6 classes, can be extended
  3. https://github.com/jagql/framework/commit/33812c0cdfbcbabb9ea7c7c52c0c5cd0b9275f49 fix error code for id not found (was not jsonapi spec compliant earlier)

Roadmap

Things I intend to work on in immediate future

Collaboration

I an assure and promise I will continue to send PRs to this repository to help keep this maintained. Also if the maintainers want to merge the fork back in this, I would love to help out on that. The changes are backwards compatible, and it is not hard to upgrade from jsonapi-server to jagql. If jagql is merged back into this, and speed of development increases I would love that the most.

championswimmer commented 6 years ago

cc @slickmb @wolfgang42 Many of the PRs I have cherry picked that were unmerged here were from you. I would like to thank you guys for those PRs ❤️

paparomeo commented 6 years ago

Thanks for reaching out @championswimmer. I'm going to consult internally about the possibility of handing over the maintenance of the project to you.

Redsandro commented 6 years ago

I'm split between two worlds. @championswimmer included some interesting features, but the version here has support for mongodb.

championswimmer commented 6 years ago

As an update I have set up docs for the fork here https://jagql.github.io/docs/ (using a lot of markdown files from this repo itself). It is a bit more accessible and readable than those here