1.0.4 • Published 3 years ago
@jswork/next-abstract-search-query v1.0.4
next-abstract-search-query
Abstract search query for next.
installation
npm install -S @jswork/next-abstract-search-query
apis
api | params | description |
---|---|---|
get | - | Get qs like string. |
set | (key,value) | Set key/value. |
sets | (obj) | Set key/value use object. |
usage
import NxAbstractSearchQuery from '@jswork/next-abstract-search-query';
const initialState = {
pageNo: 1,
pageSize: 10,
keyword: '',
types: [],
labels: []
};
const nxsq = new NxAbstractSearchQuery(initialState, {
set: function(data,key,value){
nx.set(data, key, value);
if (!key.includes('page')) {
data.pageNo = 1;
}
},
onChange: function(inEvent){
console.log(inEvent.target.value);
}
});
// set/get
nxsq.set('pageNo', 2);
nxsq.get()
// 'pageNo=2&pageSize=10'
nxsq.set('labels', ['lb1', 'lb2']);
nxsq.get();
// 'pageNo=1&pageSize=10&labels=lb1,lb2'
// sets
nxsq.sets({ pageNo:2, pageSize:20 });
// get inner data
console.log(nxsq.data);
{
pageNo: 2,
pageSize: 10,
keyword: '',
types: [],
labels: ['lb1', 'lb2']
}
defaults
const defaults = {
url: null,
onChange: nx.noop,
onInit: nx.noop,
set: function (data, key, value) {
nx.set(data, key, value);
},
isEmpty: function (value) {
return !value || value.length === 0;
},
transform: function (key, value) {
var _value = Array.isArray(value) ? value.join() : value;
return key + '=' + _value;
}
};
license
Code released under the MIT license.