diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f464c17..5752467 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -16,14 +16,14 @@ jobs: contents: read pull-requests: write steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Install pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v5 with: run_install: false - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v6 with: node-version: ${{ env.NODE_VERSION }} cache: pnpm @@ -31,5 +31,11 @@ jobs: - name: Install dependencies run: pnpm install --frozen-lockfile + - name: Build + run: pnpm build + + - name: Lint + run: pnpm lint + - name: Test - run: pnpm build && pnpm test \ No newline at end of file + run: pnpm test \ No newline at end of file diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 9c70ef5..3ac6de2 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -13,16 +13,16 @@ jobs: name: Check version changes and publish runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: fetch-depth: 0 - name: Install pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v5 with: run_install: false - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v6 with: node-version: ${{ env.NODE_VERSION }} cache: pnpm diff --git a/configs/oxlint/README.md b/configs/oxlint/README.md new file mode 100644 index 0000000..96817c7 --- /dev/null +++ b/configs/oxlint/README.md @@ -0,0 +1,54 @@ +# @robonen/oxlint + +Composable [oxlint](https://oxc.rs/docs/guide/usage/linter.html) configuration presets. + +## Install + +```bash +pnpm install -D @robonen/oxlint oxlint +``` + +## Usage + +Create `oxlint.config.ts` in your project root: + +```ts +import { defineConfig } from 'oxlint'; +import { compose, base, typescript, vue, vitest, imports } from '@robonen/oxlint'; + +export default defineConfig( + compose(base, typescript, vue, vitest, imports), +); +``` + +Append custom rules after presets to override them: + +```ts +compose(base, typescript, { + rules: { 'eslint/no-console': 'off' }, + ignorePatterns: ['dist'], +}); +``` + +## Presets + +| Preset | Description | +| ------------ | -------------------------------------------------- | +| `base` | Core eslint, oxc, unicorn rules | +| `typescript` | TypeScript-specific rules (via overrides) | +| `vue` | Vue 3 Composition API / `