CLOVER🍀

That was when it all began.

TypeScript

APIを記述するための言語、TypeSpecを使ってOpenAPIドキュメントを生成してみる

これは、なにをしたくて書いたもの? APIを記述するための言語として、TypeSpecというものがあるようなので1度どんなものか把握&試しておきたいなということで。 TypeSpec TypeSpecのWebサイトはこちらです。 typespec.io GitHubリポジトリー。 GitHub - mi…

WHATWG DOMやHTMLなどのJavaScript実装である、jsdomを試す

これは、なにをしたくて書いたもの? jsdomを触っておこうかなということで。 jsdom jsdomのGitHubリポジトリーはこちら。 GitHub - jsdom/jsdom: A JavaScript implementation of various web standards, for use with Node.js jsdomは、Node.js上で使用す…

Drizzle ORM(Drizzle Kit)で、既存のテーブル定義からスキーマを生成する

これは、なにをしたくて書いたもの? 前にDrizzle ORMを試してみました。 TypeScriptのORM、Drizzle ORMをMySQLで試す - CLOVER Drizzle ORMを使う時にはスキーマ(schema.ts)を作る必要があるのですが、これを既存のテーブル定義から作成してみたいと思い…

TypeScriptのORM、Drizzle ORMをMySQLで試す

これは、なにをしたくて書いたもの? TypeScriptのORMはどれを使えばいいのかなといろいろ思ったりするのですが、Drizzle ORMというものを1度試してみようかなということで。 TypeScriptのORMを探す TypeScriptで使えるORMをいくつか探してみます。 Prisma |…

TypeScript × Vitest × SuperTestでExpressのテストを書いて動かしてみる

これは、なにをしたくて書いたもの? 先日、ECMAScript Modulesを使ったテストを書く時に、VitestをJestの代わりに使ってみるというエントリーを書きました。 VitestでTypeScript × Node.js(ECMAScript Modules)のテストを書く - CLOVER 今回はもう少しNod…

VitestでTypeScript × Node.js(ECMAScript Modules)のテストを書く

これは、なにをしたくて書いたもの? 前に、ECMAScript Modulesを使うように設定したNode.jsとTypeScriptを扱うエントリーを書きました。 TypeScript × Node.jsでECMAScript Modulesを試す - CLOVER この時、テストコードを書くのにJestを使ったのですが、EC…

TSConfig Basesでtsconfig.jsonの推奨設定を確認する

これは、なにをしたくて書いたもの? tsconfig.jsonにどういうものを指定したらいいんだろう?という気になるのですが、なにか参考になるものが欲しいところです。 このような目的でTSConfig Basesというものがあるらしいので、少し見てみました。 TSConfig …

TypeScript 5.0からtsconfig.jsonのextends元を複数指定できるようになっていたという話(+showConfigで最終結果確認)

これは、なにをしたくて書いたもの? 前に、tsconfig.jsonはextendsで拡張(オーバーライド)できるらしいというエントリーを書きました。 tsconfig.jsonをextendsして、設定内容をオーバーライドする - CLOVER あるきっかけで、extendsに指定する対象を複数…

TypeScript × Node.jsでECMAScript Modulesを試す

これは、なにをしたくて書いたもの? 少し前に、Node.jsでECMAScript Modulesを試してみました。 Node.jsでECMAScript Modulesを試す - CLOVER 前回はいきなりTypeScriptでやるとわからなくなるだろうから素のJavaScript(Node.js)でECMAScript Modulesを扱…

npmパッケージにTypeScriptの型定義が存在するかどうかは、npmjs.comを見るとわかるという話

全然知らなかったので。 npmパッケージを探したり、パッケージを公開するのにはnpmjs.comというサイトを使います。 npm | Home このパッケージの表示に、npmパッケージ自身にTypeScriptの型定義が含まれているのか、それともDefinitelyTypedによって提供され…

RabbitMQのJavaScriptチュートリアルの「RPC」をTypeScriptで試す

これは、なにをしたくて書いたもの? RabbitMQのチュートリアルをJavaScriptクライアント+TypeScriptでやっていこう、ということで。 今回は「RPC」を扱います。 RabbitMQ tutorial - Remote procedure call (RPC) — RabbitMQ 今回で、この一連のお題は最後…

TypeScriptファイルをJavaScriptファイルに変換したい

これは、なにをしたくて書いたもの? ひとつ前に、こんなエントリーを書きました。 TypeScriptコードを直接実行したい(ts-node、esbuild-register、tsx) - CLOVER じゃあ、こういう用途で作成したTypeScriptファイルを、人が読めるようなJavaScriptファイ…

TypeScriptコードを直接実行したい(ts-node、esbuild-register、tsx)

これは、なにをしたくて書いたもの? Node.jsでソースコードを書く時は基本的にTypeScriptにしたいのですが、時々ちょっとしたスクリプトを書きたい時もあったりします。 そういう時は、ちゃんとした設定などは特に用意せず、さっと書いてそのまま実行したい…

AWS Lambda Powertools for TypeScript(Logger、Parameters)を試す

これは、なにをしたくて書いたもの? AWS Lambda Powertoolsというものを、ちょっと調べておきたいなということで。 AWS Lambda Powertools AWS Lambda Powertoolsというのは、サーバーレスのベストプラクティスに添えるように提供されている、ユーティリテ…

RabbitMQのJavaScriptチュートリアルの「Topics」をTypeScriptで試す

これは、なにをしたくて書いたもの? RabbitMQのチュートリアルをJavaScriptクライアント+TypeScriptでやっていこう、ということで。 今回は「Topics」を扱います。こちらですね。 RabbitMQ tutorial - Topics — RabbitMQ Topics Fanout Exchangeでブロード…

