1.0.4 • Published 3 years ago

@jswork/next-abstract-search-query v1.0.4

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

next-abstract-search-query

Abstract search query for next.

version license size download

installation

npm install -S @jswork/next-abstract-search-query

apis

apiparamsdescription
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.