diff options
| author | Kit Langton <[email protected]> | 2026-04-17 22:31:21 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-04-17 22:31:21 -0400 |
| commit | 357301991624ae6c361350c1c1aca222268a6d5d (patch) | |
| tree | df2725efd9b04a81def6873cf8c4bfe45c85e7e1 | |
| parent | fc5b353144b6d370df21e2da3a8c1fad7e63123a (diff) | |
| download | opencode-357301991624ae6c361350c1c1aca222268a6d5d.tar.gz opencode-357301991624ae6c361350c1c1aca222268a6d5d.zip | |
fix(generate): make openapi output deterministic by formatting in-place (#23228)
| -rw-r--r-- | packages/opencode/src/cli/cmd/generate.ts | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/packages/opencode/src/cli/cmd/generate.ts b/packages/opencode/src/cli/cmd/generate.ts index fad4514c8..0531d537c 100644 --- a/packages/opencode/src/cli/cmd/generate.ts +++ b/packages/opencode/src/cli/cmd/generate.ts @@ -25,7 +25,19 @@ export const GenerateCommand = { ] } } - const json = JSON.stringify(specs, null, 2) + const raw = JSON.stringify(specs, null, 2) + + // Format through prettier so output is byte-identical to committed file + // regardless of whether ./script/format.ts runs afterward. + const prettier = await import("prettier") + const babel = await import("prettier/plugins/babel") + const estree = await import("prettier/plugins/estree") + const format = prettier.format ?? prettier.default?.format + const json = await format(raw, { + parser: "json", + plugins: [babel.default ?? babel, estree.default ?? estree], + printWidth: 120, + }) // Wait for stdout to finish writing before process.exit() is called await new Promise<void>((resolve, reject) => { |
