UNPKG

@libj/make-uri

Version:
62 lines 1.91 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.makeUriQueryString = void 0; var isType_1 = require("./common/isType/isType"); var DefaultOptions = { encode: true, }; var makeUriQueryString = function (query, options) { if (options === void 0) { options = {}; } var opts = __assign(__assign({}, DefaultOptions), options); return Object .keys(query) .map(function (k) { var nextKey = k, val = query[nextKey]; var isEncodeNeeded = needEncode(opts, nextKey); if (isEncodeNeeded) { nextKey = encode(nextKey); } if (val === true) { return nextKey; } if (isEncodeNeeded) { val = encode(val); } return "".concat(nextKey, "=").concat(val); }) .join('&'); }; exports.makeUriQueryString = makeUriQueryString; function needEncode(options, k) { if (options.encode) { if (options.encode === true) { return true; } if ((0, isType_1.isObj)(options.encode) && options.encode.include && options.encode.include.indexOf(k) > -1) { return true; } if ((0, isType_1.isObj)(options.encode) && options.encode.exclude && options.encode.exclude.indexOf(k) < 0) { return true; } } return false; } function encode(val) { return encodeURIComponent(decodeURIComponent(val)); } //# sourceMappingURL=makeUriQueryString.js.map