From 891db0a12fc138f19b5ab5ea8d49ed5f26472e81 Mon Sep 17 00:00:00 2001 From: Damien Arrachequesne Date: Thu, 30 Sep 2021 15:30:20 +0200 Subject: [PATCH] chore: add an ESM version This change allows bundlers to apply tree shaking to the library. --- esm/index.js | 37 +++++++++++++++++++++++++++++++++++++ esm/package.json | 3 +++ package.json | 6 ++++++ 3 files changed, 46 insertions(+) create mode 100644 esm/index.js create mode 100644 esm/package.json 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..cbd9d91 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"