diff options
Diffstat (limited to 'node_modules/loader-utils/lib/parseQuery.js')
-rw-r--r-- | node_modules/loader-utils/lib/parseQuery.js | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/node_modules/loader-utils/lib/parseQuery.js b/node_modules/loader-utils/lib/parseQuery.js deleted file mode 100644 index 12b3efc..0000000 --- a/node_modules/loader-utils/lib/parseQuery.js +++ /dev/null @@ -1,68 +0,0 @@ -'use strict'; - -const JSON5 = require('json5'); - -const specialValues = { - null: null, - true: true, - false: false, -}; - -function parseQuery(query) { - if (query.substr(0, 1) !== '?') { - throw new Error( - "A valid query string passed to parseQuery should begin with '?'" - ); - } - - query = query.substr(1); - - if (!query) { - return {}; - } - - if (query.substr(0, 1) === '{' && query.substr(-1) === '}') { - return JSON5.parse(query); - } - - const queryArgs = query.split(/[,&]/g); - const result = {}; - - queryArgs.forEach((arg) => { - const idx = arg.indexOf('='); - - if (idx >= 0) { - let name = arg.substr(0, idx); - let value = decodeURIComponent(arg.substr(idx + 1)); - - if (specialValues.hasOwnProperty(value)) { - value = specialValues[value]; - } - - if (name.substr(-2) === '[]') { - name = decodeURIComponent(name.substr(0, name.length - 2)); - - if (!Array.isArray(result[name])) { - result[name] = []; - } - - result[name].push(value); - } else { - name = decodeURIComponent(name); - result[name] = value; - } - } else { - if (arg.substr(0, 1) === '-') { - result[decodeURIComponent(arg.substr(1))] = false; - } else if (arg.substr(0, 1) === '+') { - result[decodeURIComponent(arg.substr(1))] = true; - } else { - result[decodeURIComponent(arg)] = true; - } - } - }); - - return result; -} - -module.exports = parseQuery; |