With newly introduced Deno 1.43, the developers of the JavaScript/TypeScript runtime have enhanced its language server, speeding up auto-completion performance and improving memory consumption.
Introduced May 1, Deno 1.43 can be accessed via running the deno upgrade
command in a terminal.
Deno Land developers have reworked many aspects of the Deno language server, commonly referred to as Deno LSP, which provides auto-completion in the editor and other capabilities. With Deno 1.43, auto-completion now takes less than one second in larger projects when it used to take six to eight seconds, Deno Land said. As for memory consumption, projects that previously caused out-of-memory errors in the LSP now operate without issue.
Deno 1.43 brings two improvements to the JSX transform. Developers now can use the jsxPrecompileSkipElements
compiler option to prevent an element from being precompiled to allow passing additional properties to it. Also, a new jsxImportSourceTypes
pragma and compiler option allows for specifying types for automatic JSX transform. This is considered useful to use with libraries that do not provide their types, Deno Land said.
Deno 1.43 also addresses compatibility with Node.js and NPM with key improvements around node:worker_threads
and node.vm
modules, both of which are used in test runners such as Vitest and Jest and in tools such as Docusaurus.
Other improvements in Deno 1.43:
- The new
deno serve
subcommand allows developers to write servers in a declarative way. - The Deno Standard Library,
deno.std
, moves closer to stabilization. - Support for V8 caching, also known as bytecode caching, can significantly improve the time an application spends on parsing and compiling JavaScript modules.
- Updates to
deno.serve()
allow developers to get information if the response was sent successfully or if there was a failure using the Deno.ServeHandlerInfo.completed promise. Also, the AbortSignalcode attached to theRequest
argument always will be aborted when a transaction finishes, whether by the client closing the connection or the server sending the response. - A quality-of-life improvement makes it easier to get the server address from
Deno.serve
. Developers can add a newaddrcode
property on the server instance. - A new Web API,
URL.parse()
, offers a simpler control flow when developers need to parse URLs. - In anticipation of the planned Deno 2 release, breaking changes for Deno 2 have been put behind the
DENO_FUTURE=1
environment variable. Developers can enable it to test compatibility of a project with Deno 2.
Copyright © 2024 IDG Communications, Inc.