diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-21 08:03:30 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-21 08:03:30 -0400 |
| commit | 2f469404a4ef8bd0e8cdf776a5d25ba04b63febb (patch) | |
| tree | 25574906791e0e79985541c7e532c2da4e846718 /scripts/coverage-summary.el | |
| parent | 275f84076988ee32d976a578d79cf0b22dea6467 (diff) | |
| download | emacs-wttrin-2f469404a4ef8bd0e8cdf776a5d25ba04b63febb.tar.gz emacs-wttrin-2f469404a4ef8bd0e8cdf776a5d25ba04b63febb.zip | |
feat: add typed error hierarchy for fetch failures
Define a wttrin-error condition with children wttrin-invalid-input, wttrin-network-error, wttrin-not-found-error, wttrin-service-error, and wttrin-parse-error, so callers branch on the class of a failure instead of matching message text.
Synchronous paths signal these directly: a nil query and an unknown geolocation provider now raise wttrin-invalid-input. The async fetch path can't signal across its callback, so it tags the error string with the class via a wttrin-error-type text property. The wttrin-error-message-type accessor reads it back, and two-arg callbacks are untouched.
Retyping the classifier also closed two gaps: a missing status and a 2xx with an empty body used to go silent or get mislabeled "Unexpected HTTP status". Both are now parse errors.
wttrin-geolocation.el now requires wttrin for the shared conditions. It's only ever loaded through wttrin, so the require is a no-op in practice and just makes the dependency explicit.
Diffstat (limited to 'scripts/coverage-summary.el')
0 files changed, 0 insertions, 0 deletions
