Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,13 @@ const options = { prefix: '?' };
qs.stringify(params, options);
// '?food=pizza&bar=chocolate'


// Parse query strings into objects
qs.parse('?food=pizza&bar=chocolate');
// { food: pizza, bar: chocolate }

// Extract query string from url
qs.extract('http://test.com?food=pizza&bar=chocolate');
// food=pizza&bar=chocolate
```

## Tests
Expand Down
162 changes: 161 additions & 1 deletion docs/QueryString.html
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ <h1><a href="index.html" class="link">QueryString</a></h1>
<ul></ul>
</div>

<div class="lnb-api hidden"><h3>Classes</h3><ul><li><a href="QueryString.html">QueryString</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="QueryString_sub"><div class="member-type">Methods</div><ul class="inner"><li><a href="QueryString.html#parse">parse</a></li><li><a href="QueryString.html#stringify">stringify</a></li></ul></div></li></ul></div>
<div class="lnb-api hidden"><h3>Classes</h3><ul><li><a href="QueryString.html">QueryString</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="QueryString_sub"><div class="member-type">Methods</div><ul class="inner"><li><a href="QueryString.html#extract">extract</a></li><li><a href="QueryString.html#parse">parse</a></li><li><a href="QueryString.html#stringify">stringify</a></li></ul></div></li></ul></div>
</nav>
<div id="resizer"></div>

Expand Down Expand Up @@ -167,6 +167,166 @@ <h3 class="subsection-title">Methods</h3>
<dl>


<dt>

<h4 class="name" id="extract">

<span class="type-signature"></span>extract<span class="signature">(url)</span><span class="type-signature"> &rarr; {string}</span>


<div class="container-source members">
<code><a href="index.js.html">index.js</a></code>,
<code><a href="index.js.html#line102">line 102</a></code>
</div>

</h4>



</dt>
<dd>


<div class="description">
Extract the query string sentence from any url. If there is no query string, empty string should be returned.
</div>









<div class="container-params">
<h5>Parameters:</h5>

<table class="params">
<thead>
<tr>

<th>Name</th>


<th>Type</th>





<th class="last">Description</th>
</tr>
</thead>

<tbody>


<tr>

<td class="name"><code>url</code></td>


<td class="type">


<span class="param-type">string</span>



</td>





<td class="description last">url which contains</td>
</tr>


</tbody>
</table>

</div>













<div class="container-returns">
<h5>Returns:</h5>





<span class="param-type">string</span>





- Extracted query string from url





</div>





<dl class="details">






























</dl>




</dd>




<dt>

<h4 class="name" id="parse">
Expand Down
9 changes: 6 additions & 3 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ <h1><a href="index.html" class="link">QueryString</a></h1>
<ul></ul>
</div>

<div class="lnb-api hidden"><h3>Classes</h3><ul><li><a href="QueryString.html">QueryString</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="QueryString_sub"><div class="member-type">Methods</div><ul class="inner"><li><a href="QueryString.html#parse">parse</a></li><li><a href="QueryString.html#stringify">stringify</a></li></ul></div></li></ul></div>
<div class="lnb-api hidden"><h3>Classes</h3><ul><li><a href="QueryString.html">QueryString</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="QueryString_sub"><div class="member-type">Methods</div><ul class="inner"><li><a href="QueryString.html#extract">extract</a></li><li><a href="QueryString.html#parse">parse</a></li><li><a href="QueryString.html#stringify">stringify</a></li></ul></div></li></ul></div>
</nav>
<div id="resizer"></div>

Expand Down Expand Up @@ -74,10 +74,13 @@ <h2>Install</h2><pre class="prettyprint source lang-bash"><code>$ npm install qu
qs.stringify(params, options);
// '?food=pizza&bar=chocolate'


// Parse query strings into objects
qs.parse('?food=pizza&bar=chocolate');
// { food: pizza, bar: chocolate }</code></pre><h2>Tests</h2><pre class="prettyprint source"><code>$ npm test</code></pre><h2>Documentation</h2><p>You have a look at the documentation <a href="https://joshghent.github.io/query-stringifier/">here</a>.</p>
// { food: pizza, bar: chocolate }

// Extract query string from url
qs.extract('http://test.com?food=pizza&bar=chocolate');
// food=pizza&bar=chocolate</code></pre><h2>Tests</h2><pre class="prettyprint source"><code>$ npm test</code></pre><h2>Documentation</h2><p>You have a look at the documentation <a href="https://joshghent.github.io/query-stringifier/">here</a>.</p>
<p>If you ever edit the documentation and wants to generate a new version of it just run the command:</p>
<pre class="prettyprint source"><code>$ npm run docs</code></pre><p>Commit your changes and push them to master. Github pages will update the page automatically.</p>
<h2>Issues?</h2><p>Go <a href="https://github.com/joshghent/query-stringifier/issues">here</a></p>
Expand Down
14 changes: 12 additions & 2 deletions docs/index.js.html
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ <h1><a href="index.html" class="link">QueryString</a></h1>
<ul></ul>
</div>

<div class="lnb-api hidden"><h3>Classes</h3><ul><li><a href="QueryString.html">QueryString</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="QueryString_sub"><div class="member-type">Methods</div><ul class="inner"><li><a href="QueryString.html#parse">parse</a></li><li><a href="QueryString.html#stringify">stringify</a></li></ul></div></li></ul></div>
<div class="lnb-api hidden"><h3>Classes</h3><ul><li><a href="QueryString.html">QueryString</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="QueryString_sub"><div class="member-type">Methods</div><ul class="inner"><li><a href="QueryString.html#extract">extract</a></li><li><a href="QueryString.html#parse">parse</a></li><li><a href="QueryString.html#stringify">stringify</a></li></ul></div></li></ul></div>
</nav>
<div id="resizer"></div>

Expand Down Expand Up @@ -142,8 +142,18 @@ <h1><a href="index.html" class="link">QueryString</a></h1>
return obj;
}

/**
* Extract the query string sentence from any url. If there is no query string, empty string should be returned.
* @param {string} url - url which contains
* @returns {string} Extracted query string from url
*/
QueryString.prototype.extract = function (url) {
return url.substring(url.indexOf('?') + 1);
const queryStringPosition = url.indexOf('?')
const isThereQueryString = queryStringPosition > -1

if (!isThereQueryString) return ''

return url.substring(queryStringPosition + 1);
}

// Export the module
Expand Down
12 changes: 11 additions & 1 deletion index.js
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,18 @@ QueryString.prototype.parse = function (queryStr) {
return obj;
}

/**
* Extract the query string sentence from any url. If there is no query string, empty string should be returned.
* @param {string} url - url which contains
* @returns {string} Extracted query string from url
*/
QueryString.prototype.extract = function (url) {
return url.substring(url.indexOf('?') + 1);
const queryStringPosition = url.indexOf('?')
const isThereQueryString = queryStringPosition > -1

if (!isThereQueryString) return ''

return url.substring(queryStringPosition + 1);
}

// Export the module
Expand Down
9 changes: 8 additions & 1 deletion test.js
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,19 @@ describe('query-stringifier', function () {
});

describe('#extract', function () {
it('exract the query string of the url', function() {
it('extract the query string of the url', function() {
var url = 'www.dummyurl.com?firstqueryparam=first&secondqueryparam=second';
var result = qs.extract(url);

expect(result).to.equal('firstqueryparam=first&secondqueryparam=second');
});

it('should return empty if there is no query string', function() {
var url = 'www.dummyurl.com';
var result = qs.extract(url);

expect(result).to.equal('');
});
});

describe('#extract/#parse', function() {
Expand Down