Proposing accepting TypeScript-based config file/s for oxfmt and oxlint.
Proposed options:
- Separate config files:
oxlint.config.ts,oxfmt.config.ts - Single config file for both:
oxc.config.ts
oxfmt.config.ts variation 1:
import type { Config } from 'oxfmt'
import {
oxfmtPluginTailwind,
type Options as TailwindOptions
} from 'oxfmt/plugins/tailwindcss'
export default {
trailingComma: 'none',
experimentalSortImports: { order: 'asc' },
plugins: [
[
oxfmtPluginTailwind,
{
tailwindPreserveWhiteSpace: true,
tailwindStylesheet: './src/global.css',
// ...
} satisfies TailwindOptions
]
],
// ...
} satisfies Configoxfmt.config.ts variation 2:
import { defineConfig } from 'oxfmt'
import { oxfmtPluginTailwind } from 'oxfmt/plugins/tailwindcss'
export default defineConfig({
trailingComma: 'none',
experimentalSortImports: { order: 'asc' },
plugins: [
oxfmtPluginTailwind({
tailwindPreserveWhiteSpace: true,
tailwindStylesheet: './src/global.css',
// ...
})
],
// ...
})oxlint.config.ts variation 1:
import type { Config } from 'oxlint'
import type { Options as UnicornOptions } from 'oxlint/plugins'
export default {
rules: {
'oxc/approx-constant': 'warn'
},
plugins: [
'unicorn',
{ /* ... */ } satisfies UnicornOptions
],
overrides: [ /* ... */ ]
} satisfies Configoxlint.config.ts variation 2:
import { defineConfig } from 'oxlint'
import { oxlintPluginUnicorn } from 'oxlint/plugins/unicorn'
export default defineConfig({
rules: {
'oxc/approx-constant': 'warn'
},
plugins: [
oxlintPluginUnicorn({ /* ... */ })
],
overrides: [ /* ... */ ]
})oxc.config.ts. Inspired by vite/vitest config API:
import { defineConfig as defineOxfmtConfig } from 'oxfmt'
import { oxfmtPluginTailwind } from 'oxfmt/plugins/tailwindcss'
import { defineConfig as defineOxlintConfig } from 'oxlint'
import { oxlintPluginUnicorn } from 'oxlint/plugins/unicorn'
import { defineConfig, mergeConfig } from 'oxc/config'
const oxfmtConfig = defineOxfmtConfig({ /* ... */ })
const oxlintConfig = defineOxlintConfig({ /* ... */ })
export default mergeConfig(oxfmtConfig, oxlintConfig)