diff --git a/esm/index.js b/esm/index.js new file mode 100644 index 0000000..c9b46fc --- /dev/null +++ b/esm/index.js @@ -0,0 +1,37 @@ +/** + * Compiles a querystring + * Returns string representation of the object + * + * @param {Object} + * @api private + */ + +export function encode (obj) { + var str = ''; + + for (var i in obj) { + if (obj.hasOwnProperty(i)) { + if (str.length) str += '&'; + str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]); + } + } + + return str; +} + +/** + * Parses a simple querystring into an object + * + * @param {String} qs + * @api private + */ + +export function decode (qs){ + var qry = {}; + var pairs = qs.split('&'); + for (var i = 0, l = pairs.length; i < l; i++) { + var pair = pairs[i].split('='); + qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]); + } + return qry; +} diff --git a/esm/package.json b/esm/package.json new file mode 100644 index 0000000..3dbc1ca --- /dev/null +++ b/esm/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} diff --git a/package.json b/package.json index 921d19d..502e93e 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,12 @@ "name": "parseqs", "version": "0.0.6", "description": "Provides methods for parsing a query string into an object, and vice versa.", + "main": "index.js", + "module": "./esm/index.js", + "exports": { + "import": "./esm/index.js", + "require": "index.js" + }, "repository": { "type": "git", "url": "https://github.com/get/querystring.git" @@ -15,5 +21,9 @@ "better-assert": "~1.0.0" }, "author": "Gal Koren", - "license": "MIT" + "license": "MIT", + "files": [ + "index.js", + "esm/" + ] }