Tidied email address (de)serializer - #30365
Conversation
no ref - `EmailAddressParser` was a class that only had static methods. This replaces the class with "normal" exported functions. - Fully TypeScriptified the module. - Because it's just a regular module, changed imports from `EmailAddressParser` (capital E) to `emailAddressParser` (lowercase E). This change should have no user impact.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: QUIET Plan: Pro Plus Run ID: 📒 Files selected for processing (11)
💤 Files with no reviewable changes (2)
Included review availability: Your plan provides up to 10 included reviews per hour; 1 remains after this review. 📜 Recent review details⏰ Context from checks skipped due to timeout. (12)
🧰 Additional context used📓 Path-based instructions (10)Review new or changed service boundaries for explicit dependency ownership,⚙️ CodeRabbit configuration file Files:
Review whether tests prove changed behaviour, meaningful error/edge paths, and⚙️ CodeRabbit configuration file Files:
New source files must be TypeScript: flag new JS files as a required change⚙️ CodeRabbit configuration file Files:
Review lens: "where does this data become trusted?"⚙️ CodeRabbit configuration file Files:
Prioritise concrete correctness, security, data-integrity, compatibility,⚙️ CodeRabbit configuration file Files:
Boot owns service initialization; do not📄 CodeRabbit inference engine (AGENTS.md) Files:
Type-safe boundaries: Fail only if the PR:📄 CodeRabbit inference engine (Custom checks) Files:
New standalone services use TypeScript; keep CommonJS only📄 CodeRabbit inference engine (AGENTS.md) Files:
New files are TypeScript: Fail if the PR adds a new .js/.jsx/.cjs/.mjs source file, unless it is: a DB📄 CodeRabbit inference engine (Custom checks) Files:
Always use `pnpm`, never npm or Yarn.📄 CodeRabbit inference engine (AGENTS.md) Files:
🔇 Additional comments (9)
WalkthroughThe email address parser moves from a default Suggested reviewers: Merge Risk: ⚪ Minimal · up to This PR refactors email address parsing and updates its imports without evidence of a user-facing behavior change; no actionable merge-blocking risk remains beyond normal checks and review. 🚥 Pre-merge checks | ✅ 6✅ Passed checks (6 passed)
Full details: Type-Safe BoundariesExplanation PASS. The commit replaces the pre-existing parser class with equivalent Full details: New Files Are TypescriptExplanation The pull request adds only ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
|
| Command | Status | Duration | Result |
|---|---|---|---|
nx run ghost:test:ci:integration |
✅ Succeeded | 4m 13s | View ↗ |
nx run ghost:test:legacy |
✅ Succeeded | 3m 6s | View ↗ |
nx run ghost-monorepo:lint:boundaries |
✅ Succeeded | 16s | View ↗ |
nx run-many -t test:unit -p ghost |
✅ Succeeded | 32s | View ↗ |
nx run-many -t lint -p ghost,ghost-monorepo |
✅ Succeeded | 16s | View ↗ |
nx run @tryghost/e2e:test:fixtures |
✅ Succeeded | 1s | View ↗ |
nx run @tryghost/admin:build |
✅ Succeeded | 3s | View ↗ |
nx run-many --target=build --projects=tag:publi... |
✅ Succeeded | <1s | View ↗ |
💡 Verify your cache is correct by running tasks in a sandbox. Read docs ↗
☁️ Nx Cloud last updated this comment at 2026-08-28 14:48:56 UTC
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #30365 +/- ##
==========================================
+ Coverage 75.99% 76.04% +0.04%
==========================================
Files 1676 1675 -1
Lines 159975 159965 -10
Branches 19574 19578 +4
==========================================
+ Hits 121572 121638 +66
+ Misses 37382 37336 -46
+ Partials 1021 991 -30
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|

no ref
EmailAddressParserwas a class that only had static methods. This replaces the class with "normal" exported functions.Fully TypeScriptified the module.
Because it's just a regular module, changed imports from
EmailAddressParser(capital E) toemailAddressParser(lowercase E).This change should have no user impact.