惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Forbes - Security
Forbes - Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
F
Fortinet All Blogs
B
Blog
T
The Blog of Author Tim Ferriss
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
Y
Y Combinator Blog
Microsoft Azure Blog
Microsoft Azure Blog
L
LangChain Blog
Recent Announcements
Recent Announcements
U
Unit 42
Martin Fowler
Martin Fowler
M
MIT News - Artificial intelligence
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The Register - Security
The Register - Security
Recorded Future
Recorded Future
C
Check Point Blog
V
V2EX
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
Google DeepMind News
Google DeepMind News
酷 壳 – CoolShell
酷 壳 – CoolShell
F
Full Disclosure
小众软件
小众软件
A
About on SuperTechFans
云风的 BLOG
云风的 BLOG
宝玉的分享
宝玉的分享
Last Week in AI
Last Week in AI
有赞技术团队
有赞技术团队
MongoDB | Blog
MongoDB | Blog
爱范儿
爱范儿
P
Proofpoint News Feed
罗磊的独立博客
量子位
D
Docker
博客园_首页
D
DataBreaches.Net
Project Zero
Project Zero
博客园 - 司徒正美
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园 - Franky
Security Latest
Security Latest
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
N
Netflix TechBlog - Medium
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - 三生石上(FineUI控件)
H
Hackread – Cybersecurity News, Data Breaches, AI and More
大猫的无限游戏
大猫的无限游戏

Deno

Deno 2.8 | Deno Claw Patrol: an open-source security firewall for agents | Deno Fresh 2.3: Zero JS by default, View Transitions, and Temporal support | Deno Deno 2.7: Temporal API, Windows ARM, and npm overrides | Deno Build a dinosaur runner game with Deno, pt. 6 | Deno Build a dinosaur runner game with Deno, pt. 5 | Deno Deno Deploy is Generally Available | Deno Introducing Deno Sandbox | Deno Build a dinosaur runner game with Deno, pt. 4 | Deno Build a dinosaur runner game with Deno, pt. 3 | Deno Build a dinosaur runner game with Deno, pt. 2 | Deno React / Next.js Denial-of-Service Vulnerability: Deno Deploy users protected | Deno Deno 2.6: dx is the new npx | Deno Build a dinosaur runner game with Deno, pt. 1 | Deno React Server Functions / Next.js Vulnerability: Deno Deploy users protected | Deno My highlights from the new Deno Deploy | Deno Deno's Other Open Source Projects | Deno How Deno protects against npm exploits | Deno Help Us Raise $200k to Free JavaScript from Oracle | Deno Deno 2.5: Permissions in the config file | Deno Fresh 2.0 Graduates to Beta, Adds Vite Support | Deno Deno 2.4: deno bundle is back | Deno JavaScript™ Trademark Update | Deno What's coming to JavaScript | Deno A brief history of JavaScript | Deno Reports of Deno's Demise Have Been Greatly Exaggerated | Deno An Update on Fresh | Deno How Plaid migrated 100 services to a new database platform 5x faster with Deno | Deno Deno 2.3: Improved deno compile, local npm packages, and more | Deno Add JSR packages with pnpm and Yarn | Deno Zero-config Debugging with Deno and OpenTelemetry | Deno Exploring Art with TypeScript, Jupyter, Polars, and Observable Plot | Deno Deno v Oracle Update 3: Fighting the JavaScript Trademark | Deno Build a custom RAG AI agent in TypeScript and Jupyter | Deno How to get deep traces in your Node.js backend with OTel and Deno | Deno toranoana.deno #20 登録受付中(2025年3月14日) | Deno Node just added TypeScript support. What does that mean for Deno? | Deno The Dino 🦕, the Llama 🦙, and the Whale 🐋 | Deno Publish a lint rule, get a prize | Deno Deno 2.2: OpenTelemetry, Lint Plugins, node:sqlite | Deno If you're not using npm specifiers, you're doing it wrong | Deno How Deno's documentation is evolving | Deno Oracle justified its JavaScript trademark with Node.js—now it wants that ignored | Deno Introducing the JSR open governance board | Deno Intro to Wasm in Deno | Deno Announcing OpenAI on JSR | Deno Deno in 2024 | Deno Goodbye WinterCG, welcome WinterTC | Deno Build a SolidJS app with Deno | Deno Run your Next.js SSR app on Deno Deploy | Deno Solve Advent of Code 2024 with Deno and Win Prizes! | Deno Deno v. Oracle: Canceling the JavaScript Trademark | Deno Deno 2.1: Wasm Imports and other enhancements | Deno Build a Typesafe API with tRPC and Deno | Deno Self-contained Executable Programs with Deno Compile | Deno Build a Database App with Drizzle ORM and Deno | Deno Introducing your new JavaScript package manager: Deno | Deno Announcing Growthbook on JSR | Deno Build an Astro site with Deno | Deno How to convert CommonJS to ESM | Deno Announcing Deno 2 | Deno The Final Touches: What’s New In v2.0.0-rc.10 | Deno Announcing Stable V8 Bindings for Rust | Deno Deno 2.0 Release Candidate | Deno Secure, efficient private npm registries with Cloudsmith and Deno | Deno Painting the Plane as We Fly It: Designing JSR | Deno Introducing Web Cache API support on Deno Deploy | Deno Deno 1.46: The Last 1.x Release | Deno Protect your cloud spend with new Deno Deploy spend limits | Deno What we got wrong about HTTP imports | Deno Benchmarking AWS Lambda Cold Starts Across JavaScript Runtimes | Deno Announcing Supabase on JSR | Deno Deno 1.45: Workspace and Monorepo Support | Deno Introducing KV Backup for Deno Subhosting | Deno A Gentle Intro to TypeScript | Deno Announcing Hono on JSR | Deno How We Made the Deno Language Server Ten Times Faster | Deno How the Guardian uses Deno to audit accessibility and performance across their 2.7 million articles | Deno Introducing More Flexible Domain Association for Deno Subhosting | Deno The stabilization process of the Standard Library has begun | Deno Deno 1.44: Private npm registries, improved Node.js compat, and performance boosts | Deno How we built a secure, performant, multi-tenant cloud platform to run untrusted code | Deno The Deno Standard Library is now available on JSR | Deno How to document your JavaScript package | Deno Your Low Code Solution Needs an Escape Hatch | Deno Deno 1.43: Improved Language Server performance | Deno How Slack used Deno to save months of engineering effort in launching their new platform | Deno JSR Is Not Another Package Manager | Deno Announcing the Hookdeck SDK on JSR | Deno Announcing the Neon Serverless Driver on JSR | Deno An intro to TSConfig for JavaScript Developers | Deno How we built JSR | Deno How Netlify used Deno Subhosting to build a successful edge functions product | Deno Introducing Simpler Project Creation in Deno Deploy | Deno Deno 1.42: Better dependency management with JSR | Deno Introducing deployctl, the command line interface for Deno Deploy | Deno Introducing JSR - the JavaScript Registry | Deno How to add Monaco to a Next.js app and securely run untrusted user code | Deno Survey Results and Roadmap | Deno Deno 1.41: smaller deno compile binaries | Deno
Deno 1.22 Release Notes | Deno
2022-05-19 · via Deno

