Comments (1)
On second thought, if a response ends with 500 that should throw a Response. For graphql we have GraphQLError
which takes an originalError
, so we could expose a MappersmithError
that takes the Response as an argument.
Example, as error handling middleware:
async response(next) {
try {
return await next();
} catch (response) {
if (response instanceof Response) {
throw new GraphQLError(
originalError: new MappersmithError(response),
# ...
);
}
throw e;
}
},
Where MappersmithError is something as simple as:
export class MappersmithError extends Error {
public name = 'MappersmithError';
public response: Response;
constructor(response: Response) {
super('Something went wrong in a request');
this.response = response;
}
}
We don't want to expose this middleware in mappersmith since we are zero dependency / zero peer dependency.
The thrown object can be an error with stack trace but you have to type assert for that scenario in the middleware.
from mappersmith.
Related Issues (20)
- Why does "Network error" have 400 status code? HOT 3
- 2.42.0-beta.1 is published to NPM as latest HOT 1
- `uglifyjs-webpack-plugin` deprecated HOT 1
- configs.fetch is badly typed HOT 2
- Bug: memory leak with when using Http(s)Agent keepAlive=true HOT 5
- unusedMocks not working on Typescript HOT 1
- Import middlewares HOT 4
- Smoke test new release candidate
- Issue when importing Mappersmith from a TypeScript file and using esbuild HOT 8
- Missing some exports on version 2.43.3 HOT 1
- [idea] support protobuf/grpc HOT 2
- [idea] support openapi/swagger HOT 5
- [idea] support AbortController
- [idea] support major datatype/schema validation tools like ZOD/JOI/IO-TS/etc HOT 3
- [idea] align/sync library functionality with modern alternatives like GOT HOT 3
- [idea] provide "api adapters" for easier migration between libraries
- [idea] Support express.js path syntax
- [idea] Bun and Deno support
- [idea] http/3 support sample
- [idea] provide experimental support for uWebSockets
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mappersmith.