JavaScript
インストール
Note
パッケージは、まだ npm と JSR に公開していません。
@nuten/wasm を使うと、JavaScript から Nushell を整形できます。WebAssembly で動くので、Node.js, Deno, Bun だけでなく、ブラウザや Cloudflare Workers でも使えます。nuten コマンドは呼び出さないので、nuten をインストールする必要はありません。
vp i @nuten/wasm
npm install @nuten/wasm
yarn add @nuten/wasm
pnpm add @nuten/wasm
deno add jsr:@nuten/wasm
bun add @nuten/wasm
使い方
format は Nushell のコードを整形して返します。オプションは 2 番目の引数で渡します。
import { format } from "@nuten/wasm";
format("ls|sort"); // "ls | sort\n"
format("[1, 2, 3]", { commas: "none" }); // "[1 2 3]\n"
コードに構文エラーがあると、format は FormatError を投げます。FormatError の errors には、各エラーの行, 列, メッセージが入っています。行と列は 1 から数えます。列は UTF-16 のコードユニットではなく、コードポイントで数えます。
import { FormatError, format } from "@nuten/wasm";
try {
format("ls && echo");
} catch (error) {
if (error instanceof FormatError) {
error.errors; // [{ line: 1, column: 4, message: "`&&` is not an operator; ..." }]
}
}
存在しないオプションや不正な値を渡すと、format は TypeError を投げます。
オプション
各オプションは、設定ファイルの項目と次のように対応します。それぞれの意味は 設定項目 を参照してください。このパッケージは Nuten の 設定ファイル を読み込みません。
| オプション | 設定ファイルの項目 | 型 | 既定値 |
|---|---|---|---|
lineWidth |
line_width |
number |
100 |
indentStyle |
indent_style |
"space" | "tab" |
"space" |
indentWidth |
indent_width |
number |
4 |
lineEnding |
line_ending |
"lf" | "crlf" | "auto" |
"auto" |
commas |
commas |
"none" | "inline" | "always" | "trailing" |
"inline" |
省略したオプションには既定値が使われます。既定値は defaultOptions からも参照できます。