UNPKG

irest-app-test

Version:

iRest simulator application tooling and scripts - Backend

10 lines 6.35 kB
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:!0}),exports.composeResponse=composeResponse,exports["default"]=streamlineResponse,exports.findAndReplace=findAndReplace,exports.findInArray=findInArray,exports.findInObject=findInObject,exports.getBulkResponse=getBulkResponse;var _typeof2=_interopRequireDefault(require("@babel/runtime/helpers/typeof")),_sizeof=_interopRequireDefault(require("../../../helpers/sizeof")),_util=require("../../../helpers/util"),_responseHelper=require("../../../helpers/responseHelper"),_require=require("@faker-js/faker"),faker=_require.faker;/* eslint-disable no-unused-expressions */function streamlineResponse(a,b){var c=a.mockData,d=c.statusCode,e=c.contentType;return b.writeHead(d,{"Content-Type":e,"Transfer-Encoding":"chunked"}),getBulkResponse(a,b),b.end()}function findAndReplace(a,b,c,d){var e=c[d];// eslint-disable-next-line no-param-reassign if(delete c[d],Object.keys(c).forEach(function(a){var d=c[a];"string"==typeof d?b.write("\"".concat(a,"\": \"").concat(d,"\",")):b.write("\"".concat(a,"\": ").concat(d,","))}),"object"===(0,_typeof2["default"])(e)&&e.constructor===Array){if(b.write("\"".concat(d,"\": [")),a.requestData.dataCount)for(var f=a.mockData.dynamicResponseRandom?JSON.stringify(faker.lorem.sentences()):JSON.stringify(a.requestData.dynamicData),g=0;g<(0,_responseHelper.getDynamicCount)(a);g++)// eslint-disable-next-line no-unused-expressions g==(0,_responseHelper.getDynamicCount)(a)-1?b.write("".concat(f)):b.write("".concat(f,","));if(a.requestData.dataSize)for(var h=1024*(0,_responseHelper.getDynamicSize)(a),j=0,k=a.mockData.dynamicResponseRandom?JSON.stringify(faker.lorem.sentences()):JSON.stringify(a.requestData.dynamicData);j<h;)// eslint-disable-next-line no-unused-expressions j+=(0,_sizeof["default"])(a.requestData.dynamicData),j>h?b.write("".concat(k)):b.write("".concat(k,","));b.write("]")}else if("object"===(0,_typeof2["default"])(e)&&e.constructor===Object){if(b.write("\"".concat(d,"\": {")),a.requestData.dataCount)for(var l=a.mockData.dynamicResponseRandom?JSON.stringify(faker.lorem.sentences()):JSON.stringify(a.requestData.dynamicData),m=0;m<(0,_responseHelper.getDynamicCount)(a);m++)// eslint-disable-next-line no-unused-expressions m==(0,_responseHelper.getDynamicCount)(a)-1?b.write("\"".concat(m,"\": ").concat(l)):b.write("\"".concat(m,"\": ").concat(l,","));if(a.requestData.dataSize)for(var n=1024*(0,_responseHelper.getDynamicSize)(a),o=0,p=0,q=a.mockData.dynamicResponseRandom?JSON.stringify(faker.lorem.sentences()):JSON.stringify(a.requestData.dynamicData);o<n;)// eslint-disable-next-line no-unused-expressions o+=(0,_sizeof["default"])(a.requestData.dynamicData),o>n?b.write("\"".concat(p,"\": ").concat(q)):b.write("\"".concat(p,"\": ").concat(q,",")),p+=1;b.write("}")}else{if(b.write("\"".concat(d,"\": \"")),a.requestData.dataCount)for(var r=a.mockData.dynamicResponseRandom?JSON.stringify(faker.lorem.sentences()).replace(/(["'])/g,""):JSON.stringify(a.requestData.dynamicData).replace(/(["'])/g,""),s=1;s<=(0,_responseHelper.getDynamicCount)(a);s++)b.write(r);if(a.requestData.dataSize)for(var t=1024*(0,_responseHelper.getDynamicSize)(a),u=0,v=a.mockData.dynamicResponseRandom?JSON.stringify(faker.lorem.sentences()).replace(/(["'])/g,""):JSON.stringify(a.requestData.dynamicData).replace(/(["'])/g,"");u<t;)b.write(v),u+=(0,_sizeof["default"])(v);b.write("\"")}}function findInObject(a,b,c,d,e,f){0===Object.keys(c).length?b.write("\"".concat(d,"\": {}")):(b.write("\"".concat(d,"\": ")),composeResponse(a,b,c,e,!0,f))}function findInArray(a,b,c,d,e,f){if(0===c.length)b.write("\"".concat(d,"\": []"));else{b.write("\"".concat(d,"\": ["));for(var g=0;g<c.length;g++){if(f!==g){var h=c[g];// eslint-disable-next-line no-unused-expressions b.write(JSON.stringify(h)),g!==c.length-1&&b.write(",")}if(f===g){var i=c[g];if("object"===(0,_typeof2["default"])(i)&&i.constructor===Array)findInArray(a,b,i,d,e,f);else if("object"===(0,_typeof2["default"])(i)&&i.constructor===Object){var k=g===c.length-1;composeResponse(a,b,i,e,k,f)}else"string"==typeof i?// eslint-disable-next-line no-unused-expressions c.length-1===g?b.write("\"".concat(i,"\"")):b.write("\"".concat(i,"\",")):// eslint-disable-next-line no-unused-expressions c.length-1===g?b.write("".concat(i)):b.write("".concat(i,","))}}b.write("]")}}function composeResponse(a,b,c,d,e,f){if(b.write("{"),Object.prototype.hasOwnProperty.call(c,d))findAndReplace(a,b,c,d);else{var g=Object.keys(c).length;Object.keys(c).forEach(function(e,h){var i=c[e];"object"===(0,_typeof2["default"])(i)&&i.constructor===Object?findInObject(a,b,i,e,d,f):"object"===(0,_typeof2["default"])(i)&&i.constructor===Array?findInArray(a,b,i,e,d,f):"string"==typeof i?b.write("\"".concat(e,"\": \"").concat(i,"\"")):b.write("\"".concat(e,"\": ").concat(i)),h!==g-1&&b.write(",")})}b.write("}"),!1===e&&b.write(",")}function getBulkResponse(a,b){var c=function(){var b=JSON.parse(JSON.stringify(a.requestData.inputData));return b};if(b.write("{\"data\":["),a.requestData.dataSize||a.requestData.dataCount){var d=JSON.parse(a.requestData.specificKey),e=d[d.length-1],f=d.filter(function(a){return"number"==typeof a}),g=f[0];if(a.requestData.bulkDataCount)for(var h=1;h<=(0,_responseHelper.getBulkCount)(a);h++)// eslint-disable-next-line no-unused-expressions composeResponse(a,b,c(),e,null,g),h<(0,_responseHelper.getBulkCount)(a)&&b.write(",");if(a.requestData.bulkDataSize)for(var j=1024*(0,_responseHelper.getBulkSize)(a),k=0;k<j;)k+=(0,_sizeof["default"])(a.requestData.inputData),composeResponse(a,b,c(),e,null,g),k<j?b.write(","):b.write("")}else{if(a.requestData.bulkDataCount)for(var l=1;l<=(0,_responseHelper.getBulkCount)(a);l++){var m=JSON.parse(JSON.stringify(a.requestData.inputData)),n=(0,_util.generateFakerData)(m,a,null,!1,a.requestData.inputData,!0);b.write(JSON.stringify(n)),l<(0,_responseHelper.getBulkCount)(a)&&b.write(",")}if(a.requestData.bulkDataSize)for(var o=1024*(0,_responseHelper.getBulkSize)(a),p=0;p<o;){var q=JSON.parse(JSON.stringify(a.requestData.inputData)),r=(0,_util.generateFakerData)(q,a,null,!1,a.requestData.inputData,!0);p+=(0,_sizeof["default"])(a.requestData.inputData),p>o?b.write(JSON.stringify(r)):b.write("".concat(JSON.stringify(r),","))}}b.write("]}")}