feat(deno): Feathers for Deno core build #2299
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request adds a Feathers core build for Deno (#1964), a secure runtime for JavaScript and TypeScript applications. Just like NodeJS, the browser or React Native it is another runtime that Feathers now supports and will also provide a server side (HTTP and Websocket) transport for. To my knowledge, this will make it the first web framework to run on both platforms. Why reinvent the wheel for things that are working well?
Why Deno?
Deno is interesting for Feathers for the following reasons:
npm install
s,package.json
or module installations scripts. This makes deployments significantly faster and easier. Just tell a Deno VM the URL to your main module your app will start up. 🚀It is also allows kind of a "Back To the Basics" for the lightweight nature that Feathers always had. For some reason it seems that all the available ORM and database integrations have made it look much more heavy and limited than it actually is. With Deno you will (for now) write your own services from scratch just like you would do with any other middleware based framework and Feathers will do what it does best which is provide you with the API layer (including the client!).
Usage
This pull request specifically focussed the core module which - once published - can be used like this:
Currently it also still needs a
tsconfig.json
withstrictNullChecks: false
: