An npm module to encode an object into query params of an url
To install queryencoder, run:
$ npm install queryencoderconst { encode } = require('queryencoder');
const object = {
str: 'string',
n: 23,
truthy: true
};
// The result is '?str=string&n=23&truthy=true'
const queryUrl = encode(object);const { encode } = require('queryencoder');
const object = {
str: 'string',
nested: {
a: 'ciao'
}
};
// The result is '?str=string&nested=true&nested.a=ciao'
const queryUrl = encode(object);const { encode } = require('queryencoder');
const object = {
str: 'string',
shown: undefined,
nested: {
a: 'ciao'
},
vero: true
};
// The result is 'str=string&nested.a=ciao&vero'
const queryUrl = encode(object, {
preserveUndefined: true,
addQuestionMark: false,
flagNestedParents: false,
shortBoolean: true
});const { encode } = require('queryencoder');
const object = {
date: new Date('1999-04-23')
};
// The result is 'date=1999-04-23'
const queryUrl = encode(object, {
dateParser: date => date.toISOString().slice(0, 10)
});The documentation site is: queryencoder documentation
The documentation for development site is: queryencoder dev documentation
The function to encode an object into an url query param string.
Syntax:
const queryString = encode(object, options);
Parameters:
- object: It is the object describing the parameters that should be encoded. It is an object that can be nested ad have values of type: string, number, boolean and Date.
- options: Optional. It is the object containing the options.
Options parameters:
- addQuestionMark: Optional. A
booleanthat says if the?will be added to the begin of the result. Default value:true. - shortBoolean: Optional. If a value is of boolean type, it will be just declared if
truewhile omitted iffalse. (e.g.&val) Default value:false. - flagNestedParents: Optional. A
booleanthat says if in case there is a nested object, a parameter with value true for each path to the parents will be added. Default value:true. - preserveNull: Optional. A
booleanthat says if all the null values will be kept and parsed as 'null'. Default value:true. - preserveUndefined: Optional. A
booleanthat says if all the undefined values will be kept and parsed as 'undefined'. Default value:false. - dateParser: Optional. The function used to parse the dates. Default value:
value => value.toISOString().
To build the module make sure you have the dev dependencies installed.
The project is written in Typescript, bundled with Webpack and linted with ESLint.
In order to lint the code:
$ npm run lintIn order to lint and fix the code:
$ npm run lint:fixThere are also the :source and :test suffix after lint in order to lint only the source code or the test code.
To transpile both the source and the test code:
$ npm run transpileThe source and the test folders will be transpiled in the dist folder. Also the type declarations will be generated.
To transpile only the source code:
$ npm run transpile:sourceThe source folder will be transpiled in the dist folder. Also the type declarations will be generated.
After having transpiled the code, run:
$ npm testin order to run the tests with mocha.
If a coverage report is to be generated, run:
$ npm run nyc$ npm run bundleThe source folder will be compiled in the bundled folder. It will contain the bundled index.js and index.d.ts files.