OpenTelemetryのFaaS向けの機能とAWS Distro for OpenTelemetryの違い

これは、なにをしたくて書いたもの? OpenTelemetryのInstrumentationを見ていると、言語によってはServerless Function(FaaS)をサポートしているようです。 これをLocalStack上で試してみようと思ったのですが、うまく動かなかったので…そこに至るまでに…

Node.jsのデータベースマイグレーションツール、Umzugを試す

これは、なにをしたくて書いたもの? Node.jsのデータベースマイグレーションツールとしてUmzugというものがあるようなので、試してみようかなと。 Node.jsのデータベースマイグレーションツール Node.jsにおけるデータベースマイグレーションツールとしては…

Jestでテストが並列に動作していることを確認してみる

これは、なにをしたくて書いたもの? Jestはデフォルトでテストを並列に実行するというので、動作を確認しておきたいなと思いまして。 JestのCLIのオプションを確認する JestのCLIのオプションを見てみます。 Jest CLI Options · Jest 以下の2つの項目が関連…

AWS SAMのTypeScriptサポートが、いつの間にかGAになっていたという話

これは、なにをしたくて書いたもの? 前に、プレビュー版のAWS SAMのTypeScriptサポートを試してみました。 AWS SAMのTypeScriptサポート(プレビュー)をLocalStackで試す - CLOVER そして、ふとAWS SAMのTypeScriptに関するページを見ると、「プレビュー」…

RabbitMQのJavaScriptチュートリアルの「Routing」をTypeScriptで試す

これは、なにをしたくて書いたもの? RabbitMQのチュートリアルをJavaScriptクライアント+TypeScriptでやっていこう、ということで。 今回は「Routing」を扱います。こちらですね。 RabbitMQ tutorial - Routing — RabbitMQ Routing 「Routing」では、メッ…

OpenTelemetryのNode.jsライブラリーをauto-instrumentations-nodeを使わずに組み込む(トレースのみ)

これは、なにをしたくて書いたもの? 前にNode.jsでOpenTelemetry(トレースのみ)を試してみました。 Node.jsでOpenTelemetryのトレースを試す - CLOVER この時、OpenTelemetryをアプリケーションに組み込むためのメタパッケージとしてauto-instrumentation…

Node.jsでOpenTelemetryのトレースを試す

これは、なにをしたくて書いたもの? 前にJavaでOpenTelemetryのトレースを試してみました。 https://kazuhira-r.hatenablog.com/entry/2022/02/11/005344 OpenTelemetryに慣れていきたいなと思うのですが、他の言語でも試してみようかなということで。 今回…

ESLintのコードスタイルルールとPrettierを合わせて使う時には、eslint-config-prettierを使う

これは、なにをしたくて書いたもの? JavaScriptでのリンターといえばESLint、フォーマッターといえばPrettierだと思います。 ESLintにはコードスタイルに関するルールも含まれており、これがPrettierと競合することがあります。これをなんとかする場合は es…

ioredisを使って、Node.jsからRedisへアクセスしてみる

これは、なにをしたくて書いたもの? Node.jsからRedisにアクセスする際に、以前node-redisを使ってみました。 Node.jsからRedisにアクセスしてみる - CLOVER これもだいぶ前の話ですが、今回はioredisを試してみたいと思います。 ioredis ioredisのGitHubリ…

LocalStack内のAWS Lambda関数から、LocalStackで動作している別のAWSリソースにアクセスするにはLOCALSTACK_HOSTNAME環境変数を使う

これは、なにをしたくて書いたもの? AWS Lambda関数を試す時にLocalStackをよく使うのですが、LocalStack内で動作するAWS Lambda関数内から、同じLocalStack上の リソースにアクセスする際の方法をよく忘れるのでメモしておくことにしました。 localhostで…

Serverless Frameworkの設定にAWS Systems Manager Parameter Storeを使ってみる(LocalStack利用)

これは、なにをしたくて書いたもの? Severless Frameworkのserverless.ymlでAWS Systems Manager Parameter Storeの値を参照できるみたいなので、試してみることに しました。 合わせて、AWS Lambda関数内からAWS Systems Manager Parameter Storeを参照す…

TypeScriptを使ってNode.jsの環境変数を型定義する仕組みを見て、名前空間と宣言のマージを確認する

これは、なにをしたくて書いたもの? TypeScriptを使ってNode.jsで環境変数を型定義する方法を調べると、だいたい以下のような記述が見つかるように思います。 declare namespace NodeJS { interface ProcessEnv { readonly MY_ENV: string; } } ここでMY_EN…

RabbitMQのJavaScriptチュートリアルの「Publish/Subscribe」をTypeScriptで試す

これは、なにをしたくて書いたもの? RabbitMQのチュートリアルをJavaScriptクライアント+TypeScriptでやっていこう、ということで。 今回は「Publish/Subscribe」を扱います。こちらですね。 RabbitMQ tutorial - Publish/Subscribe — RabbitMQ Publish/…

JavaScriptのMapやSetをJSONやObjectあたりと相互変換したいという話

これは、なにをしたくて書いたもの? JavaScriptのMapやSetをJSON#stringifyでJSON文字列にすると、思わぬ結果になったのでこのあたりをちょっとメモしておこうかなと。 こんな感じですね。 // Map test('apply JSON.stringify to Map', () => { const map =…

Node.jsでマルチプロセス(cluster、child_process)、マルチスレッド(worker_threads)を使ってみる

これは、なにをしたくて書いたもの? Node.jsでマルチプロセス、それからNode.js 10.5.0以降であればマルチスレッドが使えるようなので、興味がてら試してみることに しました。 Node.jsでマルチプロセス、マルチスレッド Node.jsでマルチプロセスを扱うには…