2024/04/08〜2024/04/14の最新情報

Deno v1.42.3 Deno v1.42.3がリリースされています。 deno run --inspect Inspector用のポートがすでに使用されていた場合に、deno run --inspectがパニックする問題が修正されています。 nodeModulesDir (--node-modules-dir) "nodeModulesDir": trueの有効化時に、同一npmパッケージが重複して二重に読まれてしまうことのある問題が修正されています。 jsr 型チェックなどに関する様々なバグが修正されています。 dynamic importでjsr:がうまく解決されないことのある問題が修正されています。 オーバーロード関数の定義にスプレットパラメータが使用されているものがあった場合、deno publishなどによる型チェックが失敗する問題が修正されています。 https://github.com/denoland/deno/pull/23187 deno_std v0.222.0 deno_std v0.222.0がリリースされています。 std/testing/bdd.ts 以下のエイリアスが追加されています。 test (itのエイリアス) before (beforeAllのエイリアス) after (afterAllのエイリアス) std/expect expect.addSnapshotSerializersが実装されています。 std/semver std/semver/types.ts Comparatorオブジェクトの非推奨化されていたsemverプロパティが削除されています。 greaterThanRange/lessThanRange 新しいAPIとしてgreaterThanRangeとlessThanRangeが追加されました。 std/console std/consoleがstd/cliに統合されています。std/consoleはまだ削除されずに残っているものの非推奨化されています。 std/crypto/crypto.ts 下記APIが非推奨化されています。 FNVAlgorithms wasmDigestAlgorithms (DIGEST_ALGORITHM_NAMESへの移行が推奨) WasmDigestAlgorithm (DigestAlgorithmNameへの移行が推奨) std/encoding/varint.ts std/encodingにおける他のモジュールとの命名の一貫性向上のため、以下のAPIが非推奨化されています。 非推奨API 移行先 decode decodeVarint decode32 decodeVarint32 encode encodeVarint std/yaml/schema 下記の定数がリネームされています。...

April 14, 2024

2024/04/01〜2024/04/07の最新情報

Deno v1.42.1 Deno v1.42.1がリリースされています。 deno publish compilerOptions.{noUnusedParameters,noUnusedLocals}にtrueが設定されていると、deno publishの実行時にリモートモジュールで型エラーが発生する問題が修正されています。 node:tty ReadStreamでTypeError: Cannot read properties of undefinedエラーが発生する問題が修正されています。 Introducing Simpler Project Creation in Deno Deploy Deno公式からDeno Deployのアップデートに関する記事が公開されています。 Introducing Simpler Project Creation in Deno Deploy プロジェクトを新規作成する際のフローに関して、以下のような改善が行われているようです。 既存のGitHubリポジトリをDeno Deployに接続する際のフレームワークの自動検出がサポート 任意でビルドステップの指定がサポート。ビルド時に実行するコマンドを入力することで、Deno Deployが自動でGitHub Actionsの設定ファイルを作成してくれるようです deno.re deno.reというモジュールレジストリが公開されています。 モジュールの公開などにあたって特に作業などは不要で、GitHubに公開された任意のモジュールをタグまたはコミットを指定して読み込むことができるようです。また、必要に応じてモジュールのminifyなども実行してくれるようです。 thoth thothというDeno KVをベースに全文検索機能を提供してくれるjsrパッケージが公開されています。

April 7, 2024

2024/03/25〜2024/03/31の最新情報

Deno v1.42 Deno v1.42がリリースされています。 以下に内容をまとめたため、よろしければこちらを参照いただければと思います。 Deno v1.42 deno_std v0.221.0 deno_std v0.221.0がリリースされています。 @std/expect 以下のAPIが実装されました。 expect.closeTo expect.stringContaining expect.stringMatching @std/crypto FNVハッシュ関連の実装がTypeScriptからRust+Wasmベースへ移行されています。 これによりWeb StreamsなどのIterableな入力も処理できるように改善されているようです。 https://github.com/denoland/deno_std/pull/4515 Deno v2におけるBYONMのデフォルトでの有効化について Deno v2におけるBYONMのデフォルトでの有効化に関するissueが作成されています。 Enable BYONM by default for Deno 2 (#23151) まずDENO_FUTURE=1が指定された際にBYONMをデフォルトで有効化することが検討されているようです。 @david/publish-on-tag Gitタグの作成時にGitHub Actionsからjsrへパッケージを公開するためのツールが公開されています。 @david/publish-on-tag

