Paul Krill
Editor at Large

Deno 1.5 brings faster bundling, tree-shaking

news
Oct 29, 20203 mins

Highlights of the latest upgrade of the Node.js alternative also feature an overhauled REPL and web platform APIs

it as a product boxes glowing box binary package by masterzphotois getty
Credit: masterzphotois / Getty Images

The developers of Deno, which is positioned as a secure runtime for JavaScript and TypeScript and rival to Node.js, have published Deno 1.5, a new version of the platform that improves bundling and REPL capabilities.

The deno bundle command in Deno 1.5 is billed to be as much as 15 times faster than in Deno 1.4, and now uses tree-shaking to remove unused code from the bundle. Also, work has been done to refactor Deno’s TypeScript compiler infrastructure, with aging bundler infrastructure replaced with a new bundler based on the swc TypeScript/JavaScript compiler. Bundles now are emitted as a standard ES module, with dynamic import now working correctly.

Other new features and improvements in Deno 1.5:

  • The REPL (read-eval-print-loop) has undergone major refactoring. It now features tab completion of object properties and methods and code syntax highlighting, with syntax highlighted if a terminal supports colors. Also, top-level await support is offered, with developers able to await promises in the REPL without having to wrap a call in an async IIFE.
  • Stricter type checks in stable, with the isolatedModules TypeScript compiler option enabled by default.
  • Web platform APIs alert, confirm, and prompt have been added. The alert API logs a message to the terminal and synchronously blocks until confirmation. The confirm API prompts the user with a message and synchronously blocks until the user responds, while prompt requests some input form the user and blocks synchronously until the user has entered text and pressed enter.
  • API additions and stabilizations, with Deno.fsync, Deno.fdatasync() and synchronous counterparts stabilized. These are low-level methods to ensure modified file data is written to the disk drive. Two new unstable APIs are introduced, including Deno.sleepSync(), to block the event loop, and Deno.systemCpuInfo(), to get information the number of available cores and CPU speed.
  • deno lint has been updated with a camelcase: rule to check if variable declrations use camelCase formatting. Hints for lint diagnostics are introduced, as well.
  • Changes have been made to std, including renaming the assertStringContains and assertArrayContains methods in std/testing.asserts.ts to asssertStringIncludes and assertArrayIncludes, respectively, to match the naming of the includes method on strings and arrays.
  • The deno fmt --ignore flag now is available without the --unstable flag. The flag can be used to ignore some files or folders from being formatted or checked by the formatter.

Users with earlier versions of Deno installed can run deno upgrade to update to version 1.5. Installation methods for first timers can be found in release notes. Deno was created by Node.js designer Ryan Dahl as a more secure alternative to Node.js. Deno 1.0 arrived in May.

Paul Krill

Paul Krill is editor at large at InfoWorld. Paul has been covering computer technology as a news and feature reporter for more than 35 years, including 30 years at InfoWorld. He has specialized in coverage of software development tools and technologies since the 1990s, and he continues to lead InfoWorld’s news coverage of software development platforms including Java and .NET and programming languages including JavaScript, TypeScript, PHP, Python, Ruby, Rust, and Go. Long trusted as a reporter who prioritizes accuracy, integrity, and the best interests of readers, Paul is sought out by technology companies and industry organizations who want to reach InfoWorld’s audience of software developers and other information technology professionals. Paul has won a “Best Technology News Coverage” award from IDG.

More from this author