UNPKG

set-array

Version:
38 lines (23 loc) 651 B
import isPlainObj from"is-plain-obj"; export const test=(updatesObj)=>testUpdatesObj(updatesObj)===undefined; export const testUpdatesObj=(updatesObj)=>{ if(!isPlainObj(updatesObj)){ return{error:"plainObj"} } for(const key in updatesObj){ if(!isValidKey(key)){ return{error:"key",key} } } return testSymbols(updatesObj) }; const testSymbols=(updatesObj)=>{ const[symbol]=Object.getOwnPropertySymbols(updatesObj); if(symbol!==undefined){ return{error:"symbol",symbol} } }; const isValidKey=(key)=>key===ANY_KEY||UPDATE_KEY_REGEXP.test(key); export const ANY_KEY="*"; export const PREPEND_CHAR="+"; const UPDATE_KEY_REGEXP=/^-?\d+\+?$/u;