Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/is-error-like-response / dist / isErrorLikeResponse.js
Size: Mime:
"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