with-query
    TypeScript icon, indicating that this package has built-in type declarations

    1.3.0 • Public • Published

    Format url with query (string or object), simple and fast, with the power of qs.

    The typical usage of this library is building URL for Fetch API. It can be used both on server side and browser side.

    CircleCI Coverage Status npm dependency status airbnb style

    const withQuery = require('with-query').default;
     
    fetch(withQuery('https://api.github.com/search/repositories', {
      q: 'query',
      sort: 'stars',
      order: 'asc',
    }))
    .then(res => res.json())
    .then((json) => {
      console.info(json);
    })
    .catch((err) => {
      console.error(err);
    });

    Installation

    • npm
    npm install with-query --save
    • yarn
    yarn add with-query

    Usage

    var withQuery = require('with-query').default;
    var assert = require('assert');
     
    const result1 = withQuery('http://example.com', {
      a: 1,
      b: 'hello',
    });
    assert.equal(result1, 'http://example.com?a=1&b=hello');
     
    // Append and override the query in url
    const result2 = withQuery('http://example.com?a=3&c=4&d=5', {
      a: 1,
      b: 'hello',
    });
    assert.equal(result2, 'http://example.com?a=1&c=4&d=5&b=hello');
     
    // Hash is also supported
    const result3 = withQuery('http://example.com?a=3&c=4&d=5#Append', {
      a: 1,
      b: 'hello',
    });
    assert.equal(result3, 'http://example.com?a=1&c=4&d=5&b=hello#Append');
     
    // Remove hash
    const result4 = withQuery('http://example.com?a=3&c=4&d=5#Append', {
      a: 1,
      b: 'hello',
    }, { noHash: true });
    assert.equal(result4, 'http://example.com?a=1&c=4&d=5&b=hello');
     
    // with the power of qs
    const result5 = withQuery('http://example.com?e[]=f', {
      a: {
        b: 'c',
      },
    });
    assert.equal(result5, 'http://example.com?e%5B0%5D=f&a%5Bb%5D=c');
     
    // parseOpt and stringifyOpt for qs.parse and qs.stringify
    // see https://github.com/ljharb/qs
    const result6 = withQuery('http://example.com&e[]=f', {
      a: {
        b: 'c',
      },
    }, {
      stringifyOpt: {
        encode: false,
      },
      parseOpt: {
        parseArray: false,
      },
    });
    assert.equal(result6, 'http://example.com&e[]=f?a[b]=c');

    License

    MIT

    Install

    npm i with-query

    DownloadsWeekly Downloads

    2,875

    Version

    1.3.0

    License

    MIT

    Unpacked Size

    16.2 kB

    Total Files

    13

    Last publish

    Collaborators

    • kouhin