メインコンテンツへスキップ

Outdent@2 をリリースしました

· loading · loading ·
OSS javascript typescript bun Node.js

Outdent というツールを作って公開しています。

kamataryo/outdent

TypeScript
0
0

TypeScript の型定義がおかしくなっていたため修正し、また冗長な機能を省いたメジャーバージョンアップとして、 v1 -> v2.0.1 をリリースしました。


このツールは JavaScript のための単純な文字列処理のライブラリで、コーディングスタイルにおけるインデントとテンプレートリテラル (Hello, ${username} のようなバッククオートの記法) の相性の悪さを解消するものです。

深いインデントの内部で改行を含むテンプレートリテラルを使った次の例見てください。

{
  {
    {
      {
        const words = `こんにちは。
これはテンプレートリテラルに改行を含めた例です。
改行が複数行にわたると、とても見にくくなります。`
      }
    }
  }
}

Outdent を使うと以下のように書くことができます。

import { outdent } from '@kamataryo/outdent'
{
  {
    {
      {
        const words = outdent`
          こんにちは。
          これは改行を含めたテンプレートリテラルにoutdent を適用した例です。
          改行が複数行にわたっても、見易いままです。
        `
      }
    }
  }
}

私は Outdent を CLI ツール出力に対するテストを書く際に使っているため、 npm publish して利用しています。

Outdent の実装
#

Outdent の特徴は、 タグ付きテンプレートリテラル という機能を使っていることです。この JavaScript の記法は styled components で知りました。

// styled components の例
// タグ付きテンプレートリテラルの使われ方
const Styled = styled`
  background: red;
  font-size: 20px;
  margin: 10px;
`

タグ付きテンプレートリテラルではなく単純な関数コールでも問題ないのですが、見た目がすっきりするので使っています。