Dev

Deno boosts language server performance


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 the Request 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 new addrcode 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.



READ SOURCE

This website uses cookies. By continuing to use this site, you accept our use of cookies.