|
@@ -1,10 +1,15 @@
|
|
|
import { App } from "../app/app"
|
|
import { App } from "../app/app"
|
|
|
-import { BunProc } from "../bun"
|
|
|
|
|
import { Bus } from "../bus"
|
|
import { Bus } from "../bus"
|
|
|
import { File } from "../file"
|
|
import { File } from "../file"
|
|
|
import { Log } from "../util/log"
|
|
import { Log } from "../util/log"
|
|
|
import path from "path"
|
|
import path from "path"
|
|
|
|
|
|
|
|
|
|
+import type { Definition } from "./definition"
|
|
|
|
|
+
|
|
|
|
|
+import prettier from "./formatters/prettier"
|
|
|
|
|
+import mix from "./formatters/mix"
|
|
|
|
|
+import gofmt from "./formatters/gofmt"
|
|
|
|
|
+
|
|
|
export namespace Format {
|
|
export namespace Format {
|
|
|
const log = Log.create({ service: "format" })
|
|
const log = Log.create({ service: "format" })
|
|
|
|
|
|
|
@@ -62,104 +67,9 @@ export namespace Format {
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- interface Definition {
|
|
|
|
|
- name: string
|
|
|
|
|
- command: string[]
|
|
|
|
|
- environment?: Record<string, string>
|
|
|
|
|
- extensions: string[]
|
|
|
|
|
- enabled(): Promise<boolean>
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
const FORMATTERS: Definition[] = [
|
|
const FORMATTERS: Definition[] = [
|
|
|
- {
|
|
|
|
|
- name: "prettier",
|
|
|
|
|
- command: [BunProc.which(), "run", "prettier", "--write", "$FILE"],
|
|
|
|
|
- environment: {
|
|
|
|
|
- BUN_BE_BUN: "1",
|
|
|
|
|
- },
|
|
|
|
|
- extensions: [
|
|
|
|
|
- ".js",
|
|
|
|
|
- ".jsx",
|
|
|
|
|
- ".mjs",
|
|
|
|
|
- ".cjs",
|
|
|
|
|
- ".ts",
|
|
|
|
|
- ".tsx",
|
|
|
|
|
- ".mts",
|
|
|
|
|
- ".cts",
|
|
|
|
|
- ".html",
|
|
|
|
|
- ".htm",
|
|
|
|
|
- ".css",
|
|
|
|
|
- ".scss",
|
|
|
|
|
- ".sass",
|
|
|
|
|
- ".less",
|
|
|
|
|
- ".vue",
|
|
|
|
|
- ".svelte",
|
|
|
|
|
- ".json",
|
|
|
|
|
- ".jsonc",
|
|
|
|
|
- ".yaml",
|
|
|
|
|
- ".yml",
|
|
|
|
|
- ".toml",
|
|
|
|
|
- ".xml",
|
|
|
|
|
- ".md",
|
|
|
|
|
- ".mdx",
|
|
|
|
|
- ".graphql",
|
|
|
|
|
- ".gql",
|
|
|
|
|
- ],
|
|
|
|
|
- async enabled() {
|
|
|
|
|
- try {
|
|
|
|
|
- const proc = Bun.spawn({
|
|
|
|
|
- cmd: [BunProc.which(), "run", "prettier", "--version"],
|
|
|
|
|
- cwd: App.info().path.cwd,
|
|
|
|
|
- env: {
|
|
|
|
|
- BUN_BE_BUN: "1",
|
|
|
|
|
- },
|
|
|
|
|
- stdout: "ignore",
|
|
|
|
|
- stderr: "ignore",
|
|
|
|
|
- })
|
|
|
|
|
- const exit = await proc.exited
|
|
|
|
|
- return exit === 0
|
|
|
|
|
- } catch {
|
|
|
|
|
- return false
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- name: "mix",
|
|
|
|
|
- command: ["mix", "format", "$FILE"],
|
|
|
|
|
- extensions: [".ex", ".exs", ".eex", ".heex", ".leex", ".neex", ".sface"],
|
|
|
|
|
- async enabled() {
|
|
|
|
|
- try {
|
|
|
|
|
- const proc = Bun.spawn({
|
|
|
|
|
- cmd: ["mix", "--version"],
|
|
|
|
|
- cwd: App.info().path.cwd,
|
|
|
|
|
- stdout: "ignore",
|
|
|
|
|
- stderr: "ignore",
|
|
|
|
|
- })
|
|
|
|
|
- const exit = await proc.exited
|
|
|
|
|
- return exit === 0
|
|
|
|
|
- } catch {
|
|
|
|
|
- return false
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- name: "gofmt",
|
|
|
|
|
- command: ["gofmt", "-w", "$FILE"],
|
|
|
|
|
- extensions: [".go"],
|
|
|
|
|
- async enabled() {
|
|
|
|
|
- try {
|
|
|
|
|
- const proc = Bun.spawn({
|
|
|
|
|
- cmd: ["gofmt", "-h"],
|
|
|
|
|
- cwd: App.info().path.cwd,
|
|
|
|
|
- stdout: "ignore",
|
|
|
|
|
- stderr: "ignore",
|
|
|
|
|
- })
|
|
|
|
|
- const exit = await proc.exited
|
|
|
|
|
- return exit === 0
|
|
|
|
|
- } catch {
|
|
|
|
|
- return false
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
- },
|
|
|
|
|
|
|
+ prettier,
|
|
|
|
|
+ mix,
|
|
|
|
|
+ gofmt,
|
|
|
]
|
|
]
|
|
|
}
|
|
}
|