@flowlist/js-core 2.3.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.
- package/dist/js-core.es.js +1 -1
- package/dist/js-core.umd.js +1 -1
- package/package.json +1 -1
- package/src/setters.ts +9 -2
package/dist/js-core.es.js
CHANGED
|
@@ -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
|
}
|
package/dist/js-core.umd.js
CHANGED
|
@@ -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 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,
|
|
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
package/src/setters.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import {
|
|
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 =
|
|
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
|
}
|