March 31, 2024

Deno v1.42

Deno v1.42がリリースされました。 この記事では主な変更点などについて解説します。 Deno v2に向けた変更 DENO_FUTUREによるDeno.*配下の非推奨APIの削除 DENO_FUTURE=1を指定すると、Deno.*配下の非推奨APIが削除されるようになりました。 deno installに--globalオプションが追加 deno installコマンドはインターネット上などで公開されたスクリプトをインストールするためのコマンドです。(デフォルトのインストール先は$HOME/.deno) Deno v2ではこのdeno installコマンドはデフォルトでdeno addコマンドのエイリアスとして機能するように変更される予定のようです。 deno install changes for Deno 2 (#23062) この変更に向けてdeno installコマンドに--global/-gオプションが追加されました。Deno v2のリリース以降、Deno v1におけるdeno installと同じ振る舞いをさせるためには、この--globalオプションを指定する必要があります。 $ deno install --global --allow-read=. --allow-write=. --allow-net https://deno.land/x/udd/main.ts deno lint Quickfixのサポート deno lintとdeno lspでQuickfixがサポートされました。deno lintでは--fixオプションによりQuickfixを実行できます。 $ deno lint --fix main.js 今のところ以下のルールでQuickfixがサポートされています。 no-window no-window-prefix verbatim-module-syntax jsr関連のルールの自動適用 deno.jsonにname/version/exportsが定義されていたら、jsr関連のlintルールが自動で有効化されるように挙動が変更されています。 適用されるルールについては以下で確認できます。 $ deno lint --rules-tags=jsr --rules deno task タスクのコメント deno taskコマンドがタスクに記述されたコメントを認識してくれます。 // deno.jsonc { "tasks": { // Run tests "test": "deno test --allow-read=....

March 31, 2024

2024/03/18〜2024/03/24の最新情報

deno lintとdeno lspでのQuickfixのサポートについて deno lintとdeno lspでQuickfixをサポートするPRがマージされています。Deno v1.42あたりでリリースされる可能性がありそうです。 feat(lint): deno lint --fix and lsp quick fixes #22615 deno_lint v0.58.0 deno lintでは--fixオプションを指定することで利用できるようです。 いまのところQuickfixが実装されているのはno-windowとno-window-prefixルールのみのようです。 deployctl v1.12.0 deployctl v1.12.0がリリースされています。 deployctl deployコマンドで--envや--env-fileオプションがサポートされています。これらはDeno Deployのデプロイメントに対して環境変数を設定するためのオプションのようです。これらを介して設定された環境変数はDeno.env経由でアクセスできるようです。 Introducing deployctl, the command line interface for Deno Deploy また、deployments redeployコマンドが実装されており、既存のデプロイに対して環境変数のみを変更したい場合などに使用されることが想定されているようです

March 24, 2024

2024/03/11〜2024/03/17の最新情報

Deno v1.41.3 Deno v1.41.3がリリースされています。 Node.js互換性の改善 BYONMを有効化した際に、VitePressが動かせるようになったようです。 node:crypto 以下のサポートが追加されています。 getCipherInfoの基本的な実装が追加 createPublicKeyの初期実装が追加 createPrivateKeyでDHがサポート Sign#signでEC鍵がサポート node:worker_threads receiveMessageOnPortが実装されています。 また、Workerに指定したスクリプトが終了したら、Workerがプロセスの終了をブロックしないように挙動が変更されました。 node:fs statfsが実装されています。 また、symlinkでjunctionタイプがサポートされています。 node:timers Immediateクラスが追加され、setImmediateの戻り値として返却されるように変更されています。 node:module isBuiltinが実装されました。 node:punycode Node.jsとの互換性が改善されています。 node:http validateHeaderNameとvalidateHeaderValueが公開されました。 .cssサポート npmパッケージに.cssへのimportが含まれていた際に、型エラーが起きないように挙動が改善されています。 deno publish fast checkにおけるasで指定されたリテラル型の推論などが改善されています。 Fresh v2について Fresh v2に関する新機能や変更点などに関するissueが公開されています。 The road to Fresh 2.0 #2363 以下のような機能や変更などが検討されているようです。 deno.land/xからJSRへの移行 ExpressやHonoライクな新しいプラグインAPIを提供する Preactの非同期コンポーネントサポートを活用して非同期Routeコンポーネントをレンダリングする <Head>の削除 (今のところ、ハンドラーから<head>に追加する要素を返却できるようにすることなどが検討されているようです) など deno-sqlx sqlx crateやGoのdatabase/sqlライクなインターフェースを提供するためのdeno-sqlxモジュールが公開されています。 halvardssm/deno-sqlx 以下のPRで初期実装が進められているようです。 feat: initial implementation #1

March 17, 2024

2024/03/04〜2024/03/10の最新情報

Deno v1.41.2 Deno v1.41.2がリリースされています。 jsr deno addでnpmパッケージがサポート deno addの引数にnpm:<パッケージ名>の形式でパッケージを指定すると、対象のnpmパッケージがdeno.jsonに追加されます。 $ deno add npm:chalk@5.3.0 deno addでパッケージのバージョン指定がサポート deno addでパッケージを追加する際に、以下のような形式などでバージョンを指定できます。 $ deno add @std/ulid@0.219.1 $ deno add @oak/oak@14 deno publish - include/excludeに関する挙動の改善 deno publishがJSRにパッケージを公開する際に、パッケージに含めるまたは除外するファイルを決定する際の挙動が改善されています。 祖先のディレクトリの.gitignoreも参照されるように挙動が変更されています .gitignoreやexcludeで除外されたファイルのunexcludeがサポートされています { "publish": { "exclude": [ "!tmp/generated" ] }, "exclude": [ "tmp" ] } fix(publish): make include and exclude work #22720 deno publish --dry-run - GitHub Actionsのパーミッションに関する改善 GitHub Actionsでdeno publish --dry-runを実行する際に、GitHub Actionsのパーミッションなしで動作するように改善されました。...

March 10, 2024

2024/02/26〜2024/03/03の最新情報

JSR(jsr.io)が公開 (パブリックベータ版) jsr.ioがパブリックベータ版として一般公開されました。 Introducing JSR - the JavaScript Registry deno_stdやOak, daxなどのパッケージもすでに公開されています。 また、レジストリのソースコードも公開されており、以下のリポジトリで開発が行われているようです。 jsr-io/jsr @deno/x-to-jsr Deno公式から@deno/x-to-jsrというdeno.land/xパッケージをJSRパッケージに変換するためのツールが公開されています。 jsr-npm Node.jsやBunなどでJSRパッケージを利用するためのjsr-npmというCLIツールが公開されています。 $ npx jsr --version 0.9.0 # @oak/oakをインストール $ npx jsr add @oak/oak # package.jsonにjsrパッケージが追加されます $ cat package.json | jq '.dependencies["@oak/oak"]' "npm:@jsr/oak__oak@^14.1.1" # .npmrcが自動で作成されます $ cat .npmrc @jsr:registry=https://npm.jsr.io esm.sh - JSRの実験的サポートが追加 esm.shにJSRパッケージの実験的サポートが追加されています。 JSR is now in public beta 🔥 FYI https://t.co/GUKvoBGZVC also experimentally supports JSR packages too!...

March 3, 2024

2024/02/19〜2024/02/25の最新情報

Deno v1.41 Deno v1.41がリリースされています。 以下に内容をまとめたため、よろしければこちらを参照いただければと思います。 Deno v1.41 deno addコマンドについて deno addコマンドを実装するPRが作成されています。 feat: deno add subcommand (#22520) 使い方としては、以下のようにjsrに公開されているパッケージを引数に指定して実行する想定のようです。 $ deno add @scope/pkg この場合、deno.jsonに以下のような形式で追加したパッケージを書き込んでくれるようです。 { "imports": { "@scope/pkg": "jsr:@scope/pkg@1.2.3" } } リリースされるかどうかはまだわからないものの、今後のバージョンで利用できるようになる可能性もありそうです。 deno_std v0.217.0 deno_std v0.217.0がリリースされています。 std/semver - Operatorに関する非推奨化 Operator型における"==", "===", "!==", ""が非推奨化されています。 "=="と"==="は"="への移行が推奨されます。 "!=="は"!="への移行が推奨されます。 ""はundefinedへの移行が推奨されます。 std/io/iterate_reader.tsが追加 std/io/iterate_reader.tsが追加されています。iterateReaderとiterateReaderSyncの2つのAPIが提供されていて、Readerから(Async)IterableIterator<Uint8Array>への変換が行えます。 std/streams/iterate_reader.tsを使っている場合は、こちらへの移行が推奨されます。 std/io/reader_from_stream_reader.ts 非推奨化されていたstd/streams/reader_from_stream_reader.tsがstd/io/reader_from_stream_reader.tsへ移動されました。合わせて非推奨化も解除されています。 std/testing/mock.ts spyやstubがusingに対応されました。spyまたはstubがスコープから外れた際に、自動でrestore()が呼ばれます。 Lume v2.1.0 Lume v2.1.0がリリースされています。 Lume 2.1.0 release notes LumeCMSのサポート(lume cmsコマンド)が入っています。...

February 25, 2024

Deno v1.41

Deno v1.41がリリースされました。 この記事では主な変更点などについて解説します。 Deno API Deno.FsFile Deno.FsFileにisTerminalとsetRawメソッドが追加されています。 Deno.isattyは非推奨化されているため、Deno.FsFileやDeno.stdinなどのisTerminalメソッドへの移行が推奨されます。 Deno.ConnectTlsOptions Deno.ConnectTlsOptionsにcertとkeyオプションが追加されています。 これに伴い、Deno.ConnectTlsOptionsのcertChainとprivateKeyは非推奨化されているため、新しく追加されたこれらへの移行が推奨されます。 破壊的変更 Deno.DatagramConnとDeno.HttpClientからridプロパティが削除されました。 Deno.CreateHttpClientOptionsのcertChainがcert、privateKeyがkeyにリネームされました。 パッケージシステム パッケージシステム (deno publish)に関してもいくつか改善が行われています。 ⚠️ jsr:に関しては、現在はwaitlistが公開されている段階で、まだ正式には利用できません。 deno lint deno lintにno-slow-typesルールが導入されています (#22430) このルールはdeno.jsonにname, version, 及びexportsフィールドが定義されている場合、自動で有効化されるようです。 このルールが有効化されている場合、fast checkが実行されるようです。 型チェックに関する改善 deno publishの実行時に型チェックが実行されるように変更されています (#22506) デフォルトではローカルモジュールに対してのみfast checkが行われるようです。--allow-slow-typesを指定するとfast checkではなく通常の型チェックが行われるようです また、fast checkに関しては、deno lintなどのコマンドと同様にSQLiteをベースにキャッシュの仕組みが導入されており、型チェックがより効率化されています。(#22485) deno lsp deno lspでjsr:URL向けにimportの補完が実装されています (#22462) deno compile v1.40.5でdeno compile向けの軽量バイナリであるdenortが再導入されています。 Deno v1.41ではstripコマンドを実行することでdenortバイナリがさらに軽量化されています。Deno公式のリリースポストによると、今後、deno compileをする際に特定の機能のみを有効化したカスタムビルドをサポートすることで、さらにバイナリを軽量化することなども検討されているようです。 その他には、deno compileでdeno.jsonのcompilerOptionsなどが効かない問題が修正されています。 deno info deno infoコマンドを実行した際もロックファイル(deno.lock)が生成されるように挙動が改善されています。 Node.js互換性 影響が大きそうな内容として、process.envからパーミッションが与えられていない環境変数にアクセスしようとした際に、パーミッションプロンプトが表示されるように挙動が変更されています。 それ以外には、node:testではDenoのテストサニタイザーの仕組みが無効化されています。 参考 https://github.com/denoland/deno/releases/tag/v1.41.0 Deno 1.41: smaller deno compile binaries

February 25, 2024