Open
Description
With the 1.0 release quickly approaching done, it is time to make a list of features we would like to see afterwards.
- Core framework
- Application mount support (
app.plugin(mountPlugin, {app: fooApp, path: '/prefix'})
) - Nested helpers (
ctx.foo.bar(...)
) - Custom URL class with better manipulation methods (like
Mojo::URL
) - Express middleware support (maybe as a plugin with request and response object emulation)
- Proxy helpers (
ctx.proxyGet()
,ctx.proxyRequest()
)
- Application mount support (
- Assets
- URL generation (
ctx.urlForAsset('foo.js')
returns/static/assets/foo.abcd1234.js
) - Headers to prevent caching for assets in development mode (
foo.development.js
)
- URL generation (
- Documentation
- Port testing guide to JavaScript
- Port all reference documentation examples to JavaScript
- Form validation with JSON schema
- Many more recipes for the cookbook (including all from Mojolicious)
- Reference documentation for classes (needs to be generated on the website)
- WebSockets
- Support for custom headers in handshake (client and server)
- Support for subprotocol negotiation from action
- Reconnect feature for the client
- Client
- Switch to @mojojs/user-agent (more WHATWG APIs)
- UNIX domain sockets (
http+unix://...
) - HTTP/2 support (we might just support it via the fetch API)
- HTTP/3 support (:no_entry_sign: not yet in Node.js)
- Server:
- UNIX domain sockets (
http+unix://...
) - HTTP/2 support (:warning: tricky because of WebSockets)
- HTTP/3 support (:no_entry_sign: not yet in Node.js)
- Server-Sent Events (provide an actual API)
- UNIX domain sockets (
- Renderer
- Port all the tag helpers
-
colorFieldTag
-
dateFieldTag
-
datetimeFieldTag
-
emailFieldTag
-
fileFieldTag
-
hiddenFieldTag
-
labelFor
-
monthFieldTag
-
numberFieldTag
-
passwordFieldTag
-
rangeFieldTag
-
searchFieldTag
-
selectFieldTag
(⚠️ quite complex) -
telFieldTag
-
textFieldTag
-
timeFieldTag
-
urlFieldTag
-
weekFieldTag
-
- Port all the tag helpers
- Example apps
- Chat (ported from Perl)
- TypeScript
- Updated app generator commands with TypeScript support
- Update plugin generator command with TypeScript support (
--ts
flag)
- Command line
-
perl -Mojo -E '...'
equivalent (something better thannpx mojo eval -v '...'
?)
-