Unveiled April 28, Deno 1.33 takes steps toward meeting the goals of Deno 2.0, which is due in coming months. These goals include “effortless” coding, “best in class” performance, and “uncompromising” security.
Also with Deno 1.33, the deno.json schema has been flattened to make it easier to read and write. Nested options such as “lint.files.exclude” or “fmt.options.lineWidth” now are available at the top level of their respective sections.
As a quality-of-life improvement, Deno 1.33 allows for fewer permission checks for dynamic imports, improving startup time. This change will make it easier to conditionally execute some code in certain conditions, such as when developers have a CLI tool with many subcommands and they want to conditionally load handlers only when the subcommand is invoked. Other use cases include only loading a polyform when needed and executing debugging code in a server application only when an environmental variable is present.
Deno 1.33 can be installed from deno.com. Other features in Deno 1.33 include:
- To improve performance, overhauls have been made to the HTTP server and the client and server for WebSockets. Work continues on improving these.
- For NPM and Node compatibility, node:crypto, node:http, and node:vm capabilities have been improved since the last release.
- Pre-loading of files occurs when initializing the language server, mitigating a situation where certain functionality did not work unless a file had been opened.
- For the CLI, a new –-no-run flag has been added to the deno bench subcommand to cache resolved bench files without running them. Also, a cross-platform unset command was added to the shell in deno task to allow deletion of environment and shell variables.
- The Deno.run API is being deprecated. With the stabilization of the Deno.Command API in Deno 1.31, Deno.Command is now the recommended way to spawn subprocesses.
Deno 1.33 follows the March 2023 release of Deno 1.32, which offered enhanced Node.js compatibility, and Deno 1.32.1, which fixed a critical security issue pertaining to the improper handling of the resizable ArrayBuffer in async built-in functions.
Copyright © 2023 IDG Communications, Inc.