
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 toawait
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
, andprompt
have been added. Thealert
API logs a message to the terminal and synchronously blocks until confirmation. Theconfirm
API prompts the user with a message and synchronously blocks until the user responds, whileprompt
requests some input form the user and blocks synchronously until the user has entered text and pressedenter
. - 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, includingDeno.sleepSync()
, to block the event loop, andDeno.systemCpuInfo()
, to get information the number of available cores and CPU speed. deno lint
has been updated with acamelcase:
rule to check if variable declrations usecamelCase
formatting. Hints for lint diagnostics are introduced, as well.- Changes have been made to std, including renaming the a
ssertStringContains
andassertArrayContains
methods in std/testing.asserts.ts toasssertStringIncludes
andassertArrayIncludes
, respectively, to match the naming of theincludes
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.