60 lines
1.8 KiB
Markdown
60 lines
1.8 KiB
Markdown
# dprint - JS Formatter
|
|
|
|
[](https://github.com/dprint/js-formatter/actions?query=workflow%3ACI)
|
|
[](https://badge.fury.io/js/%40dprint%2Fformatter)
|
|
[](https://doc.deno.land/https/deno.land/x/dprint/mod.ts)
|
|
|
|
JS formatter for dprint Wasm plugins.
|
|
|
|
## Deno
|
|
|
|
```ts
|
|
import {
|
|
createStreaming,
|
|
GlobalConfiguration,
|
|
} from "https://deno.land/x/dprint/mod.ts";
|
|
|
|
const globalConfig: GlobalConfiguration = {
|
|
indentWidth: 2,
|
|
lineWidth: 80,
|
|
};
|
|
const tsFormatter = await createStreaming(
|
|
// check https://plugins.dprint.dev/ for latest plugin versions
|
|
fetch("https://plugins.dprint.dev/typescript-0.57.0.wasm"),
|
|
);
|
|
|
|
tsFormatter.setConfig(globalConfig, {
|
|
semiColons: "asi",
|
|
});
|
|
|
|
// outputs: "const t = 5\n"
|
|
console.log(tsFormatter.formatText("file.ts", "const t = 5;"));
|
|
```
|
|
|
|
## Node.js
|
|
|
|
Use the following:
|
|
|
|
```ts
|
|
import { createFromBuffer } from "@dprint/formatter";
|
|
// You may have to use `getBuffer` on plugins that haven't updated yet.
|
|
// See the plugins README.md for details.
|
|
import { getPath } from "@dprint/json";
|
|
import * as fs from "fs";
|
|
|
|
const buffer = fs.readFileSync(getPath());
|
|
const formatter = createFromBuffer(buffer);
|
|
|
|
console.log(formatter.formatText("test.json", "{test: 5}"));
|
|
```
|
|
|
|
Unfortunately Node.js doesn't have any way to cache compiles at the moment and so it will have a slower than ideal startup time.
|
|
|
|
### Plugin NPM Packages
|
|
|
|
- [@dprint/json](https://www.npmjs.com/package/@dprint/json)
|
|
- [@dprint/typescript](https://www.npmjs.com/package/@dprint/typescript)
|
|
- [@dprint/markdown](https://www.npmjs.com/package/@dprint/markdown)
|
|
- [@dprint/toml](https://www.npmjs.com/package/@dprint/toml)
|
|
- [@dprint/dockerfile](https://www.npmjs.com/package/@dprint/dockerfile)
|