Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
]
},
"tasks": {
"check": "deno fmt --check && deno check src/*.ts",
"check": "deno check src/*.ts",
"test": "deno test" // Add if --allow-* for permissions is needed
}
}
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
* text=auto eol=lf

CHANGES.md merge=sacho
changes.d/next merge=ours
changes.d/next.txt merge=ours
34 changes: 34 additions & 0 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ jobs:
runs-on: ${{ matrix.os }}
env:
MISE_DISABLE_TOOLS: deno
# Oxfmt's Node-API cleanup fix is in Node 24.13.1 and later.
# Keep Linux package tests and other bootstrap targets on Node 22.
MISE_NODE_VERSION: ${{ matrix.os == 'windows-latest' && '24.22.0' || '22' }}
Comment thread
dahlia marked this conversation as resolved.
Resolved
steps:
- uses: actions/checkout@v6
- uses: jdx/mise-action@v4
Expand All @@ -35,6 +38,37 @@ jobs:
# The harness then runs mise install with its normal postinstall hook.
- run: mise --no-hooks exec --no-deps node -- node scripts/test_bootstrap.mjs
- run: mise run test:tooling:no-deno
- name: Check repeated formatter worker teardown on Windows
if: runner.os == 'Windows'
shell: pwsh
run: |
for ($attempt = 1; $attempt -le 20; $attempt++) {
Write-Host "Formatter process $attempt/20"
mise exec -- node --experimental-transform-types --test scripts/formatting.test.ts
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
}
- name: Diagnose native formatter crashes on Windows
if: ${{ !cancelled() && runner.os == 'Windows' && failure() }}
run: mise exec -- node scripts/diagnose_formatting.mjs "${{ runner.temp }}/fedify-formatting-diagnosis"
- name: Read Windows native application errors
if: ${{ !cancelled() && runner.os == 'Windows' && failure() }}
shell: pwsh
run: |
$output = "$env:RUNNER_TEMP/fedify-formatting-diagnosis"
New-Item -ItemType Directory -Force $output | Out-Null
Get-WinEvent -FilterHashtable @{
LogName = 'Application'
Id = 1000
StartTime = (Get-Date).AddHours(-1)
} -ErrorAction SilentlyContinue | Format-List TimeCreated, Message |
Tee-Object -FilePath "$output/application-errors.txt"
exit 0
- uses: actions/upload-artifact@v7
if: ${{ !cancelled() && runner.os == 'Windows' && failure() }}
with:
name: windows-formatter-diagnosis
path: ${{ runner.temp }}/fedify-formatting-diagnosis
include-hidden-files: true

test:
runs-on: ubuntu-latest
Expand Down
74 changes: 74 additions & 0 deletions .oxfmtrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
{
"$schema": "./node_modules/oxfmt/configuration_schema.json",
"printWidth": 80,
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": false,
"jsxSingleQuote": false,
"quoteProps": "preserve",
"trailingComma": "all",
"arrowParens": "always",
"endOfLine": "lf",
"sortImports": false,
"sortPackageJson": false,
"sortTailwindcss": false,
"embeddedLanguageFormatting": "off",
"jsdoc": false,
"ignorePatterns": [
"**/*.md",
"**/*.mdx",
"**/*.html",
"**/*.svg",
"**/*.toml",
"**/*.graphql",
"**/*.gql",
"**/*.json5",
".agents/skills/**",
".claude-plugin/**",
".claude/skills/**",
".github/**",
"claude-plugin/**",
"docs/**",
"tools/**",
"pnpm-workspace.yaml",
"packages/init/src/templates/**",
"packages/cli/src/init/templates/**",
"packages/relay/src/init/templates/**",
"packages/fedify/src/cfworkers/fixtures/**",
"packages/fedify/src/cfworkers/imports.ts",
"packages/fedify/src/cfworkers/server.ts",
"packages/fedify/src/cfworkers/runner.ts",
"packages/fedify/src/cfworkers/selftest.ts",
"packages/fedify/src/cfworkers/server.js",
"packages/sqlite/src/sqlite.bun.ts",
"**/dist/**",
"**/dist-tests/**",
"**/_fresh/**",
"packages/vocab/src/*.yaml",
"packages/vocab-tools/src/schema.yaml",
"schema/bench/*.json",
"test/smoke/**/.certs/**",
"packages/cfworkers/test/**",
"examples/sveltekit-sample/.prettierrc",
"packages/amqp/npm/**",
"packages/fedify/npm/**",
"packages/testing/npm/**",
"packages/fedify/apidoc/**",
".playwright-mcp/**",
"examples/astro/.astro/**",
"packages/fedify/src/cfworkers/server.js.map"
],
"astro": true,
"svelte": {
"sortOrder": "none"
},
"overrides": [
{
"files": ["**/*.astro", "**/*.vue", "**/*.svelte"],
"options": {
"embeddedLanguageFormatting": "auto"
}
}
]
}
8 changes: 2 additions & 6 deletions .oxlintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,13 @@
],
"overrides": [
{
"files": [
"packages/cli/**"
],
"files": ["packages/cli/**"],
"rules": {
"eslint/no-console": "off"
}
},
{
"files": [
"examples/fresh/**"
],
"files": ["examples/fresh/**"],
"rules": {
"react/no-danger": "error",
"react/no-danger-with-children": "error",
Expand Down
56 changes: 31 additions & 25 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@
"editor.detectIndentation": false,
"editor.indentSize": 2,
"editor.insertSpaces": true,
"editor.rulers": [
80
],
"editor.rulers": [80],
"files.eol": "\n",
"files.insertFinalNewline": true,
"files.trimFinalNewlines": true,
Expand All @@ -20,39 +18,47 @@
},
"yaml.validate": true,
"[javascript]": {
"editor.defaultFormatter": "denoland.vscode-deno",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.sortImports": "always"
}
"editor.defaultFormatter": "oxc.oxc-vscode",
"editor.formatOnSave": true
},
"[javascriptreact]": {
"editor.defaultFormatter": "denoland.vscode-deno",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.sortImports": "always"
}
"editor.defaultFormatter": "oxc.oxc-vscode",
"editor.formatOnSave": true
},
"[json]": {
"editor.defaultFormatter": "vscode.json-language-features",
"editor.defaultFormatter": "oxc.oxc-vscode",
"editor.formatOnSave": true
},
"[jsonc]": {
"editor.defaultFormatter": "vscode.json-language-features",
"editor.defaultFormatter": "oxc.oxc-vscode",
"editor.formatOnSave": true
},
"[typescript]": {
"editor.defaultFormatter": "denoland.vscode-deno",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.sortImports": "always"
}
"editor.defaultFormatter": "oxc.oxc-vscode",
"editor.formatOnSave": true
},
"[typescriptreact]": {
"editor.defaultFormatter": "denoland.vscode-deno",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.sortImports": "always"
}
"editor.defaultFormatter": "oxc.oxc-vscode",
"editor.formatOnSave": true
},
"[css]": {
"editor.defaultFormatter": "oxc.oxc-vscode",
"editor.formatOnSave": true
},
"[yaml]": {
"editor.defaultFormatter": "oxc.oxc-vscode",
"editor.formatOnSave": true
},
"[astro]": {
"editor.defaultFormatter": "oxc.oxc-vscode",
"editor.formatOnSave": true
},
"[vue]": {
"editor.defaultFormatter": "oxc.oxc-vscode",
"editor.formatOnSave": true
},
"[svelte]": {
"editor.defaultFormatter": "oxc.oxc-vscode",
"editor.formatOnSave": true
}
}
Loading
Loading