Deno 1.43 Brings Significant Boosts to Language Server Efficiency with Faster Auto-Completion and Better Memory Usage
With the release of Deno 1.43, significant advancements have been made to enhance the performance and usability of the language server, making it a more powerful tool for developers working with JavaScript and TypeScript. This update, available from May 1, is set to improve both auto-completion speed and memory efficiency, addressing some of the key performance issues developers have faced.
One of the most notable improvements in Deno 1.43 is the reworked language server, also known as Deno LSP. This upgrade drastically reduces the time required for auto-completion in larger projects, cutting down the wait from six to eight seconds to under one second. This change is a major boost for developers working with extensive codebases, allowing for a more seamless and responsive coding experience. Additionally, the update resolves previous memory consumption issues, eliminating out-of-memory errors that some projects encountered with the language server.
The update also brings enhancements to JSX transform capabilities. Developers can now use the jsxPrecompileSkipElements
compiler option to prevent certain elements from being precompiled, which allows for more flexibility in passing additional properties. Another new feature is the jsxImportSourceTypes
pragma and compiler option, which helps specify types for automatic JSX transforms. This is particularly beneficial when working with libraries that do not include their own types.
Compatibility improvements with Node.js and NPM are also part of the Deno 1.43 release. Key modules like node:worker_threads
and node.vm
, which are essential for tools and test runners such as Vitest, Jest, and Docusaurus, have been enhanced to ensure better integration and functionality.
In addition to these core updates, Deno 1.43 introduces several quality-of-life improvements. The new deno serve
subcommand simplifies server creation by allowing developers to write servers declaratively. The Deno Standard Library, deno.std
, continues to progress towards stabilization. V8 caching has been added to speed up JavaScript module parsing and compiling. The deno.serve()
function now provides more detailed information about response success and failures, and a new URL.parse()
Web API offers a streamlined approach to URL parsing. To help with future updates, developers can use the DENO_FUTURE=1
environment variable to test compatibility with upcoming breaking changes planned for Deno 2.
Overall, Deno 1.43 marks a significant step forward in improving the developer experience, offering faster performance, enhanced compatibility, and additional features that streamline development workflows.