Simon Priet e69a613a37 feat: Created a mini nodeJS server with NewMan for testing without PostMan GUI.
This will mimic a run in a CD/CI environment or docker container.
2021-09-08 14:01:19 +02:00

62 lines
1.8 KiB
JavaScript

var _ = require('lodash').noConflict(),
regexes = {
fold: /\r\n([ \t])/g,
trim: /^\s*(.*\S)?\s*$/, // eslint-disable-line security/detect-unsafe-regex
header: /^((\/\/\s*)?\S+):(.*)$/gm // eslint-disable-line security/detect-unsafe-regex
},
headersCommentPrefix = '//';
module.exports = {
authMap: {
apikeyAuth: 'apikey',
basicAuth: 'basic',
bearerAuth: 'bearer',
digestAuth: 'digest',
hawkAuth: 'hawk',
oAuth1: 'oauth1',
oAuth2: 'oauth2',
ntlmAuth: 'ntlm',
awsSigV4: 'awsv4',
normal: null
},
/**
* Parses a string of headers to an object.
*
* @param {String} data - A string of newline concatenated header key-value pairs.
* @param {?Boolean} [legacy] - A flag to indicate whether the parsing is being done for v1 normalization or v1 to
* v2 conversion.
* @returns {Object[]|*} - The parsed list of header key-value pair objects.
* @private
*/
parseHeaders: function (data, legacy) {
if (!data) { return; }
var head,
headers = [],
statusValue = !legacy,
match = regexes.header.exec(data),
property = legacy ? 'enabled' : 'disabled';
data = data.toString().replace(regexes.fold, '$1');
while (match) {
head = {
key: match[1],
value: match[3].replace(regexes.trim, '$1')
};
if (_.startsWith(head.key, headersCommentPrefix)) {
head[property] = statusValue;
head.key = head.key.replace(headersCommentPrefix, '').trim();
}
headers.push(head);
match = regexes.header.exec(data);
}
return headers;
}
};