You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

query-string-manipulator

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

query-string-manipulator - npm Package Compare versions

Comparing version

to
1.1.0

lib/__tests__/index.js

118

lib/index.js

@@ -1,2 +0,2 @@

'use strict';
"use strict";

@@ -6,25 +6,47 @@ Object.defineProperty(exports, "__esModule", {

});
exports.getUrlParams = getUrlParams;
exports.resolveUrlParams = resolveUrlParams;
exports.constructUrlParams = constructUrlParams;
exports.qsm = qsm;
exports["default"] = exports.URL_TOGGLE = exports.URL_SET = exports.URL_REMOVE = void 0;
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
var URL_REMOVE = exports.URL_REMOVE = 'remove';
var URL_SET = exports.URL_SET = 'set';
var URL_TOGGLE = exports.URL_TOGGLE = 'toggle';
function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
var filterByParamName = function filterByParamName(paramName) {
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
var URL_REMOVE = 'remove';
exports.URL_REMOVE = URL_REMOVE;
var URL_SET = 'set';
exports.URL_SET = URL_SET;
var URL_TOGGLE = 'toggle';
exports.URL_TOGGLE = URL_TOGGLE;
function filterByParamName(paramName) {
return function (param) {
return param.key === paramName;
};
};
}
var findParamIndex = function findParamIndex(params, paramName) {
function findParamIndex(params, paramName) {
return params.findIndex(filterByParamName(paramName));
};
}
var removeParam = function removeParam(params, paramName) {
var paramIndex = void 0;
function removeParam(params, paramName) {
var paramIndex;
do {
paramIndex = params.findIndex(filterByParamName(paramName));
if (paramIndex !== -1) {

@@ -34,15 +56,15 @@ params.splice(paramIndex, 1);

} while (paramIndex !== -1);
};
}
var findQueryStart = function findQueryStart(url) {
function findQueryStart(url) {
return url.indexOf('?');
};
}
var removeParams = function removeParams(urlParams, params) {
function removeParams(urlParams, params) {
return params.forEach(function (paramName) {
return removeParam(urlParams, paramName);
});
};
}
var mapInputKeyToParam = function mapInputKeyToParam(params, key) {
function mapInputKeyToParam(params, key) {
return {

@@ -52,9 +74,12 @@ key: key,

};
};
}
var mapInputToParams = function mapInputToParams(params) {
function mapInputToParams(params) {
return Object.keys(params).reduce(function (aggr, key) {
if (params[key] instanceof Array) {
return aggr.concat(params[key].map(function (value) {
return { key: key, value: value };
return {
key: key,
value: value
};
}));

@@ -65,22 +90,30 @@ }

}, []);
};
}
var toggleParams = function toggleParams(urlParams, urlParamsNext, params) {
function toggleParams(urlParams, urlParamsNext, params) {
Object.keys(params).forEach(function (key) {
var paramIndex = findParamIndex(urlParams, key);
var value = params[key];
if (paramIndex === -1) {
urlParamsNext.push({ key: key, value: value });
urlParamsNext.push({
key: key,
value: value
});
} else {
var param = urlParams[paramIndex];
if (param.value === value) {
removeParam(urlParams, key);
} else {
urlParamsNext.push({ key: key, value: value });
urlParamsNext.push({
key: key,
value: value
});
}
}
});
};
}
var getUrlParams = exports.getUrlParams = function getUrlParams(url) {
function getUrlParams(url) {
var decodedUrl = decodeURI(url);

@@ -97,7 +130,10 @@ var queryStart = findQueryStart(decodedUrl);

return { key: key, value: value };
return {
key: key,
value: value
};
});
};
}
var resolveUrlParams = exports.resolveUrlParams = function resolveUrlParams(prevParams, paramActions) {
function resolveUrlParams(prevParams, paramActions) {
var urlParams = prevParams.slice();

@@ -117,11 +153,13 @@ var urlParamsNext = paramActions[URL_SET] ? mapInputToParams(paramActions[URL_SET]) : [];

})), _toConsumableArray(urlParamsNext));
};
}
var constructUrlParams = exports.constructUrlParams = function constructUrlParams(params) {
return params.map(function (param) {
return encodeURI(param.key) + '=' + encodeURI(param.value);
function constructUrlParams(params) {
return params.filter(function (param) {
return param.value !== undefined;
}).map(function (param) {
return param.value === null ? "".concat(encodeURI(param.key)) : "".concat(encodeURI(param.key), "=").concat(encodeURI(param.value));
}).join('&');
};
}
exports.default = function (url) {
function qsm(url) {
var paramActions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};

@@ -132,6 +170,10 @@

}
var params = constructUrlParams(resolveUrlParams(getUrlParams(url), paramActions));
var queryStart = findQueryStart(url);
var strippedUrl = queryStart === -1 ? url : url.substr(0, queryStart);
return params.length === 0 ? strippedUrl : strippedUrl + '?' + params;
};
return params.length === 0 ? strippedUrl : "".concat(strippedUrl, "?").concat(params);
}
var _default = qsm;
exports["default"] = _default;
{
"name": "query-string-manipulator",
"version": "1.0.4",
"version": "1.1.0",
"description": "Manipulate query strings without effort",

@@ -10,3 +10,2 @@ "main": "lib/index.js",

"prepack": "npm run clean && npm test && npm run build",
"pretest": "eslint src",
"test": "jest"

@@ -39,16 +38,21 @@ },

"devDependencies": {
"babel-cli": "^6.26.0",
"babel-core": "^6.26.0",
"babel-istanbul": "^0.12.2",
"babel-preset-es2015": "^6.24.1",
"eslint": "^4.15.0",
"eslint-config-airbnb": "^16.1.0",
"eslint-plugin-filenames": "^1.2.0",
"eslint-plugin-import": "^2.8.0",
"eslint-plugin-jest": "^21.12.2",
"eslint-plugin-jsx-a11y": "^6.0.3",
"eslint-plugin-react": "^7.7.0",
"jest": "^22.4.2"
"@babel/cli": "^7.4.4",
"@babel/core": "^7.4.4",
"@babel/preset-env": "^7.4.4",
"babel-eslint": "^10.0.1",
"babel-jest": "^24.8.0",
"jest": "^24.8.0",
"jest-runner-standard": "0.0.12",
"standard": "^12.0.1"
},
"standard": {
"env": [
"jest"
],
"ignore": [
"lib/**/*"
],
"parser": "babel-eslint"
},
"dependencies": {}
}