Skip to content

Commit 9541031

Browse files
authored
Added a "format" script, for self-format the repo
1 parent da54ab5 commit 9541031

File tree

2 files changed

+48
-11
lines changed

2 files changed

+48
-11
lines changed

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
"clean": "rm -rf dist",
2727
"compile": "tsc --outDir dist",
2828
"compile:watch": "tsc --outDir dist --watch",
29+
"format": "npm run compile && node dist/bin.js --write src test",
2930
"prepublishOnly": "npm run compile && npm run test",
3031
"test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --runInBand --rootDir test/__tests__",
3132
"typecheck": "tsc --noEmit"

src/prettier_serial.ts

+47-11
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,49 @@ import prettier from "prettier/standalone";
44
import { getPlugins, getPluginsBuiltin, resolve } from "./utils.js";
55
import type { ContextOptions, LazyFormatOptions, PluginsOptions } from "./types.js";
66

7-
async function check(filePath: string, fileContent: string, formatOptions: LazyFormatOptions, contextOptions: ContextOptions, pluginsDefaultOptions: PluginsOptions, pluginsCustomOptions: PluginsOptions ): Promise<boolean> {
7+
async function check(
8+
filePath: string,
9+
fileContent: string,
10+
formatOptions: LazyFormatOptions,
11+
contextOptions: ContextOptions,
12+
pluginsDefaultOptions: PluginsOptions,
13+
pluginsCustomOptions: PluginsOptions,
14+
): Promise<boolean> {
815
const fileContentFormatted = await format(filePath, fileContent, formatOptions, contextOptions, pluginsDefaultOptions, pluginsCustomOptions);
916
return fileContent === fileContentFormatted;
1017
}
1118

12-
async function checkWithPath(filePath: string, formatOptions: LazyFormatOptions, contextOptions: ContextOptions, pluginsDefaultOptions: PluginsOptions, pluginsCustomOptions: PluginsOptions): Promise<boolean> {
19+
async function checkWithPath(
20+
filePath: string,
21+
formatOptions: LazyFormatOptions,
22+
contextOptions: ContextOptions,
23+
pluginsDefaultOptions: PluginsOptions,
24+
pluginsCustomOptions: PluginsOptions,
25+
): Promise<boolean> {
1326
const fileContent = await readFile(filePath, "utf8");
1427
return check(filePath, fileContent, formatOptions, contextOptions, pluginsDefaultOptions, pluginsCustomOptions);
1528
}
1629

17-
async function format(filePath: string, fileContent: string, formatOptions: LazyFormatOptions, contextOptions: ContextOptions, pluginsDefaultOptions: PluginsOptions, pluginsCustomOptions: PluginsOptions): Promise<string> {
30+
async function format(
31+
filePath: string,
32+
fileContent: string,
33+
formatOptions: LazyFormatOptions,
34+
contextOptions: ContextOptions,
35+
pluginsDefaultOptions: PluginsOptions,
36+
pluginsCustomOptions: PluginsOptions,
37+
): Promise<string> {
1838
formatOptions = await resolve(formatOptions);
1939
const pluginsBuiltin = await getPluginsBuiltin();
2040
const plugins = await getPlugins(formatOptions.plugins || []);
21-
const pluginsOverride = contextOptions.configPrecedence !== 'file-override';
41+
const pluginsOverride = contextOptions.configPrecedence !== "file-override";
2242

2343
const options = {
2444
...pluginsDefaultOptions,
2545
...(pluginsOverride ? formatOptions : pluginsCustomOptions),
2646
...(pluginsOverride ? pluginsCustomOptions : formatOptions),
2747
...contextOptions,
2848
filepath: filePath,
29-
plugins: [
30-
...pluginsBuiltin,
31-
...plugins,
32-
],
49+
plugins: [...pluginsBuiltin, ...plugins],
3350
};
3451

3552
const result = await prettier.formatWithCursor(fileContent, options as any); //FIXME: Prettier's own types are incorrect here
@@ -41,19 +58,38 @@ async function format(filePath: string, fileContent: string, formatOptions: Lazy
4158
return result.formatted;
4259
}
4360

44-
async function formatWithPath(filePath: string, formatOptions: LazyFormatOptions, contextOptions: ContextOptions, pluginsDefaultOptions: PluginsOptions, pluginsCustomOptions: PluginsOptions): Promise<string> {
61+
async function formatWithPath(
62+
filePath: string,
63+
formatOptions: LazyFormatOptions,
64+
contextOptions: ContextOptions,
65+
pluginsDefaultOptions: PluginsOptions,
66+
pluginsCustomOptions: PluginsOptions,
67+
): Promise<string> {
4568
const fileContent = await readFile(filePath, "utf8");
4669
return format(filePath, fileContent, formatOptions, contextOptions, pluginsDefaultOptions, pluginsCustomOptions);
4770
}
4871

49-
async function write(filePath: string, fileContent: string, formatOptions: LazyFormatOptions, contextOptions: ContextOptions, pluginsDefaultOptions: PluginsOptions, pluginsCustomOptions: PluginsOptions): Promise<boolean> {
72+
async function write(
73+
filePath: string,
74+
fileContent: string,
75+
formatOptions: LazyFormatOptions,
76+
contextOptions: ContextOptions,
77+
pluginsDefaultOptions: PluginsOptions,
78+
pluginsCustomOptions: PluginsOptions,
79+
): Promise<boolean> {
5080
const fileContentFormatted = await format(filePath, fileContent, formatOptions, contextOptions, pluginsDefaultOptions, pluginsCustomOptions);
5181
if (fileContent === fileContentFormatted) return true;
5282
await writeFile(filePath, fileContentFormatted, "utf8");
5383
return false;
5484
}
5585

56-
async function writeWithPath(filePath: string, formatOptions: LazyFormatOptions, contextOptions: ContextOptions, pluginsDefaultOptions: PluginsOptions, pluginsCustomOptions: PluginsOptions): Promise<boolean> {
86+
async function writeWithPath(
87+
filePath: string,
88+
formatOptions: LazyFormatOptions,
89+
contextOptions: ContextOptions,
90+
pluginsDefaultOptions: PluginsOptions,
91+
pluginsCustomOptions: PluginsOptions,
92+
): Promise<boolean> {
5793
const fileContent = await readFile(filePath, "utf8");
5894
return write(filePath, fileContent, formatOptions, contextOptions, pluginsDefaultOptions, pluginsCustomOptions);
5995
}

0 commit comments

Comments
 (0)