Deno 1.22 has been tagged and released with the following new features and changes:

  • Default type checking behavior has been updated
  • Removal of unstable Deno.emit(), Deno.formatDiagnostics() and Deno.applySourceMap() APIs
  • Deno namespace is available in workers by default
  • --no-config flag
  • Navigator.userAgent
  • Updated Deno.resolveDns() API
  • New Response.json() static method
  • Linting enabled by default in the LSP
  • Updates to the unstable Deno.spawn() API
  • Updates to the test runner
  • performance.timeOrigin and performance.toJSON

If you already have Deno installed, you can upgrade to 1.22 by running:

If you are installing Deno for the first time, you can use one of the methods listed below:


curl -fsSL https://deno.land/x/install/install.sh | sh


iwr https://deno.land/x/install/install.ps1 -useb | iex


brew install deno


scoop install deno


choco install deno

Default type checking behavior has been updated

Deno currently supports three type checking modes:

  • 🌐 Full: full type checking checks your entire project, including all dependencies. If a dependency contains a type error, it will be reported to you.
  • 📁 Local: local type checking checks the code in your project for type errors, but skips type checking for all dependencies.
  • None: no type checking is performed at all.

Previously, Deno used a default type checking mode of Full. This meant that you would get type errors reported for code outside of your direct control (your dependencies). We have found this to be an inadequate default, and are thus changing the default mode to Local. This is inline with tsc, which also uses a local typechecking mode.

Subcommand v1.21 v1.22 v1.23 (Proposed)
deno bench 🌐 Full 📁 Local 📁 Local
deno bundle 🌐 Full 📁 Local 📁 Local
deno cache 🌐 Full 📁 Local ❌ None
deno check 📁 Local 📁 Local 📁 Local
deno compile 🌐 Full 📁 Local 📁 Local
deno eval ❌ None ❌ None ❌ None
deno repl ❌ None ❌ None ❌ None
deno run 🌐 Full 📁 Local ❌ None
deno test 🌐 Full 📁 Local 📁 Local

Note: the proposed changes for the 1.23 release are in line with our goal to disable type checking by default in deno run. See the 1.21 release notes for more details and the rationale for this change.

The Full type checking mode is still available if you want to use it. To perform a Full type check, run deno check --remote main.ts.

You can force a specific type checking mode in any subcommand by using the following flags:

Flag Mode
--no-check ❌ None
--no-check=remote¹ 📁 Local
--check=all 🌐 Full

¹: --no-check=remote will be replaced by --check in an upcoming release.

Removal of unstable Deno.emit(), Deno.formatDiagnostics() and Deno.applySourceMap() APIs

Deno shipped with the Deno.emit() API that allowed transpiling and bundling source code programmatically. This was an unstable API that, in our opinion, never fit well in the Deno namespace. Supporting this API added a lot of complexity to our already complex transpilation pipeline, introducing many subtle edge cases and holding back some of refactors we wanted to do for the longest time. After many discussions we have decided that to remove this API from the Deno namespace and instead provide it as a userland module: deno_emit. This allows us to develop an API that better suits user needs.

