From 45c44989c8fb6e24badd18bb83ac5f68de0aceaf Mon Sep 17 00:00:00 2001 From: kibigo! Date: Fri, 17 Nov 2017 19:11:18 -0800 Subject: Forking glitch theme --- app/javascript/themes/glitch/util/link_header.js | 33 ++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 app/javascript/themes/glitch/util/link_header.js (limited to 'app/javascript/themes/glitch/util/link_header.js') diff --git a/app/javascript/themes/glitch/util/link_header.js b/app/javascript/themes/glitch/util/link_header.js new file mode 100644 index 000000000..a3e7ccf1c --- /dev/null +++ b/app/javascript/themes/glitch/util/link_header.js @@ -0,0 +1,33 @@ +import Link from 'http-link-header'; +import querystring from 'querystring'; + +Link.parseAttrs = (link, parts) => { + let match = null; + let attr = ''; + let value = ''; + let attrs = ''; + + let uriAttrs = /<(.*)>;\s*(.*)/gi.exec(parts); + + if(uriAttrs) { + attrs = uriAttrs[2]; + link = Link.parseParams(link, uriAttrs[1]); + } + + while(match = Link.attrPattern.exec(attrs)) { // eslint-disable-line no-cond-assign + attr = match[1].toLowerCase(); + value = match[4] || match[3] || match[2]; + + if( /\*$/.test(attr)) { + Link.setAttr(link, attr, Link.parseExtendedValue(value)); + } else if(/%/.test(value)) { + Link.setAttr(link, attr, querystring.decode(value)); + } else { + Link.setAttr(link, attr, value); + } + } + + return link; +}; + +export default Link; -- cgit