@flowlist/js-core 2.2.0 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -56,7 +56,7 @@ const generateDefaultField = (opts = {}) => __spreadValues(__spreadValues({}, {
56
56
  result: [],
57
57
  noMore: false,
58
58
  nothing: false,
59
- loading: true,
59
+ loading: false,
60
60
  error: null,
61
61
  extra: null,
62
62
  fetched: false,
@@ -272,7 +272,7 @@ const SET_DATA = ({
272
272
  fieldData.noMore = false;
273
273
  fieldData.page = +page;
274
274
  } else {
275
- fieldData.noMore = data.no_more || isEmpty;
275
+ fieldData.noMore = typeof data.no_more === "undefined" ? isEmpty : data.no_more || isEmpty;
276
276
  fieldData.page = fieldData.page + 1;
277
277
  }
278
278
  }
@@ -341,7 +341,7 @@ const initData = ({
341
341
  if (fieldData && fieldData.error && !doRefresh) {
342
342
  return resolve(null);
343
343
  }
344
- if (fieldData && fieldData.loading && fieldData.fetched && !doRefresh && !needReset) {
344
+ if (fieldData && fieldData.loading) {
345
345
  return resolve(null);
346
346
  }
347
347
  const dontFetch = fieldData && fieldData.fetched && !doRefresh;
@@ -360,11 +360,6 @@ const initData = ({
360
360
  const loadData = () => new Promise((res) => {
361
361
  const getDataFromAPI = () => {
362
362
  const funcCaller = typeof func === "string" ? api[func] : func;
363
- if (!funcCaller) {
364
- const error = new Error("func is not a function");
365
- SET_ERROR({ setter, fieldName, error });
366
- reject(error);
367
- }
368
363
  funcCaller(params).then(res).catch((error) => {
369
364
  SET_ERROR({ setter, fieldName, error });
370
365
  reject(error);
@@ -470,11 +465,6 @@ const loadMore = ({
470
465
  params[ENUM.FIELD_DATA.EXTRA_KEY] = fieldData[ENUM.FIELD_DATA.EXTRA_KEY];
471
466
  const getData = () => {
472
467
  const funcCaller = typeof func === "string" ? api[func] : func;
473
- if (!funcCaller) {
474
- const error = new Error("func is not a function");
475
- SET_ERROR({ setter, fieldName, error });
476
- reject(error);
477
- }
478
468
  funcCaller(params).then((data) => {
479
469
  SET_DATA({
480
470
  getter,
@@ -1 +1 @@
1
- var J=Object.defineProperty,W=Object.defineProperties;var Z=Object.getOwnPropertyDescriptors;var k=Object.getOwnPropertySymbols;var v=Object.prototype.hasOwnProperty,q=Object.prototype.propertyIsEnumerable;var w=(l,c,n)=>c in l?J(l,c,{enumerable:!0,configurable:!0,writable:!0,value:n}):l[c]=n,u=(l,c)=>{for(var n in c||(c={}))v.call(c,n)&&w(l,n,c[n]);if(k)for(var n of k(c))q.call(c,n)&&w(l,n,c[n]);return l},G=(l,c)=>W(l,Z(c));(function(l,c){typeof exports=="object"&&typeof module!="undefined"?c(exports):typeof define=="function"&&define.amd?define(["exports"],c):(l=typeof globalThis!="undefined"?globalThis:l||self,c(l.JsCore={}))})(this,function(l){"use strict";const c=["jump","sinceId","page","seenIds","auto"];var n={SETTER_TYPE:{RESET:0,MERGE:1},FETCH_TYPE_ARRAY:c,FETCH_TYPE:{PAGINATION:c[0],SINCE_FIRST_OR_END_ID:c[1],SCROLL_LOAD_MORE:c[2],HAS_LOADED_IDS:c[3],AUTO:c[4]},CHANGE_TYPE:{SEARCH_FIELD:"search",RESET_FIELD:"reset",RESULT_UPDATE_KV:"update",RESULT_ADD_AFTER:"push",RESULT_ADD_BEFORE:"unshift",RESULT_REMOVE_BY_ID:"delete",RESULT_INSERT_TO_BEFORE:"insert-before",RESULT_INSERT_TO_AFTER:"insert-after",RESULT_LIST_MERGE:"patch",RESULT_ITEM_MERGE:"merge"},FIELD_DATA:{RESULT_KEY:"result",EXTRA_KEY:"extra"},DEFAULT_UNIQUE_KEY_NAME:"id"};const j=t=>t.result===void 0,U=(t={})=>u({result:[],noMore:!1,nothing:!1,loading:!0,error:null,extra:null,fetched:!1,page:0,total:0},t),O=({func:t,type:_,query:e={}})=>{t=typeof t=="string"?t:`api-${Math.random().toString(36).substring(2)}`,_=_||"auto";let s=`${t}-${_}`;return Object.keys(e).filter(E=>!~["undefined","object","function"].indexOf(typeof e[E])&&!~["page","is_up","since_id","seen_ids","__refresh__","__reload__"].indexOf(E)).sort().forEach(E=>{s+=`-${E}-${e[E]}`}),s},L=(t,_)=>{if(!_)return t||"";let e=t||"";return(F(_)?_:_.split(".")).forEach(E=>{e=e[E]}),e||""},M=(t,_,e)=>{if(/\./.test(_)){const s=_.split("."),E=s.pop();let i=t;s.forEach(o=>{i=i[o]}),i[E]=e}else t[_]=e},K=(t,_,e)=>{if(F(t)){const s=N(_,t,e);return s<0?void 0:t[s]}return t[_]},N=(t,_,e)=>{let s=-1;for(let E=0;E<_.length;E++)if(L(_[E],e.toString()).toString()===(t||"").toString()){s=E;break}return s},x=(t,_,e)=>{F(_)?_.forEach(s=>{const E=L(s,e).toString();t.forEach((i,o)=>{L(i,e).toString()===E&&(t[o]=u(u({},i),s))})}):Object.keys(_).forEach(s=>{const E=(s||"").toString();t.forEach((i,o)=>{L(i,e).toString()===E&&(t[o]=u(u({},i),_[s]))})})},F=t=>Object.prototype.toString.call(t)==="[object Array]",H=(t,_,e,s,E)=>{if(s===n.FETCH_TYPE.PAGINATION){t[_]=e;return}if(F(e)){t[_]=E?e.concat(t[_]||[]):(t[_]||[]).concat(e);return}if(_!==n.FIELD_DATA.RESULT_KEY){t[_]=e;return}F(t[_])&&(t[_]={}),Object.keys(e).forEach(i=>{t[_][i]=t[_][i]?E?e[i].concat(t[_][i]):t[_][i].concat(e[i]):e[i]})},C=t=>{let _=0;return F(t)?_=t.length:Object.keys(t).forEach(e=>{_+=t[e].length}),_},b=({field:t,uniqueKey:_,query:e={},type:s})=>{const E={};if(t.fetched){const i=_||n.DEFAULT_UNIQUE_KEY_NAME;s===n.FETCH_TYPE.AUTO?(E.seen_ids=t.result.map(o=>L(o,i)).join(","),E.since_id=L(t.result[e.is_up?0:t.result.length-1],i),E.is_up=e.is_up?1:0,E.page=e.page||t.page+1):s===n.FETCH_TYPE.HAS_LOADED_IDS?E.seen_ids=t.result.map(o=>L(o,i)).join(","):s===n.FETCH_TYPE.SINCE_FIRST_OR_END_ID?(E.since_id=L(t.result[e.is_up?0:t.result.length-1],i),E.is_up=e.is_up?1:0):s===n.FETCH_TYPE.PAGINATION?E.page=e.page:s===n.FETCH_TYPE.SCROLL_LOAD_MORE&&(E.page=t.page+1)}else s===n.FETCH_TYPE.AUTO?(E.seen_ids="",E.since_id=e.sinceId||(e.is_up?999999999:0),E.is_up=e.is_up?1:0,E.page=e.page||t.page||1):s===n.FETCH_TYPE.HAS_LOADED_IDS?E.seen_ids="":s===n.FETCH_TYPE.SINCE_FIRST_OR_END_ID?(E.since_id=e.sinceId||(e.is_up?999999999:0),E.is_up=e.is_up?1:0):s===n.FETCH_TYPE.PAGINATION?E.page=e.page||t.page:s===n.FETCH_TYPE.SCROLL_LOAD_MORE&&(E.page=1);return u(u({},e),E)};var B=Object.freeze(Object.defineProperty({__proto__:null,isObjectResult:j,generateDefaultField:U,generateFieldName:O,getObjectDeepValue:L,updateObjectDeepValue:M,searchValueByKey:K,computeMatchedItemIndex:N,combineArrayData:x,isArray:F,setReactivityField:H,computeResultLength:C,generateRequestParams:b},Symbol.toStringTag,{value:"Module"}));const V=({getter:t,setter:_,data:e,fieldName:s,type:E,page:i,insertBefore:o})=>new Promise((I,S)=>{const a=t(s);if(!a){S();return}let A,f;if(j(e))A=e,a.nothing=!1,a.fetched=!0,a.noMore=!0,a.page=-1;else{A=e.result,f=e.extra;const R=C(A)===0;a.nothing=a.fetched?!1:R,a.fetched=!0,a.total=e.total||0,E===n.FETCH_TYPE.PAGINATION?(a.noMore=!1,a.page=+i):(a.noMore=e.no_more||R,a.page=a.page+1)}a.loading=!1,H(a,n.FIELD_DATA.RESULT_KEY,A,E,o),f&&H(a,n.FIELD_DATA.EXTRA_KEY,f,E,o),_({key:s,type:n.SETTER_TYPE.RESET,value:a,callback:()=>{I(null)}})}),m=({setter:t,fieldName:_,error:e})=>{t({key:_,type:n.SETTER_TYPE.MERGE,value:{error:e,loading:!1}})},X=({getter:t,setter:_,func:e,type:s,query:E,opts:i})=>new Promise(o=>{const I=O({func:e,type:s,query:E});if(t(I)){o(null);return}_({key:I,type:n.SETTER_TYPE.RESET,value:U(i),callback:()=>{o(null)}})}),$=({getter:t,setter:_,func:e,type:s,query:E,api:i,uniqueKey:o,callback:I})=>new Promise((S,a)=>{const A=O({func:e,type:s,query:E}),f=t(A),R=!!(E!=null&&E.__refresh__),T=!!(E!=null&&E.__reload__);if(f&&f.error&&!R||f&&f.loading&&f.fetched&&!R&&!T)return S(null);const D=f&&f.fetched&&!R;if(D)return S(null);const g=b({field:G(u({},f),{fetched:!1}),uniqueKey:o,query:E,type:s}),d=()=>{(()=>new Promise(h=>{(()=>{const Y=typeof e=="string"?i[e]:e;if(!Y){const P=new Error("func is not a function");m({setter:_,fieldName:A,error:P}),a(P)}Y(g).then(h).catch(P=>{m({setter:_,fieldName:A,error:P}),a(P)})})()}))().then(h=>{const r=()=>{V({getter:t,setter:_,data:h,fieldName:A,type:s,page:g.page||0,insertBefore:!1}).then(()=>{I&&I({params:g,data:h,refresh:R}),S(null)})};T?_({key:A,type:n.SETTER_TYPE.RESET,value:U(),callback:r}):r()})};!D&&!T?_({key:A,type:n.SETTER_TYPE.RESET,value:G(u({},U()),{loading:!0,error:null}),callback:d}):d()}),Q=({getter:t,setter:_,query:e,type:s,func:E,api:i,uniqueKey:o,errorRetry:I,callback:S})=>new Promise((a,A)=>{const f=O({func:E,type:s,query:e}),R=t(f);if(!R||R.loading||R.nothing||R.noMore&&!I||s===n.FETCH_TYPE.PAGINATION&&e&&+e.page===R.page)return a(null);let T;s===n.FETCH_TYPE.PAGINATION?T={loading:!0,error:null,[n.FIELD_DATA.RESULT_KEY]:[],[n.FIELD_DATA.EXTRA_KEY]:null}:T={loading:!0,error:null};const D=b({field:R,uniqueKey:o,query:e,type:s});D[n.FIELD_DATA.EXTRA_KEY]=R[n.FIELD_DATA.EXTRA_KEY];const g=()=>{const d=typeof E=="string"?i[E]:E;if(!d){const p=new Error("func is not a function");m({setter:_,fieldName:f,error:p}),A(p)}d(D).then(p=>{V({getter:t,setter:_,data:p,fieldName:f,type:s,page:D.page||0,insertBefore:!!(e!=null&&e.is_up)}).then(()=>{S&&S({params:D,data:p,refresh:!1}),a(null)})}).catch(p=>{m({setter:_,fieldName:f,error:p}),A(p)})};_({key:f,type:n.SETTER_TYPE.MERGE,value:T,callback:g})}),z=({getter:t,setter:_,type:e,func:s,query:E,method:i,value:o,id:I,uniqueKey:S,changeKey:a})=>new Promise((A,f)=>{const R=O({func:s,type:e,query:E}),T=t(R);if(!T){f();return}if(T.page===-1){A(null);return}const D=I||"",g=S||n.DEFAULT_UNIQUE_KEY_NAME,d=a||n.FIELD_DATA.RESULT_KEY,p=C(T[n.FIELD_DATA.RESULT_KEY]);if(i===n.CHANGE_TYPE.SEARCH_FIELD)A(K(T[n.FIELD_DATA.RESULT_KEY],D,g));else if(i===n.CHANGE_TYPE.RESULT_UPDATE_KV){const r=N(D,T[n.FIELD_DATA.RESULT_KEY],g);M(T[n.FIELD_DATA.RESULT_KEY][r],d,o)}else if(i===n.CHANGE_TYPE.RESULT_ITEM_MERGE){const r=N(D,T[n.FIELD_DATA.RESULT_KEY],g);T[n.FIELD_DATA.RESULT_KEY][r]=u(u({},T[n.FIELD_DATA.RESULT_KEY][r]),o)}else if(i===n.CHANGE_TYPE.RESET_FIELD)M(T,d,o);else{let r=L(T,d);const Y=N(D,r,g);switch(i){case n.CHANGE_TYPE.RESULT_ADD_AFTER:F(o)?r=r.concat(o):r.push(o);break;case n.CHANGE_TYPE.RESULT_ADD_BEFORE:F(o)?r=o.concat(r):r.unshift(o);break;case n.CHANGE_TYPE.RESULT_REMOVE_BY_ID:Y>=0?r.splice(Y,1):F(D)&&(r=r.filter(P=>D.indexOf(P[g])===-1));break;case n.CHANGE_TYPE.RESULT_INSERT_TO_BEFORE:Y>=0&&r.splice(Y,0,o);break;case n.CHANGE_TYPE.RESULT_INSERT_TO_AFTER:Y>=0&&r.splice(Y+1,0,o);break;case n.CHANGE_TYPE.RESULT_LIST_MERGE:x(r,o,g);break}T[d]=r}const h=C(T[n.FIELD_DATA.RESULT_KEY]);T.total=T.total+h-p,T.nothing=h===0,_({key:R,type:n.SETTER_TYPE.MERGE,value:T,callback:()=>{A(null)}})});l.ENUM=n,l.initData=$,l.initState=X,l.loadMore=Q,l.updateState=z,l.utils=B,Object.defineProperties(l,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
1
+ var J=Object.defineProperty,W=Object.defineProperties;var Z=Object.getOwnPropertyDescriptors;var k=Object.getOwnPropertySymbols;var v=Object.prototype.hasOwnProperty,q=Object.prototype.propertyIsEnumerable;var B=(r,c,n)=>c in r?J(r,c,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[c]=n,I=(r,c)=>{for(var n in c||(c={}))v.call(c,n)&&B(r,n,c[n]);if(k)for(var n of k(c))q.call(c,n)&&B(r,n,c[n]);return r},b=(r,c)=>W(r,Z(c));(function(r,c){typeof exports=="object"&&typeof module!="undefined"?c(exports):typeof define=="function"&&define.amd?define(["exports"],c):(r=typeof globalThis!="undefined"?globalThis:r||self,c(r.JsCore={}))})(this,function(r){"use strict";const c=["jump","sinceId","page","seenIds","auto"];var n={SETTER_TYPE:{RESET:0,MERGE:1},FETCH_TYPE_ARRAY:c,FETCH_TYPE:{PAGINATION:c[0],SINCE_FIRST_OR_END_ID:c[1],SCROLL_LOAD_MORE:c[2],HAS_LOADED_IDS:c[3],AUTO:c[4]},CHANGE_TYPE:{SEARCH_FIELD:"search",RESET_FIELD:"reset",RESULT_UPDATE_KV:"update",RESULT_ADD_AFTER:"push",RESULT_ADD_BEFORE:"unshift",RESULT_REMOVE_BY_ID:"delete",RESULT_INSERT_TO_BEFORE:"insert-before",RESULT_INSERT_TO_AFTER:"insert-after",RESULT_LIST_MERGE:"patch",RESULT_ITEM_MERGE:"merge"},FIELD_DATA:{RESULT_KEY:"result",EXTRA_KEY:"extra"},DEFAULT_UNIQUE_KEY_NAME:"id"};const G=t=>t.result===void 0,N=(t={})=>I({result:[],noMore:!1,nothing:!1,loading:!1,error:null,extra:null,fetched:!1,page:0,total:0},t),h=({func:t,type:_,query:e={}})=>{t=typeof t=="string"?t:`api-${Math.random().toString(36).substring(2)}`,_=_||"auto";let s=`${t}-${_}`;return Object.keys(e).filter(E=>!~["undefined","object","function"].indexOf(typeof e[E])&&!~["page","is_up","since_id","seen_ids","__refresh__","__reload__"].indexOf(E)).sort().forEach(E=>{s+=`-${E}-${e[E]}`}),s},u=(t,_)=>{if(!_)return t||"";let e=t||"";return(L(_)?_:_.split(".")).forEach(E=>{e=e[E]}),e||""},m=(t,_,e)=>{if(/\./.test(_)){const s=_.split("."),E=s.pop();let i=t;s.forEach(a=>{i=i[a]}),i[E]=e}else t[_]=e},j=(t,_,e)=>{if(L(t)){const s=O(_,t,e);return s<0?void 0:t[s]}return t[_]},O=(t,_,e)=>{let s=-1;for(let E=0;E<_.length;E++)if(u(_[E],e.toString()).toString()===(t||"").toString()){s=E;break}return s},K=(t,_,e)=>{L(_)?_.forEach(s=>{const E=u(s,e).toString();t.forEach((i,a)=>{u(i,e).toString()===E&&(t[a]=I(I({},i),s))})}):Object.keys(_).forEach(s=>{const E=(s||"").toString();t.forEach((i,a)=>{u(i,e).toString()===E&&(t[a]=I(I({},i),_[s]))})})},L=t=>Object.prototype.toString.call(t)==="[object Array]",M=(t,_,e,s,E)=>{if(s===n.FETCH_TYPE.PAGINATION){t[_]=e;return}if(L(e)){t[_]=E?e.concat(t[_]||[]):(t[_]||[]).concat(e);return}if(_!==n.FIELD_DATA.RESULT_KEY){t[_]=e;return}L(t[_])&&(t[_]={}),Object.keys(e).forEach(i=>{t[_][i]=t[_][i]?E?e[i].concat(t[_][i]):t[_][i].concat(e[i]):e[i]})},U=t=>{let _=0;return L(t)?_=t.length:Object.keys(t).forEach(e=>{_+=t[e].length}),_},H=({field:t,uniqueKey:_,query:e={},type:s})=>{const E={};if(t.fetched){const i=_||n.DEFAULT_UNIQUE_KEY_NAME;s===n.FETCH_TYPE.AUTO?(E.seen_ids=t.result.map(a=>u(a,i)).join(","),E.since_id=u(t.result[e.is_up?0:t.result.length-1],i),E.is_up=e.is_up?1:0,E.page=e.page||t.page+1):s===n.FETCH_TYPE.HAS_LOADED_IDS?E.seen_ids=t.result.map(a=>u(a,i)).join(","):s===n.FETCH_TYPE.SINCE_FIRST_OR_END_ID?(E.since_id=u(t.result[e.is_up?0:t.result.length-1],i),E.is_up=e.is_up?1:0):s===n.FETCH_TYPE.PAGINATION?E.page=e.page:s===n.FETCH_TYPE.SCROLL_LOAD_MORE&&(E.page=t.page+1)}else s===n.FETCH_TYPE.AUTO?(E.seen_ids="",E.since_id=e.sinceId||(e.is_up?999999999:0),E.is_up=e.is_up?1:0,E.page=e.page||t.page||1):s===n.FETCH_TYPE.HAS_LOADED_IDS?E.seen_ids="":s===n.FETCH_TYPE.SINCE_FIRST_OR_END_ID?(E.since_id=e.sinceId||(e.is_up?999999999:0),E.is_up=e.is_up?1:0):s===n.FETCH_TYPE.PAGINATION?E.page=e.page||t.page:s===n.FETCH_TYPE.SCROLL_LOAD_MORE&&(E.page=1);return I(I({},e),E)};var w=Object.freeze(Object.defineProperty({__proto__:null,isObjectResult:G,generateDefaultField:N,generateFieldName:h,getObjectDeepValue:u,updateObjectDeepValue:m,searchValueByKey:j,computeMatchedItemIndex:O,combineArrayData:K,isArray:L,setReactivityField:M,computeResultLength:U,generateRequestParams:H},Symbol.toStringTag,{value:"Module"}));const x=({getter:t,setter:_,data:e,fieldName:s,type:E,page:i,insertBefore:a})=>new Promise((p,S)=>{const T=t(s);if(!T){S();return}let R,f;if(G(e))R=e,T.nothing=!1,T.fetched=!0,T.noMore=!0,T.page=-1;else{R=e.result,f=e.extra;const A=U(R)===0;T.nothing=T.fetched?!1:A,T.fetched=!0,T.total=e.total||0,E===n.FETCH_TYPE.PAGINATION?(T.noMore=!1,T.page=+i):(T.noMore=typeof e.no_more=="undefined"?A:e.no_more||A,T.page=T.page+1)}T.loading=!1,M(T,n.FIELD_DATA.RESULT_KEY,R,E,a),f&&M(T,n.FIELD_DATA.EXTRA_KEY,f,E,a),_({key:s,type:n.SETTER_TYPE.RESET,value:T,callback:()=>{p(null)}})}),V=({setter:t,fieldName:_,error:e})=>{t({key:_,type:n.SETTER_TYPE.MERGE,value:{error:e,loading:!1}})},X=({getter:t,setter:_,func:e,type:s,query:E,opts:i})=>new Promise(a=>{const p=h({func:e,type:s,query:E});if(t(p)){a(null);return}_({key:p,type:n.SETTER_TYPE.RESET,value:N(i),callback:()=>{a(null)}})}),$=({getter:t,setter:_,func:e,type:s,query:E,api:i,uniqueKey:a,callback:p})=>new Promise((S,T)=>{const R=h({func:e,type:s,query:E}),f=t(R),A=!!(E!=null&&E.__refresh__),o=!!(E!=null&&E.__reload__);if(f&&f.error&&!A||f&&f.loading)return S(null);const D=f&&f.fetched&&!A;if(D)return S(null);const g=H({field:b(I({},f),{fetched:!1}),uniqueKey:a,query:E,type:s}),F=()=>{(()=>new Promise(Y=>{(()=>{(typeof e=="string"?i[e]:e)(g).then(Y).catch(C=>{V({setter:_,fieldName:R,error:C}),T(C)})})()}))().then(Y=>{const l=()=>{x({getter:t,setter:_,data:Y,fieldName:R,type:s,page:g.page||0,insertBefore:!1}).then(()=>{p&&p({params:g,data:Y,refresh:A}),S(null)})};o?_({key:R,type:n.SETTER_TYPE.RESET,value:N(),callback:l}):l()})};!D&&!o?_({key:R,type:n.SETTER_TYPE.RESET,value:b(I({},N()),{loading:!0,error:null}),callback:F}):F()}),Q=({getter:t,setter:_,query:e,type:s,func:E,api:i,uniqueKey:a,errorRetry:p,callback:S})=>new Promise((T,R)=>{const f=h({func:E,type:s,query:e}),A=t(f);if(!A||A.loading||A.nothing||A.noMore&&!p||s===n.FETCH_TYPE.PAGINATION&&e&&+e.page===A.page)return T(null);let o;s===n.FETCH_TYPE.PAGINATION?o={loading:!0,error:null,[n.FIELD_DATA.RESULT_KEY]:[],[n.FIELD_DATA.EXTRA_KEY]:null}:o={loading:!0,error:null};const D=H({field:A,uniqueKey:a,query:e,type:s});D[n.FIELD_DATA.EXTRA_KEY]=A[n.FIELD_DATA.EXTRA_KEY];const g=()=>{(typeof E=="string"?i[E]:E)(D).then(d=>{x({getter:t,setter:_,data:d,fieldName:f,type:s,page:D.page||0,insertBefore:!!(e!=null&&e.is_up)}).then(()=>{S&&S({params:D,data:d,refresh:!1}),T(null)})}).catch(d=>{V({setter:_,fieldName:f,error:d}),R(d)})};_({key:f,type:n.SETTER_TYPE.MERGE,value:o,callback:g})}),z=({getter:t,setter:_,type:e,func:s,query:E,method:i,value:a,id:p,uniqueKey:S,changeKey:T})=>new Promise((R,f)=>{const A=h({func:s,type:e,query:E}),o=t(A);if(!o){f();return}if(o.page===-1){R(null);return}const D=p||"",g=S||n.DEFAULT_UNIQUE_KEY_NAME,F=T||n.FIELD_DATA.RESULT_KEY,d=U(o[n.FIELD_DATA.RESULT_KEY]);if(i===n.CHANGE_TYPE.SEARCH_FIELD)R(j(o[n.FIELD_DATA.RESULT_KEY],D,g));else if(i===n.CHANGE_TYPE.RESULT_UPDATE_KV){const l=O(D,o[n.FIELD_DATA.RESULT_KEY],g);m(o[n.FIELD_DATA.RESULT_KEY][l],F,a)}else if(i===n.CHANGE_TYPE.RESULT_ITEM_MERGE){const l=O(D,o[n.FIELD_DATA.RESULT_KEY],g);o[n.FIELD_DATA.RESULT_KEY][l]=I(I({},o[n.FIELD_DATA.RESULT_KEY][l]),a)}else if(i===n.CHANGE_TYPE.RESET_FIELD)m(o,F,a);else{let l=u(o,F);const P=O(D,l,g);switch(i){case n.CHANGE_TYPE.RESULT_ADD_AFTER:L(a)?l=l.concat(a):l.push(a);break;case n.CHANGE_TYPE.RESULT_ADD_BEFORE:L(a)?l=a.concat(l):l.unshift(a);break;case n.CHANGE_TYPE.RESULT_REMOVE_BY_ID:P>=0?l.splice(P,1):L(D)&&(l=l.filter(C=>D.indexOf(C[g])===-1));break;case n.CHANGE_TYPE.RESULT_INSERT_TO_BEFORE:P>=0&&l.splice(P,0,a);break;case n.CHANGE_TYPE.RESULT_INSERT_TO_AFTER:P>=0&&l.splice(P+1,0,a);break;case n.CHANGE_TYPE.RESULT_LIST_MERGE:K(l,a,g);break}o[F]=l}const Y=U(o[n.FIELD_DATA.RESULT_KEY]);o.total=o.total+Y-d,o.nothing=Y===0,_({key:A,type:n.SETTER_TYPE.MERGE,value:o,callback:()=>{R(null)}})});r.ENUM=n,r.initData=$,r.initState=X,r.loadMore=Q,r.updateState=z,r.utils=w,Object.defineProperties(r,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowlist/js-core",
3
- "version": "2.2.0",
3
+ "version": "2.3.1",
4
4
  "main": "dist/js-core.umd.js",
5
5
  "module": "dist/js-core.es.js",
6
6
  "types": "dist/index.d.ts",
package/src/actions.ts CHANGED
@@ -67,7 +67,7 @@ export const initData = ({
67
67
  return resolve(null)
68
68
  }
69
69
  // 正在请求中,return
70
- if (fieldData && fieldData.loading && fieldData.fetched && !doRefresh && !needReset) {
70
+ if (fieldData && fieldData.loading) {
71
71
  return resolve(null)
72
72
  }
73
73
  // 这个 field 已经请求过了
@@ -91,11 +91,7 @@ export const initData = ({
91
91
  new Promise((res) => {
92
92
  const getDataFromAPI = () => {
93
93
  const funcCaller = typeof func === 'string' ? api[func] : func
94
- if (!funcCaller) {
95
- const error = new Error('func is not a function')
96
- SET_ERROR({ setter, fieldName, error })
97
- reject(error)
98
- }
94
+
99
95
  funcCaller(params)
100
96
  .then(res)
101
97
  .catch((error: Error) => {
@@ -227,11 +223,7 @@ export const loadMore = ({
227
223
 
228
224
  const getData = () => {
229
225
  const funcCaller = typeof func === 'string' ? api[func] : func
230
- if (!funcCaller) {
231
- const error = new Error('func is not a function')
232
- SET_ERROR({ setter, fieldName, error })
233
- reject(error)
234
- }
226
+
235
227
  funcCaller(params)
236
228
  .then((data: any) => {
237
229
  SET_DATA({
package/src/setters.ts CHANGED
@@ -1,4 +1,8 @@
1
- import { computeResultLength, setReactivityField, isObjectResult } from './utils'
1
+ import {
2
+ computeResultLength,
3
+ setReactivityField,
4
+ isObjectResult
5
+ } from './utils'
2
6
  import ENUM from './enum'
3
7
  import type { setDataType, setErrorType } from './types'
4
8
 
@@ -38,7 +42,10 @@ export const SET_DATA = ({
38
42
  fieldData.noMore = false
39
43
  fieldData.page = +page
40
44
  } else {
41
- fieldData.noMore = data.no_more || isEmpty
45
+ fieldData.noMore =
46
+ typeof data.no_more === 'undefined'
47
+ ? isEmpty
48
+ : data.no_more || isEmpty
42
49
  fieldData.page = fieldData.page + 1
43
50
  }
44
51
  }
package/src/utils.ts CHANGED
@@ -21,7 +21,7 @@ export const generateDefaultField = (opts = {}): defaultField => ({
21
21
  result: [],
22
22
  noMore: false,
23
23
  nothing: false,
24
- loading: true,
24
+ loading: false,
25
25
  error: null,
26
26
  extra: null,
27
27
  fetched: false,