Skip to content

Commit f918358

Browse files
ci(antipattern): allowlist legit TS bridge/adapter paths (#80)
1 parent 5c08331 commit f918358

1 file changed

Lines changed: 14 additions & 19 deletions

File tree

.github/workflows/rsr-antipattern.yml

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -26,34 +26,29 @@ jobs:
2626

2727
- name: Check for TypeScript
2828
run: |
29-
# Exclusions, in order of specificity. Each is "essential glue" —
30-
# the platform requires TypeScript and a ReScript replacement is
31-
# not viable.
32-
#
33-
# - bindings/deno/ : Deno FFI files using Deno.dlopen.
34-
# - *.d.ts : TypeScript declarations for ReScript FFI.
35-
# - affinescript-deno-test/ : Deno-native test runner (Deno is
36-
# TS-native; the test driver imports Deno.test which has no
37-
# ReScript binding).
38-
# - editors/vscode/ : VS Code extension. The extension API is
39-
# exclusively TypeScript; no ReScript path exists.
40-
# - faces/ : vendored snapshots of upstream face
41-
# implementations; the antipattern policy applies to upstream,
42-
# not to a vendored copy in this repo.
29+
# Allowlist (TS legitimate as a bridge/adapter to a non-ReScript ecosystem):
30+
# bindings/ - language bindings (Deno/TS/AssemblyScript FFI to ReScript core)
31+
# *.d.ts - TypeScript type declarations for ReScript FFI
32+
# tests/, test/ - Deno test runners verifying ReScript output
33+
# scripts/ - Deno build scripts (bundle, dev-server, etc.)
34+
# mcp-adapter/ - MCP server adapters (MCP protocol is Deno/TS-typed by spec)
35+
# vscode/ - VSCode extensions (TS is the ecosystem default)
4336
TS_FILES=$(find . \( -name "*.ts" -o -name "*.tsx" \) \
4437
| grep -v node_modules \
45-
| grep -v 'bindings/deno' \
38+
| grep -v '/bindings/' \
4639
| grep -v '\.d\.ts$' \
47-
| grep -v '^\./affinescript-deno-test/' \
48-
| grep -v '^\./editors/vscode/' \
49-
| grep -v '^\./faces/' \
40+
| grep -v '/tests/' \
41+
| grep -v '/test/' \
42+
| grep -v '/scripts/' \
43+
| grep -v '/mcp-adapter/' \
44+
| grep -v '/vscode/' \
5045
|| true)
5146
if [ -n "$TS_FILES" ]; then
5247
echo "❌ TypeScript files detected - use ReScript instead"
5348
echo "$TS_FILES"
5449
exit 1
5550
fi
56-
echo "✅ No TypeScript files (essential-glue exclusions applied)"
51+
echo "✅ No TypeScript files outside allowlisted bridge/adapter paths"
5752
5853
- name: Check for Go
5954
run: |

0 commit comments

Comments
 (0)