Repository URL to install this package:
|
Version:
1.0.1 ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
* 'User Not Logged In'
* OF COURSE SUCCESS ON THIS IS 101001
*
* @see https://jira.skava.net/confluence/display/SKC/List+Error+Response+Code
*
* @todo const API_ERROR_MAP = Object.freeze([701, 1])
*/
const exotic_1 = require("exotic");
const composition_1 = require("composition");
const fromGraphqlOrAnyToResponse_1 = require("./fromGraphqlOrAnyToResponse");
/**
* @todo can put in deps file
*/
const knownStatuses = Object.freeze([
'properties.state.status',
'responseMessage',
]);
const getKnownStatus = composition_1.getOneOfFor(knownStatuses);
/**
* @invariant 1 status.includes(Error) == Error
* @invariant 2 Object.keys(response).length < 3 == Error
*/
function isErrorLikeStatus(status) {
if (status.includes('success')) {
// to handle status like -> 'Success - Few or All items has error'
return false;
}
else {
// "No internal transform type"
return (status.includes('transform') ||
status.includes('error') ||
status.includes('failure'));
}
}
exports.isErrorLikeStatus = isErrorLikeStatus;
function isErrorLikeResponse(x) {
const response = fromGraphqlOrAnyToResponse_1.fromGraphqlOrAnyToResponse(x);
// unify casing, get any of the known status properties
const status = getKnownStatus(response).toLowerCase();
// this is what we show in an error popup
const message = exotic_1.isObj(response) === true ? response.responseMessage || '' : '';
// defaults to 0
const code = exotic_1.isObj(response) === true ? exotic_1.toNumber(response.responseCode) : 99;
if (code !== 0 && code !== 101001 && code !== 200 && code !== 204 && code !== 201 && code !== 202) {
return true;
}
else if (message.includes('failure')) {
return true;
}
else if (isErrorLikeStatus(status)) {
return true;
}
// search comes back with 1-2!
// else if (size(response) < 2) {
// return true
// }
else {
return false;
}
}
exports.isErrorLikeResponse = isErrorLikeResponse;
//# sourceMappingURL=isErrorLikeResponse.js.map