UNPKG

map-transform-cjs

Version:
1 lines 4.77 kB
{"version":3,"sources":["../../src/utils/stateHelpers.ts","../../src/utils/xor.ts"],"sourcesContent":["import xor from './xor.js'\nimport type { State, InitialState } from '../types.js'\n\n// Context\n\nexport const getLastContext = (state: State) =>\n state.context[state.context.length - 1]\n\nexport const removeLastContext = (state: State) => ({\n ...state,\n context: state.context.slice(0, -1),\n})\n\nexport const pushContext = (state: State, value: unknown) => ({\n ...state,\n context: [...state.context, value],\n})\n\nexport const popContext = (state: State) => ({\n ...state,\n context: state.context.slice(0, -1),\n value: state.context[state.context.length - 1],\n})\n\n// Root\n\nexport const getRootFromState = (state: State) =>\n state.context.length === 0 ? state.value : state.context[0]\n\n// Target\n\nexport const getTargetFromState = (state: State) => state.target\n\nexport function setTargetOnState(state: State, target: unknown): State {\n return {\n ...state,\n target,\n }\n}\n\n// State value\n\nexport const setStateValue = (\n { untouched, ...state }: State, // Clear untouched every time we set a value\n value: unknown,\n shouldPushContext = false,\n): State =>\n shouldPushContext\n ? {\n ...pushContext(state, state.value),\n value,\n }\n : { ...state, value }\n\nexport const getStateValue = (state: State): unknown => state.value\n\nexport const setValueFromState = (\n state: State,\n { value }: State,\n shouldPushContext = false,\n): State => setStateValue(state, value, shouldPushContext)\n\nexport const isNonvalue = (\n value: unknown,\n nonvalues: unknown[] = [undefined],\n) => nonvalues.includes(value)\n\nexport const isNonvalueState = (\n state: State,\n nonvalues: unknown[] = [undefined],\n) => isNonvalue(state.value, nonvalues)\n\nexport const markAsUntouched = (state: State) => ({ ...state, untouched: true })\nexport const clearUntouched = ({ untouched, ...state }: State) => state\nexport const isUntouched = ({ untouched }: State) => !!untouched\n\n// State\n\nexport const populateState = (\n data: unknown,\n { rev = false, noDefaults = false, target = undefined }: InitialState,\n): State => ({\n context: [],\n value: data,\n target,\n rev,\n noDefaults,\n})\n\nexport const goForward = (state: State) =>\n state.rev || state.flip\n ? {\n ...state,\n rev: false,\n flip: false,\n }\n : state\n\nexport const flipState = (state: State, flip = true) => ({\n ...state,\n flip: xor(state.flip, flip),\n})\n\nexport const stopIteration = (state: State) => ({ ...state, iterate: false })\n\nexport const noopNext = async (state: State) => state\n\nexport const revFromState = (state: State, flip = false) =>\n flip ? xor(state.rev, !state.flip) : xor(state.rev, state.flip)\n","export default function xor(a = false, b = false) {\n return a ? !b : b\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAe,SAAR,IAAqB,IAAI,OAAO,IAAI,OAAO;AAChD,SAAO,IAAI,CAAC,IAAI;AAClB;;;ADGO,IAAM,iBAAiB,CAAC,UAC7B,MAAM,QAAQ,MAAM,QAAQ,SAAS,CAAC;AAEjC,IAAM,oBAAoB,CAAC,WAAkB;AAAA,EAClD,GAAG;AAAA,EACH,SAAS,MAAM,QAAQ,MAAM,GAAG,EAAE;AACpC;AAEO,IAAM,cAAc,CAAC,OAAc,WAAoB;AAAA,EAC5D,GAAG;AAAA,EACH,SAAS,CAAC,GAAG,MAAM,SAAS,KAAK;AACnC;AAEO,IAAM,aAAa,CAAC,WAAkB;AAAA,EAC3C,GAAG;AAAA,EACH,SAAS,MAAM,QAAQ,MAAM,GAAG,EAAE;AAAA,EAClC,OAAO,MAAM,QAAQ,MAAM,QAAQ,SAAS,CAAC;AAC/C;AAIO,IAAM,mBAAmB,CAAC,UAC/B,MAAM,QAAQ,WAAW,IAAI,MAAM,QAAQ,MAAM,QAAQ,CAAC;AAIrD,IAAM,qBAAqB,CAAC,UAAiB,MAAM;AAEnD,SAAS,iBAAiB,OAAc,QAAwB;AACrE,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,EACF;AACF;AAIO,IAAM,gBAAgB,CAC3B,EAAE,WAAW,GAAG,MAAM,GACtB,OACA,oBAAoB,UAEpB,oBACI;AAAA,EACE,GAAG,YAAY,OAAO,MAAM,KAAK;AAAA,EACjC;AACF,IACA,EAAE,GAAG,OAAO,MAAM;AAEjB,IAAM,gBAAgB,CAAC,UAA0B,MAAM;AAEvD,IAAM,oBAAoB,CAC/B,OACA,EAAE,MAAM,GACR,oBAAoB,UACV,cAAc,OAAO,OAAO,iBAAiB;AAElD,IAAM,aAAa,CACxB,OACA,YAAuB,CAAC,MAAS,MAC9B,UAAU,SAAS,KAAK;AAEtB,IAAM,kBAAkB,CAC7B,OACA,YAAuB,CAAC,MAAS,MAC9B,WAAW,MAAM,OAAO,SAAS;AAE/B,IAAM,kBAAkB,CAAC,WAAkB,EAAE,GAAG,OAAO,WAAW,KAAK;AACvE,IAAM,iBAAiB,CAAC,EAAE,WAAW,GAAG,MAAM,MAAa;AAC3D,IAAM,cAAc,CAAC,EAAE,UAAU,MAAa,CAAC,CAAC;AAIhD,IAAM,gBAAgB,CAC3B,MACA,EAAE,MAAM,OAAO,aAAa,OAAO,SAAS,OAAU,OAC3C;AAAA,EACX,SAAS,CAAC;AAAA,EACV,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA;AACF;AAEO,IAAM,YAAY,CAAC,UACxB,MAAM,OAAO,MAAM,OACf;AAAA,EACE,GAAG;AAAA,EACH,KAAK;AAAA,EACL,MAAM;AACR,IACA;AAEC,IAAM,YAAY,CAAC,OAAc,OAAO,UAAU;AAAA,EACvD,GAAG;AAAA,EACH,MAAM,IAAI,MAAM,MAAM,IAAI;AAC5B;AAEO,IAAM,gBAAgB,CAAC,WAAkB,EAAE,GAAG,OAAO,SAAS,MAAM;AAEpE,IAAM,WAAW,OAAO,UAAiB;AAEzC,IAAM,eAAe,CAAC,OAAc,OAAO,UAChD,OAAO,IAAI,MAAM,KAAK,CAAC,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,MAAM,IAAI;","names":[]}