aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-21 08:03:30 -0400
committerCraig Jennings <c@cjennings.net>2026-06-21 08:03:30 -0400
commit2f469404a4ef8bd0e8cdf776a5d25ba04b63febb (patch)
tree25574906791e0e79985541c7e532c2da4e846718 /scripts
parent275f84076988ee32d976a578d79cf0b22dea6467 (diff)
downloademacs-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')
0 files changed, 0 insertions, 0 deletions