datocms-listen
Advanced tools
Comparing version 0.1.10 to 0.1.12
@@ -26,2 +26,4 @@ export declare type UpdateData<QueryResult> = { | ||
message: string; | ||
/** Complete HTTP response */ | ||
response: Response; | ||
}; | ||
@@ -72,2 +74,14 @@ export declare type Options<QueryResult, QueryVariables> = { | ||
export declare type UnsubscribeFn = () => void; | ||
export declare class Response500Error extends Error { | ||
response: Response; | ||
constructor(message: string, response: Response); | ||
} | ||
export declare class Response400Error extends Error { | ||
response: Response; | ||
constructor(message: string, response: Response); | ||
} | ||
export declare class InvalidResponseError extends Error { | ||
response: Response; | ||
constructor(message: string, response: Response); | ||
} | ||
export declare function subscribeToQuery<QueryResult = any, QueryVariables = Record<string, any>>(options: Options<QueryResult, QueryVariables>): Promise<UnsubscribeFn>; |
@@ -65,8 +65,9 @@ "use strict"; | ||
exports.__esModule = true; | ||
exports.subscribeToQuery = void 0; | ||
exports.subscribeToQuery = exports.InvalidResponseError = exports.Response400Error = exports.Response500Error = void 0; | ||
var Response500Error = /** @class */ (function (_super) { | ||
__extends(Response500Error, _super); | ||
function Response500Error(message) { | ||
function Response500Error(message, response) { | ||
var _this = _super.call(this, message) || this; | ||
Object.setPrototypeOf(_this, Response500Error.prototype); | ||
_this.response = response; | ||
return _this; | ||
@@ -76,7 +77,9 @@ } | ||
}(Error)); | ||
exports.Response500Error = Response500Error; | ||
var Response400Error = /** @class */ (function (_super) { | ||
__extends(Response400Error, _super); | ||
function Response400Error(message) { | ||
function Response400Error(message, response) { | ||
var _this = _super.call(this, message) || this; | ||
Object.setPrototypeOf(_this, Response400Error.prototype); | ||
_this.response = response; | ||
return _this; | ||
@@ -86,7 +89,9 @@ } | ||
}(Error)); | ||
exports.Response400Error = Response400Error; | ||
var InvalidResponseError = /** @class */ (function (_super) { | ||
__extends(InvalidResponseError, _super); | ||
function InvalidResponseError(message) { | ||
function InvalidResponseError(message, response) { | ||
var _this = _super.call(this, message) || this; | ||
Object.setPrototypeOf(_this, InvalidResponseError.prototype); | ||
_this.response = response; | ||
return _this; | ||
@@ -96,5 +101,6 @@ } | ||
}(Error)); | ||
exports.InvalidResponseError = InvalidResponseError; | ||
function subscribeToQuery(options) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var query, token, variables, preview, includeDrafts, excludeInvalid, environment, customFetcher, customEventSourceClass, onStatusChange, onUpdate, onChannelError, onError, onEvent, customReconnectionPeriod, customBaseUrl, fetcher, EventSourceClass, reconnectionPeriod, baseUrl, waitAndReconnect, channelUrl, req, registration, e_1, data, event_1; | ||
var query, token, variables, preview, includeDrafts, excludeInvalid, environment, customFetcher, customEventSourceClass, onStatusChange, onUpdate, onChannelError, onError, onEvent, customReconnectionPeriod, customBaseUrl, fetcher, EventSourceClass, reconnectionPeriod, baseUrl, waitAndReconnect, channelUrl, req, registration, e_1, event_1; | ||
var _this = this; | ||
@@ -133,9 +139,9 @@ return __generator(this, function (_a) { | ||
if (req.status >= 300 && req.status < 500) { | ||
throw new Response400Error("Invalid status code: ".concat(req.status, " ").concat(req.statusText)); | ||
throw new Response400Error("Invalid status code: ".concat(req.status, " ").concat(req.statusText), req); | ||
} | ||
if (req.status >= 500) { | ||
throw new Response500Error("Invalid status code: ".concat(req.status, " ").concat(req.statusText)); | ||
throw new Response500Error("Invalid status code: ".concat(req.status, " ").concat(req.statusText), req); | ||
} | ||
if (req.headers.get('Content-Type') !== 'application/json') { | ||
throw new InvalidResponseError("Invalid content type: ".concat(req.headers.get('Content-Type'))); | ||
throw new InvalidResponseError("Invalid content type: ".concat(req.headers.get('Content-Type')), req); | ||
} | ||
@@ -150,3 +156,4 @@ return [4 /*yield*/, req.json()]; | ||
channelUrl: channelUrl, | ||
message: 'Received channel URL' | ||
message: 'Received channel URL', | ||
response: req | ||
}); | ||
@@ -157,10 +164,9 @@ } | ||
e_1 = _a.sent(); | ||
if (onError) { | ||
event_1 = new MessageEvent('FetchError', { data: e_1 }); | ||
onError(event_1); | ||
} | ||
if (e_1 instanceof Response400Error) { | ||
throw e_1; | ||
} | ||
if (onError) { | ||
data = JSON.stringify({ message: e_1.message }); | ||
event_1 = new MessageEvent('FetchError', { data: data }); | ||
onError(event_1); | ||
} | ||
if (onStatusChange) { | ||
@@ -167,0 +173,0 @@ onStatusChange('closed'); |
{ | ||
"name": "datocms-listen", | ||
"version": "0.1.10", | ||
"version": "0.1.12", | ||
"types": "dist/index.d.ts", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
@@ -29,2 +29,4 @@ export type UpdateData<QueryResult> = { | ||
message: string; | ||
/** Complete HTTP response */ | ||
response: Response; | ||
}; | ||
@@ -81,20 +83,29 @@ | ||
class Response500Error extends Error { | ||
constructor(message: string) { | ||
export class Response500Error extends Error { | ||
response: Response; | ||
constructor(message: string, response: Response) { | ||
super(message); | ||
Object.setPrototypeOf(this, Response500Error.prototype); | ||
this.response = response; | ||
} | ||
} | ||
class Response400Error extends Error { | ||
constructor(message: string) { | ||
export class Response400Error extends Error { | ||
response: Response; | ||
constructor(message: string, response: Response) { | ||
super(message); | ||
Object.setPrototypeOf(this, Response400Error.prototype); | ||
this.response = response; | ||
} | ||
} | ||
class InvalidResponseError extends Error { | ||
constructor(message: string) { | ||
export class InvalidResponseError extends Error { | ||
response: Response; | ||
constructor(message: string, response: Response) { | ||
super(message); | ||
Object.setPrototypeOf(this, InvalidResponseError.prototype); | ||
this.response = response; | ||
} | ||
@@ -162,2 +173,3 @@ } | ||
`Invalid status code: ${req.status} ${req.statusText}`, | ||
req, | ||
); | ||
@@ -169,2 +181,3 @@ } | ||
`Invalid status code: ${req.status} ${req.statusText}`, | ||
req, | ||
); | ||
@@ -176,2 +189,3 @@ } | ||
`Invalid content type: ${req.headers.get('Content-Type')}`, | ||
req, | ||
); | ||
@@ -188,5 +202,11 @@ } | ||
message: 'Received channel URL', | ||
response: req, | ||
}); | ||
} | ||
} catch (e) { | ||
if (onError) { | ||
const event = new MessageEvent<Error>('FetchError', { data: e }); | ||
onError(event); | ||
} | ||
if (e instanceof Response400Error) { | ||
@@ -196,8 +216,2 @@ throw e; | ||
if (onError) { | ||
const data = JSON.stringify({ message: e.message }); | ||
const event = new MessageEvent('FetchError', { data }); | ||
onError(event); | ||
} | ||
if (onStatusChange) { | ||
@@ -204,0 +218,0 @@ onStatusChange('closed'); |
Sorry, the diff of this file is not supported yet
66106
1052