UNPKG

@data-client/rest

Version:

Quickly define typed REST resources and endpoints

28 lines (27 loc) 3.03 kB
/** An error with a Rest Endpoint fetch * * @see https://dataclient.io/rest/api/NetworkError */ export default class NetworkError extends Error { constructor(response) { super(`${response.url}: ${response.statusText || `Status not 'ok': ${response.status}`}`); this.name = 'NetworkError'; this.status = response.status; this.response = response; } /** Serialize the error for logging and debugging. * * Error properties are non-enumerable by default, so `JSON.stringify()` * on a plain Error produces `{}`. This ensures status, message, and the * request URL are always included in serialized output. */ toJSON() { return { name: this.name, status: this.status, message: this.message, url: this.response.url }; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOZXR3b3JrRXJyb3IiLCJFcnJvciIsImNvbnN0cnVjdG9yIiwicmVzcG9uc2UiLCJ1cmwiLCJzdGF0dXNUZXh0Iiwic3RhdHVzIiwibmFtZSIsInRvSlNPTiIsIm1lc3NhZ2UiXSwic291cmNlcyI6WyIuLi9zcmMvTmV0d29ya0Vycm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBBbiBlcnJvciB3aXRoIGEgUmVzdCBFbmRwb2ludCBmZXRjaFxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL05ldHdvcmtFcnJvclxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXR3b3JrRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGRlY2xhcmUgc3RhdHVzOiBudW1iZXI7XG4gIGRlY2xhcmUgcmVzcG9uc2U6IFJlc3BvbnNlO1xuICBuYW1lID0gJ05ldHdvcmtFcnJvcic7XG5cbiAgY29uc3RydWN0b3IocmVzcG9uc2U6IFJlc3BvbnNlKSB7XG4gICAgc3VwZXIoXG4gICAgICBgJHtyZXNwb25zZS51cmx9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHQgfHwgYFN0YXR1cyBub3QgJ29rJzogJHtyZXNwb25zZS5zdGF0dXN9YH1gLFxuICAgICk7XG4gICAgdGhpcy5zdGF0dXMgPSByZXNwb25zZS5zdGF0dXM7XG4gICAgdGhpcy5yZXNwb25zZSA9IHJlc3BvbnNlO1xuICB9XG5cbiAgLyoqIFNlcmlhbGl6ZSB0aGUgZXJyb3IgZm9yIGxvZ2dpbmcgYW5kIGRlYnVnZ2luZy5cbiAgICpcbiAgICogRXJyb3IgcHJvcGVydGllcyBhcmUgbm9uLWVudW1lcmFibGUgYnkgZGVmYXVsdCwgc28gYEpTT04uc3RyaW5naWZ5KClgXG4gICAqIG9uIGEgcGxhaW4gRXJyb3IgcHJvZHVjZXMgYHt9YC4gVGhpcyBlbnN1cmVzIHN0YXR1cywgbWVzc2FnZSwgYW5kIHRoZVxuICAgKiByZXF1ZXN0IFVSTCBhcmUgYWx3YXlzIGluY2x1ZGVkIGluIHNlcmlhbGl6ZWQgb3V0cHV0LlxuICAgKi9cbiAgdG9KU09OKCkge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICBzdGF0dXM6IHRoaXMuc3RhdHVzLFxuICAgICAgbWVzc2FnZTogdGhpcy5tZXNzYWdlLFxuICAgICAgdXJsOiB0aGlzLnJlc3BvbnNlLnVybCxcbiAgICB9O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxNQUFNQSxZQUFZLFNBQVNDLEtBQUssQ0FBQztFQUs5Q0MsV0FBV0EsQ0FBQ0MsUUFBa0IsRUFBRTtJQUM5QixLQUFLLENBQ0gsR0FBR0EsUUFBUSxDQUFDQyxHQUFHLEtBQUtELFFBQVEsQ0FBQ0UsVUFBVSxJQUFJLG9CQUFvQkYsUUFBUSxDQUFDRyxNQUFNLEVBQUUsRUFDbEYsQ0FBQztJQUFDLEtBTEpDLElBQUksR0FBRyxjQUFjO0lBTW5CLElBQUksQ0FBQ0QsTUFBTSxHQUFHSCxRQUFRLENBQUNHLE1BQU07SUFDN0IsSUFBSSxDQUFDSCxRQUFRLEdBQUdBLFFBQVE7RUFDMUI7O0VBRUE7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0VLLE1BQU1BLENBQUEsRUFBRztJQUNQLE9BQU87TUFDTEQsSUFBSSxFQUFFLElBQUksQ0FBQ0EsSUFBSTtNQUNmRCxNQUFNLEVBQUUsSUFBSSxDQUFDQSxNQUFNO01BQ25CRyxPQUFPLEVBQUUsSUFBSSxDQUFDQSxPQUFPO01BQ3JCTCxHQUFHLEVBQUUsSUFBSSxDQUFDRCxRQUFRLENBQUNDO0lBQ3JCLENBQUM7RUFDSDtBQUNGIiwiaWdub3JlTGlzdCI6W119