chore: migrate oxlint & oxfmt (#15464)

#### PR Dependency Tree


* **PR #15464** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Replaced the project’s formatting and linting workflow with Oxfmt and
Oxlint.
* Added shared formatting and linting configuration, editor integration,
and updated automated checks.
* Updated generated files, scripts, and lint guidance to use the new
tooling.

* **Style**
* Reformatted templates, source code, examples, and configuration files
for consistent readability.
  * No user-facing functionality or rendering behavior changed.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
DarkSky
2026-08-10 23:51:28 +08:00
committed by GitHub
parent 749c83cd8e
commit 0c7b20dc18
292 changed files with 3372 additions and 2866 deletions
+1 -1
View File
@@ -17,7 +17,7 @@
"@types/node": "^22.0.0",
"chalk": "^5.3.0",
"lodash-es": "^4.17.23",
"prettier": "^3.7.4",
"oxfmt": "0.63.0",
"typescript": "^5.9.3"
}
}
+11 -6
View File
@@ -1,17 +1,22 @@
import { readFileSync } from 'node:fs';
import { once } from 'lodash-es';
import { type BuiltInParserName, format } from 'prettier';
import { format, type FormatConfig } from 'oxfmt';
import { ProjectRoot } from './path';
const readConfig = once(() => {
const path = ProjectRoot.join('.prettierrc').value;
const config = JSON.parse(readFileSync(path, 'utf-8'));
const path = ProjectRoot.join('.oxfmtrc.json').value;
const config = JSON.parse(readFileSync(path, 'utf-8')) as FormatConfig;
return config;
});
export function prettier(content: string, parser: BuiltInParserName) {
const config = readConfig();
return format(content, { parser, ...config });
export async function formatCode(content: string, fileName: string) {
const result = await format(fileName, content, readConfig());
if (result.errors.length) {
throw new Error(
result.errors.map(error => error.codeframe ?? error.message).join('\n')
);
}
return result.code;
}