Deno namespace is available in workers by default

Deno has supported the Worker Web API since the v1.0 release. However, by default the Deno namespace was not available in the worker context, unless it was explicitly enabled in the option bag:


new Worker(new URL("./worker_without_deno.js", import.meta.url));


new Worker(new URL("./worker_without_deno.js", import.meta.url), {
  deno: true,
});

In this release we are updating web workers to have the Deno namespace enabled by default, better matching user expectations. This means that you can now use Deno namespace APIs in your web workers by default, provided the required permissions are set.


new Worker(new URL("./worker_without_deno.js", import.meta.url));

You can still use WorkerOptions.deno option to apply additional settings, like custom permissions:


new Worker(new URL("./worker_without_deno.js", import.meta.url), {
  deno: {
    permissions: {
      read: true,
    },
  },
});

Thank you Nayeem Rahman for contributing this feature!

--no-config flag

Starting with Deno v1.18, the runtime can automatically discover config files. While this feature is convenient and useful in most cases, there are situations where it is not desirable.

For example, you might be developing a frontend project that uses non-standard TypeScript type declarations, that are defined in configuration files. If you also have some standalone third party tools (like udd) in your project directory, it’s undesirable to apply the same configuration files to those tools, because they may require different type declarations.

This release adds a --no-config flag, which disables auto-discovery of the config file. With this flag passed, all configuration has to be explicitly passed via CLI flags for configuration.

This release adds the userAgent property to the global navigator object. This property is set to the same value as the User-Agent header that is set on outgoing HTTP requests.

console.log(navigator.userAgent);

Thank you @randomicon00 for contributing this feature!

Updated Deno.resolveDns() API

This release brings an update to the Deno.resolveDns() API. The following record types can now be resolved:

  • NS
  • CAA
  • SOA
  • NAPTR

For example:

const [ns, caa, soa, naptr] = await Promise.all([
  Deno.resolveDns("example.com", "NS", nameServer),
  Deno.resolveDns("example.com", "CAA", nameServer),
  Deno.resolveDns("example.com", "SOA", nameServer),
  Deno.resolveDns("example.com", "NAPTR", nameServer),
]);

console.log("NS", ns);

console.log("CAA", caa);







console.log("SOA", soa);



console.log("NAPTR", naptr);



Thank you to Thanapat Chotipun and Craig Morten for contributing this feature!

New Response.json() static method

This release adds a new static json() method to the Response global. It allows the easy creation of Response objects from JSON structures.

const json = { hello: "world" };


const body = JSON.stringify(json);
const response = new Response(body, {
  headers: { "content-type": "application/json" },
});


const response = Response.json(json);

The first argument of the new method is the JSON structure to be encoded. The second argument is an optional options bag that is identical to the one used in the new Response() constructor.

This addition to the Fetch specification was specifically designed with server side runtimes in mind. Deno is the first runtime to implement this new API in stable, but other runtimes should follow suit soon. Chromium already has an implementation of this API in review.

Linting enabled by default in the LSP

Deno v1.22 enables linting in IDE/editors using deno lsp by default. This setting can still be disabled, but in most projects this will mean that less IDE/editor configuration is required, as most projects have linting enabled.

Updates to the unstable Deno.spawn() API

An AbortSignal can now be passed as a signal argument in the options bag to Deno.spawn() and Deno.spawnChild(). When the signal is aborted, the subprocess is terminated with a SIGTERM signal.

The return type for ProcessStatus has also been updated: signal is now set to a string representing the signal that caused the process to exit. For example, if a process is terminated with SIGTERM, the signal property will be set to "SIGTERM". Using a string instead of a number is consistent with the Deno.Child#kill API.

Deno.spawn, Deno.spawnChild, and Deno.spawnSync are still unstable APIs as of this release. We want to stabilize the API in the next release (v1.23.0). Please try out the new APIs, and provide any feedback via our issue tracker.

Updates to the test runner

This release brings another handful of updates to the test runner. We are still iterating on the reporter output to make it more readable.

Headers for the “ERRORS” and “FAILURES” sections are now more visible, and failed tests now show the file name and line number of the Deno.test() call:

Headers and callsite

If a test prints output, it’s name is repeated on the line following the output, to make figuring out which test failed / passed easier:

Repeated test name if output is printed

Uncaught errors have a better representation now, and show a hint to what might have gone wrong:

Uncaught errors in tests

Thank you Nayeem Rahman for contributing these changes!

performance.timeOrigin and performance.toJSON

The performance global is getting a new property this release: timeOrigin. This is set to the high resolution UNIX timestamp of the time the worker was started. It can be used in combination with performance.now() to calculate a high resolution UNIX timestamp of the current time.



const timestamp = performance.timeOrigin + performance.now();

Additionally, the performance.toJSON() method now exists and behaves identically to browsers.

Thank you Geert-Jan Zwiers for contributing this feature!

HN Comments