Some checks failed
Deploy analytics worker / Deploy analytics worker to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
i18n upload strings / Upload latest strings (push) Failing after 1s
Deploy bemo / Deploy bemo to ${{ (github.ref == 'refs/heads/bemo-production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
Deploy grafana resources / ${{ github.event_name == 'push' && 'Deploy grafana resources' || 'Validate grafana resources (dry run)' }} (push) Failing after 0s
End to end tests (dotcom) / Check for relevant changes (push) Failing after 0s
End to end tests (examples) / Check for relevant changes (push) Failing after 0s
End to end tests (mermaid readability) / Check for relevant changes (push) Failing after 1s
End to end tests (perf) / Check for relevant changes (push) Failing after 0s
Publish editor extensions / Publish editor extensions (push) Failing after 1s
Publish SDK packages / Remove the publish-packages label (push) Has been skipped
Checks / Tests & checks (push) Has been cancelled
Checks / Build all projects (push) Has been cancelled
Deploy templates / Deploy templates (push) Has been cancelled
End to end tests (dotcom) / End to end tests (dotcom) (push) Has been cancelled
End to end tests (mermaid readability) / End to end tests (mermaid readability) (push) Has been cancelled
End to end tests (perf) / End to end tests (perf) (push) Has been cancelled
Deploy .com / Deploy dotcom to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Has been cancelled
End to end tests (examples) / End to end tests (examples) (push) Has been cancelled
Publish SDK packages / Publish SDK packages (push) Has been cancelled
Publish SDK packages / Tell user released version (push) Has been cancelled
Publish SDK packages / Publishes code templates to separate repositories (push) Has been cancelled
Publish SDK packages / Deploys the template demos with the new SDK version (push) Has been cancelled
63 lines
1.8 KiB
TypeScript
63 lines
1.8 KiB
TypeScript
import { execSync } from 'child_process'
|
|
import * as path from 'path'
|
|
import { exec } from './lib/exec'
|
|
import { REPO_ROOT } from './lib/file'
|
|
|
|
const OXFMT_EXTENSIONS = 'js,jsx,ts,tsx,cjs,mjs,css,md,mdx,html,yml,yaml'
|
|
const CONTEXT_COMPAT_FILE_PATTERN = /^(apps|packages|templates)\/.+\/(?:CLAUDE|AGENTS)\.md$/i
|
|
|
|
async function main() {
|
|
const shouldFix = process.argv.includes('--fix')
|
|
const currentOnly = process.argv.includes('--current')
|
|
|
|
let target: string
|
|
let fmtGlob: string
|
|
if (currentOnly) {
|
|
const changedFiles = execSync('git diff --name-only --diff-filter d', {
|
|
cwd: REPO_ROOT,
|
|
encoding: 'utf-8',
|
|
})
|
|
.trim()
|
|
.split('\n')
|
|
.filter(Boolean)
|
|
|
|
const extPattern = new RegExp(`\\.(${OXFMT_EXTENSIONS.replace(/,/g, '|')})$`)
|
|
const matchingFiles = changedFiles.filter((f) => extPattern.test(f))
|
|
if (matchingFiles.length === 0) {
|
|
console.log('No files to lint.')
|
|
return
|
|
}
|
|
// Force one TypeScript file through oxlint so repo-level markdown checks
|
|
// still run when current-only changes only touch CLAUDE.md / AGENTS.md.
|
|
if (
|
|
matchingFiles.some((file) => CONTEXT_COMPAT_FILE_PATTERN.test(file)) &&
|
|
!matchingFiles.includes('internal/scripts/lint.ts')
|
|
) {
|
|
matchingFiles.push('internal/scripts/lint.ts')
|
|
}
|
|
target = matchingFiles.join(' ')
|
|
fmtGlob = target
|
|
} else {
|
|
const relativeCwd = path.relative(REPO_ROOT, process.cwd())
|
|
target = relativeCwd || '.'
|
|
fmtGlob = relativeCwd
|
|
? `${relativeCwd}/**/*.{${OXFMT_EXTENSIONS}}`
|
|
: `**/*.{${OXFMT_EXTENSIONS}}`
|
|
}
|
|
|
|
try {
|
|
await exec(
|
|
'yarn',
|
|
['oxfmt', shouldFix ? '--write' : '--check', '--no-error-on-unmatched-pattern', fmtGlob],
|
|
{ pwd: REPO_ROOT }
|
|
)
|
|
if (!shouldFix) {
|
|
await exec('yarn', ['oxlint', ...target.split(' ')], { pwd: REPO_ROOT })
|
|
}
|
|
} catch {
|
|
process.exit(1)
|
|
}
|
|
}
|
|
|
|
main()
|