UNPKG

@graffy/common

Version:

Common libraries that used by various Graffy modules.

47 lines (41 loc) 1.4 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault"); exports.__esModule = true; exports.encode = encode; exports.decode = decode; var _stringify = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/json/stringify")); function encode(query) { return encodeURIComponent((0, _stringify.default)(query)); // return Object.keys(query) // .sort() // .map(key => // typeof query[key] === 'object' ? `${key}(${encode(query[key])})` : key, // ) // .join(','); } // const includeRe = /([^,()]*)([(),]|$)/g; function decode(fields) { return JSON.parse(decodeURIComponent(fields)); // if (!include) return {}; // // includeRe.lastIndex = 0; // const stack = [{}]; // // do { // // eslint-disable-next-line no-unused-vars // const [_, key, delim] = includeRe.exec(include); // const query = stack[stack.length - 1]; // // if (key) query[key] = true; // switch (delim) { // case '(': // if (!key) throw 'parse.unexpected_open'; // query[key] = {}; // stack.push(query[key]); // break; // case ')': // if (stack.length <= 1) throw 'parse.unexpected_close'; // stack.pop(); // } // } while (includeRe.lastIndex < include.length); // // if (stack.length !== 1) throw 'parse.missing_close'; // return stack[0]; }