Denoばた会議 Monthly 第23回

Deno v1.37

deno jupyter

以下でDeno Kernelをインストールできます。

$ deno jupyter --unstable --install

以下はjupyter_consoleとの連携例です。

$ jupyter console --kernel deno

TAPレポーター (deno test --reporter=tap)

$ deno test --allow-read --reporter=tap | deno run --allow-read npm:tap-nyan@1.1.0 
 10  -_-_-_-_-__,------,
 0   -_-_-_-_-__|  /\_/\ 
 0   -_-_-_-_-_~|_( ^ .^) 
     -_-_-_-_-_ ""  "" 
  Pass!

deno lspnpm:の入力補完がサポート

TypeScript v5.2

TypeScript限定ですが、usingが利用できます。

class Disposable {
  [Symbol.dispose]() {
    console.info("Disposable: disposed!");
  }
}

{
  using disposable = new Disposable();
}
// => Disposable: disposed!

Import Attributesが実装

import config from "./deno.json" with { type: "json" };

console.info(config);

前身であるImport Assertionsについては、今後、サポートが廃止される予定のようです。

ロックファイル v3

  1. リダイレクト元とリダイレクト先のURLの組み合わせが管理されるように改善
  2. (おそらく) 後述のjsr:URLの導入などに向けた対応と推測されます。

実験的なパッケージマネージャ (jsr:URL)

⚠️注意: パッケージレジストリがまだ公開されていないため、この機能はまだ利用できない状態です。

import { foo } from "jsr:@foo/some_pkg@1/mod.ts";

その他の話題

deno_std v1について

v1のリリースに向けて整理が行われているようです。

  • std/collectionsstd/cryptounstable/ディレクトリが導入 (v0.202.0)
  • std/streams: Deno.Reader/Deno.Writerベースの機能が非推奨化 (v0.202.0)
  • std/ioが非推奨化 (v0.203.0)

など

fresh v1.5 - Partialsの導入

export default ({ docs, currentDoc }: { docs: Array<Doc>, currentDoc: Doc }) => (
  <>
    <Sidebar docs={docs} />
    <Partial name="docs-main-content">
      <MainContent doc={currentDoc} />
    </Partial>
  </>
);

const Sidebar = ({ docs }: { docs: Array<Doc> }) => (
  <ul class="flex flex-col gap-2">
    {docs.map((doc) => (
      <li key={doc.id} class="shadow-md p-4" f-client-nav>
        <a href={`/docs/${doc.id}`} class="font-bold">{doc.title}</a>
      </li>
    ))}
  </ul>
);

fresh v1.5 - Partialsの導入

重要なのはf-client-nav属性と<Partial>コンポーネントで、例えば、以下のリンクをクリックすると...

<li key={doc.id} class="shadow-md p-4" f-client-nav>
  <a href={`/docs/${doc.id}`} class="font-bold">{doc.title}</a>
</li>

<Partial>で囲まれた領域のみがクライアントサイドで更新されます。

<Partial name="docs-main-content">
  <MainContent doc={currentDoc} />
</Partial>

Deno Queuesのアナウンス

Deno v1.34.3でDeno KVに実装されたキューの機能が正式にアナウンスされました。

WebGPU APIの再導入について

Deno v1.32で一時的に削除されていたWebGPU APIを再度導入するPRが作成されています。

bring back WebGPU #20812

まだマージはされていませんが、再びWebGPU APIが導入される可能性がありそうです。