simple-query-mutator

for mutating a search query,delete,change prop.

Usage no npm install needed!

<script type="module">
  import simpleQueryMutator from 'https://cdn.skypack.dev/simple-query-mutator';
</script>

README

simple-query-mutator

NPM version

Install

$ npm install simple-query-mutator --save

formatQuery

formatQuery direct formats the query, can delete a property and change the value of another property at the same time or can be left null.

formatQuery(rawQuery,propToBeRemoved,propToBeChange,ChangeValue);
import { formatQuery } from 'simple-query-mutator';
// ...
const searchStr = '?language=eng&sort=price&type=product';
const result = formatQuery(searchStr, 'language');
// "?sort=price&type=product"

const result = formatQuery(searchStr, null, 'sort', 'date');
// "?language=eng&sort=date&type=product"

const result = formatQuery(searchStr, 'type', 'language', 'alien');
// "?language=alien&sort=date"

checkAndFormatQuery

checkAndFormatQuery checks whether or not the prop exist then continue formatting.

checkAndFormatQuery(rawQuery,method,prop,ChangeValue);
import { checkAndFormatQuery } from 'simple-query-mutator';
// ...
const searchStr = '?language=eng&sort=price&type=product';
const result = checkAndFormatQuery(searchStr, 'get', 'type');
// "product"

const result = checkAndFormatQuery(searchStr, 'has', 'type');
// true

const result = checkAndFormatQuery(searchStr, 'change', 'language', 'alien');
// "?language=alien&sort=date"

const result = checkAndFormatQuery(searchStr, 'delete', 'language');
// "?sort=date"

changeQueryProp

changeQueryProp change the query's property key to a new property key, can change value too.

changeQueryProp(searchQuery,oldProp,newProp,newValue); accept string or object. newValue can be null
import { changeQueryProp } from 'simple-query-mutator';
// ...
const searchObj = { language: 'eng', sort: 'date', type: 'product' };
const searchStr = '?language=eng&sort=date&type=product';

const resultObjWithNewKey = changeQueryProp(searchObj, 'type', 'category');
// { language: 'eng', sort: 'date', category: 'product' }
const resultObjWithNewKeyAndValue = changeQueryProp(
  searchObj,
  'type',
  'category',
  'notproduct'
);
// { language: 'eng', sort: 'date', category: 'notproduct' }

const resultStrWithNewKey = changeQueryProp(searchStr, 'type', 'category');
// { language: 'eng', sort: 'date', category: 'product' }
const resultStrWithNewKeyAndValue = changeQueryProp(
  searchStr,
  'type',
  'category',
  'notproduct'
);
// { language: 'eng', sort: 'date', category: 'notproduct' }
Can be combined with  queryObjToString method.

queryObjToString

queryObjToString turns a search object into string;

queryObjToString(searchObj);
import { queryObjToString } from 'simple-query-mutator';
// ...
const searchObj = { language: 'eng', sort: 'date', type: 'product' };
const result = queryObjToString(searchObj);
// '?language=eng&sort=date&type=product';