map-transform 0.5.5 → 1.0.0

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.
Files changed (53) hide show
  1. package/README.md +130 -53
  2. package/dist/index.d.ts +2 -2
  3. package/dist/index.js +2 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/operations/alt.js +21 -23
  6. package/dist/operations/alt.js.map +1 -1
  7. package/dist/operations/apply.js +8 -5
  8. package/dist/operations/apply.js.map +1 -1
  9. package/dist/operations/concat.d.ts +2 -1
  10. package/dist/operations/concat.js +34 -11
  11. package/dist/operations/concat.js.map +1 -1
  12. package/dist/operations/directionals.js +4 -4
  13. package/dist/operations/directionals.js.map +1 -1
  14. package/dist/operations/getSet.js +58 -28
  15. package/dist/operations/getSet.js.map +1 -1
  16. package/dist/operations/lookup.d.ts +3 -1
  17. package/dist/operations/lookup.js +27 -31
  18. package/dist/operations/lookup.js.map +1 -1
  19. package/dist/operations/merge.d.ts +2 -1
  20. package/dist/operations/merge.js +1 -1
  21. package/dist/operations/merge.js.map +1 -1
  22. package/dist/operations/modify.js +4 -7
  23. package/dist/operations/modify.js.map +1 -1
  24. package/dist/operations/pipe.js +4 -4
  25. package/dist/operations/pipe.js.map +1 -1
  26. package/dist/operations/props.js +106 -70
  27. package/dist/operations/props.js.map +1 -1
  28. package/dist/operations/transform.js +6 -12
  29. package/dist/operations/transform.js.map +1 -1
  30. package/dist/transformers/compare.js +17 -8
  31. package/dist/transformers/compare.js.map +1 -1
  32. package/dist/transformers/explode.d.ts +2 -3
  33. package/dist/transformers/explode.js +6 -7
  34. package/dist/transformers/explode.js.map +1 -1
  35. package/dist/transformers/index.d.ts +1 -0
  36. package/dist/transformers/index.js +2 -1
  37. package/dist/transformers/index.js.map +1 -1
  38. package/dist/transformers/merge.d.ts +2 -2
  39. package/dist/transformers/merge.js +9 -4
  40. package/dist/transformers/merge.js.map +1 -1
  41. package/dist/transformers/sort.js +5 -5
  42. package/dist/transformers/sort.js.map +1 -1
  43. package/dist/utils/definitionHelpers.js +4 -4
  44. package/dist/utils/definitionHelpers.js.map +1 -1
  45. package/dist/utils/is.d.ts +2 -0
  46. package/dist/utils/is.js +2 -0
  47. package/dist/utils/is.js.map +1 -1
  48. package/dist/utils/modifyOperationObject.js +9 -10
  49. package/dist/utils/modifyOperationObject.js.map +1 -1
  50. package/dist/utils/stateHelpers.d.ts +26 -3
  51. package/dist/utils/stateHelpers.js +14 -7
  52. package/dist/utils/stateHelpers.js.map +1 -1
  53. package/package.json +4 -4
@@ -1,28 +1,31 @@
1
1
  import mapAny from 'map-any';
2
- import { getStateValue, setStateValue, getTargetFromState, setTargetOnState, getLastContext, getRootFromState, isNonvalue, } from '../utils/stateHelpers.js';
2
+ import modify from './modify.js';
3
+ import { getStateValue, setStateValue, getTargetFromState, setTargetOnState, getLastContext, getRootFromState, isNonvalue, revFromState, } from '../utils/stateHelpers.js';
3
4
  import { isObject } from '../utils/is.js';
4
5
  import { ensureArray, indexOfIfArray } from '../utils/array.js';
5
- import xor from '../utils/xor.js';
6
- const adjustIsSet = (isSet, { rev = false, flip = false }) => xor(isSet, xor(rev, flip));
6
+ const adjustIsSet = (isSet, state) => revFromState(state, isSet);
7
7
  function flatMapAny(fn) {
8
8
  return (value, target) => Array.isArray(value)
9
9
  ? value.flatMap((value) => fn(value, target))
10
10
  : fn(value, target);
11
11
  }
12
+ function handleArrayPath(path) {
13
+ if (path.endsWith('][')) {
14
+ return [path.slice(0, path.length - 2), false, true];
15
+ }
16
+ const pos = path.indexOf('[');
17
+ if (path[pos - 1] === '\\') {
18
+ return [path.replace('\\[', '['), false, false];
19
+ }
20
+ else {
21
+ const isArr = path[pos + 1] === ']';
22
+ return [path.slice(0, pos), isArr, false];
23
+ }
24
+ }
12
25
  function preparePath(path) {
13
26
  if (typeof path === 'string') {
14
27
  if (path.includes('[')) {
15
- if (path.endsWith('][')) {
16
- return [path.slice(0, path.length - 2), false, true];
17
- }
18
- const pos = path.indexOf('[');
19
- if (path[pos - 1] === '\\') {
20
- return [path.replace('\\[', '['), false, false];
21
- }
22
- else {
23
- const isArr = path[pos + 1] === ']';
24
- return [path.slice(0, pos), isArr, false];
25
- }
28
+ return handleArrayPath(path);
26
29
  }
27
30
  else if (path.startsWith('\\$')) {
28
31
  return [path.slice(1), false, false];
@@ -81,6 +84,14 @@ function getSetParentOrRoot(path, isSet) {
81
84
  }
82
85
  };
83
86
  }
87
+ const modifyOnSet = (isSet) => (options) => function modifyOnSet(next) {
88
+ const modifyFn = modify('.')(options)(next);
89
+ return async (state) => {
90
+ return adjustIsSet(isSet, state)
91
+ ? await modifyFn(state)
92
+ : setStateValue(await next(state), undefined);
93
+ };
94
+ };
84
95
  function doModifyGetValue(value, state, options) {
85
96
  const { modifyGetValue } = options;
86
97
  return typeof modifyGetValue === 'function'
@@ -89,8 +100,13 @@ function doModifyGetValue(value, state, options) {
89
100
  }
90
101
  function getSet(isSet = false) {
91
102
  return (path) => {
92
- if (typeof path === 'string' && path[0] === '^') {
93
- return getSetParentOrRoot(path, isSet);
103
+ if (typeof path === 'string') {
104
+ if (path === '$modify') {
105
+ return modifyOnSet(isSet);
106
+ }
107
+ else if (path[0] === '^') {
108
+ return getSetParentOrRoot(path, isSet);
109
+ }
94
110
  }
95
111
  const [basePath, isArr, isIndexProp] = preparePath(path);
96
112
  const isIndex = typeof basePath === 'number';
@@ -127,24 +143,38 @@ function getSet(isSet = false) {
127
143
  };
128
144
  };
129
145
  }
146
+ function resolveArrayNotation(path, pos) {
147
+ const index = Number.parseInt(path.slice(pos + 1), 10);
148
+ if (!Number.isNaN(index)) {
149
+ const basePath = path.slice(0, pos).trim();
150
+ return basePath ? [`${basePath}][`, index] : [index];
151
+ }
152
+ else {
153
+ return path.trim();
154
+ }
155
+ }
156
+ function resolveParentNotation(path) {
157
+ if (path.startsWith('^^') && path.length > 2) {
158
+ return ['^^', path.slice(2).trim()];
159
+ }
160
+ else if (path.length > 1 && path !== '^^') {
161
+ return ['^^', path.slice(1).trim()];
162
+ }
163
+ else {
164
+ return path.trim();
165
+ }
166
+ }
130
167
  function splitUpArrayAndParentNotation(path) {
131
168
  const pos = path.indexOf('[');
132
169
  if (pos > -1 && path[pos - 1] !== '\\') {
133
- const index = Number.parseInt(path.slice(pos + 1), 10);
134
- if (!Number.isNaN(index)) {
135
- const basePath = path.slice(0, pos).trim();
136
- return basePath ? [`${basePath}][`, index] : [index];
137
- }
170
+ return resolveArrayNotation(path, pos);
138
171
  }
139
172
  else if (path.startsWith('^')) {
140
- if (path.startsWith('^^') && path.length > 2) {
141
- return ['^^', path.slice(2).trim()];
142
- }
143
- else if (path.length > 1 && path !== '^^') {
144
- return ['^^', path.slice(1).trim()];
145
- }
173
+ return resolveParentNotation(path);
174
+ }
175
+ else {
176
+ return path.trim();
146
177
  }
147
- return path.trim();
148
178
  }
149
179
  function pathToNextOperations(path, isSet = false) {
150
180
  if (!path || path === '.') {
@@ -1 +1 @@
1
- {"version":3,"file":"getSet.js","sourceRoot":"","sources":["../../src/operations/getSet.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,EACL,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,UAAU,GACX,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAE/D,OAAO,GAAG,MAAM,iBAAiB,CAAA;AAEjC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAE,EAAE,GAAG,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,EAAS,EAAE,EAAE,CAC3E,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;AAE5B,SAAS,UAAU,CAAC,EAAiD;IACnE,OAAO,CAAC,KAAc,EAAE,MAAgB,EAAE,EAAE,CAC1C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAClB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AACzB,CAAC;AAID,SAAS,WAAW,CAClB,IAAqB;IAErB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAEtB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAEvB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAmB,CAAA;aACvE;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAC7B,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;gBAE1B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;aAChD;iBAAM;gBAEL,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,CAAA;gBACnC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;aAC1C;SACF;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAEjC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;SACrC;KACF;IAGD,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;AAC7B,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,IAAI,KAAK,EAAE,EAAE;QAEf,OAAO,CAAC,KAAc,EAAE,EAAE,CAAC,KAAK,CAAA;KACjC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE,CACjC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAC1C,CAAA;IACD,MAAM,KAAK,GAAG,CAAC,KAAc,EAAE,MAAgB,EAAE,EAAE,CACjD,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAA;IAErE,OAAO,CAAC,KAAc,EAAE,KAAc,EAAE,MAAgB,EAAE,EAAE;QAC1D,IAAI,KAAK,EAAE;YACT,OAAO,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;SAC5B;aAAM;YACL,OAAO,KAAK,CAAC,KAAK,CAAC,CAAA;SACpB;IACH,CAAC,CAAA;AACH,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,GAAc,EAAE,EAAE,CACvD,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,KAAK,CAAA;AAEzC,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,CAAC,KAAc,EAAE,KAAc,EAAE,MAAgB,EAAE,EAAE;QAC1D,IAAI,KAAK,EAAE;YACT,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YACpD,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;YACvC,OAAO,GAAG,CAAA;SACX;aAAM;YACL,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACzB,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACrC,CAAC,CAAC,SAAS,CAAA;SACd;IACH,CAAC,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,KAAY;IAC7B,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9C,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;AAC7D,CAAC;AAED,SAAS,OAAO,CAAC,KAAY;IAC3B,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;IACzC,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;AACpD,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,KAAc;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;IACnD,OAAO,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACrC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;YAE7B,OAAO,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;SAC9C;aAAM;YAEL,OAAO,KAAK,CAAC,SAAS,CAAC,CAAA;SACxB;IACH,CAAC,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,KAAY,EAAE,OAAgB;IACtE,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAA;IAClC,OAAO,OAAO,cAAc,KAAK,UAAU;QACzC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;QACvC,CAAC,CAAC,KAAK,CAAA;AACX,CAAC;AAED,SAAS,MAAM,CAAC,KAAK,GAAG,KAAK;IAC3B,OAAO,CAAC,IAAqB,EAAa,EAAE;QAC1C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC/C,OAAO,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;SACvC;QAED,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;QACxD,MAAM,OAAO,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAA;QAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAEvE,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAC3B,KAAK,UAAU,QAAQ,CAAC,KAAK;YAC3B,IAAI,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;gBAG7B,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;gBACxC,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;gBAG1C,MAAM,SAAS,GAAG,MAAM,IAAI,CAC1B,gBAAgB,CACd,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,EAAE,EAC7C,UAAU,CACX,CACF,CAAA;gBAGD,MAAM,KAAK,GAAG,CAAC,KAAc,EAAE,KAAc,EAAE,EAAE,CAC/C,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;gBAEtD,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;gBAC1C,IAAI,KAAK,CAAC,UAAU,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE;oBAChE,OAAO,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;iBACpC;gBACD,MAAM,KAAK,GAAG,KAAK;oBACjB,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC;oBAC3C,CAAC,CAAC,SAAS,CAAA;gBAEb,MAAM,SAAS,GACb,SAAS,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW;oBACzC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;oBACtB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBAGlB,OAAO,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;aACvC;iBAAM;gBAGL,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAA;gBACnC,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAA;gBAC3D,MAAM,aAAa,GAAG,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;gBAErE,MAAM,KAAK,GACT,KAAK,CAAC,UAAU,IAAI,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC;oBAC9D,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,KAAK;wBACP,CAAC,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC;wBAC/C,CAAC,CAAC,aAAa,CAAA;gBAEnB,OAAO,aAAa,CAClB,SAAS,EACT,KAAK,EACL,IAAI,CACL,CAAA;aACF;QACH,CAAC,CAAA;IACL,CAAC,CAAA;AACH,CAAC;AAED,SAAS,6BAA6B,CAAC,IAAY;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC7B,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;YAC1C,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;SACrD;KAEF;SAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QAC/B,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5C,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;SACpC;aAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE;YAC3C,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;SACpC;KACF;IACD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;AACpB,CAAC;AAKD,SAAS,oBAAoB,CAAC,IAAU,EAAE,KAAK,GAAG,KAAK;IACrD,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE;QACzB,OAAO;YACL,GAAG,EAAE,CAAC,CAAC,IAAiB,EAAE,EAAE,CAAC,KAAK,EAAE,KAAY,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC;SACvE,CAAA;KACF;IAGD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QACnB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACpB,KAAK,GAAG,IAAI,CAAA;KACb;IAGD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAA;IACpE,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAG3C,IAAI,KAAK,EAAE;QACT,UAAU,CAAC,OAAO,EAAE,CAAA;KACrB;IAED,OAAO,UAAU,CAAA;AACnB,CAAC;AAKD,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,IAAU,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AAKpE,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,IAAU,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"getSet.js","sourceRoot":"","sources":["../../src/operations/getSet.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,7 @@ export interface Props extends TransformerProps {
3
3
  arrayPath: Path;
4
4
  propPath: Path;
5
5
  matchSeveral?: boolean;
6
+ flip?: boolean;
6
7
  }
7
- export default function lookup({ arrayPath, propPath, matchSeveral, }: Props): Operation;
8
+ export declare function lookup({ arrayPath, propPath, matchSeveral, flip, }: Props): Operation;
9
+ export declare function lookdown(props: Props): Operation;
@@ -1,48 +1,44 @@
1
- import { getStateValue, setStateValue } from '../utils/stateHelpers.js';
1
+ import mapAny from 'map-any/async.js';
2
+ import { getStateValue, setStateValue, goForward, revFromState, } from '../utils/stateHelpers.js';
2
3
  import { defToDataMapper, defToOperation } from '../utils/definitionHelpers.js';
3
4
  import { noopNext } from '../utils/stateHelpers.js';
4
- import xor from '../utils/xor.js';
5
5
  const FLATTEN_DEPTH = 1;
6
6
  const flattenIfArray = (data) => Array.isArray(data) ? data.flat(FLATTEN_DEPTH) : data;
7
- const matchPropInArray = (getProp, matchSeveral) => (arr, state) => async (value) => {
8
- if (matchSeveral) {
9
- const results = await Promise.all(arr.map(async (val) => await getProp(val, state)));
10
- return arr.filter((_v, index) => results[index] === value);
11
- }
12
- else {
13
- for (const val of arr) {
14
- if ((await getProp(val, state)) === value) {
15
- return val;
16
- }
7
+ const findAllMatches = (getProp) => async function findAllMatches(value, arr, state) {
8
+ const results = await Promise.all(arr.map(async (val) => await getProp(val, state)));
9
+ return arr.filter((_v, index) => results[index] === value);
10
+ };
11
+ const findOneMatch = (getProp) => async function findOneMatch(value, arr, state) {
12
+ for (const val of arr) {
13
+ if ((await getProp(val, state)) === value) {
14
+ return val;
17
15
  }
18
- return undefined;
19
16
  }
17
+ return undefined;
20
18
  };
21
- const mapValue = (getArray, getProp, matchSeveral) => {
22
- const matchInArray = matchPropInArray(getProp, matchSeveral);
23
- return async (state) => {
24
- if (xor(state.rev, state.flip)) {
25
- return async (value) => await getProp(value, { ...state, rev: false });
26
- }
27
- else {
28
- const { value: arr } = await getArray({})(noopNext)(state);
29
- return arr ? matchInArray(arr, state) : async () => undefined;
30
- }
19
+ const matchInArray = (getArray, match) => (state) => {
20
+ return async (value) => {
21
+ const fwdState = goForward(state);
22
+ const { value: arr } = await getArray({})(noopNext)(goForward(fwdState));
23
+ return Array.isArray(arr) ? match(value, arr, fwdState) : undefined;
31
24
  };
32
25
  };
33
- export default function lookup({ arrayPath, propPath, matchSeveral = false, }) {
34
- return (options) => (next) => {
26
+ export function lookup({ arrayPath, propPath, matchSeveral = false, flip = false, }) {
27
+ return (options) => {
35
28
  const getter = defToDataMapper(propPath, options);
36
- const mapValueFn = mapValue(defToOperation(arrayPath, options), getter, matchSeveral);
37
- return async function doLookup(state) {
29
+ const matchFn = matchInArray(defToOperation(arrayPath, options), matchSeveral ? findAllMatches(getter) : findOneMatch(getter));
30
+ const extractProp = (state) => async (value) => await getter(value, goForward(state));
31
+ return (next) => async function doLookup(state) {
38
32
  const nextState = await next(state);
39
- const fn = await mapValueFn(nextState);
40
33
  const value = getStateValue(nextState);
41
- const matches = Array.isArray(value)
42
- ? await Promise.all(value.map(fn))
43
- : await fn(value);
34
+ const rev = revFromState(state, flip);
35
+ const matcher = rev ? extractProp : matchFn;
36
+ const matches = await mapAny(matcher(nextState), value);
44
37
  return setStateValue(nextState, flattenIfArray(matches));
45
38
  };
46
39
  };
47
40
  }
41
+ export function lookdown(props) {
42
+ return lookup({ ...props, flip: !props.flip });
43
+ }
48
44
  //# sourceMappingURL=lookup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/operations/lookup.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,GAAG,MAAM,iBAAiB,CAAA;AAQjC,MAAM,aAAa,GAAG,CAAC,CAAA;AAEvB,MAAM,cAAc,GAAG,CAAC,IAAa,EAAE,EAAE,CACvC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAEvD,MAAM,gBAAgB,GACpB,CACE,OAAuD,EACvD,YAAqB,EACrB,EAAE,CACJ,CAAC,GAAc,EAAE,KAAY,EAAE,EAAE,CACjC,KAAK,EAAE,KAAc,EAAE,EAAE;IACvB,IAAI,YAAY,EAAE;QAIhB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAClD,CAAA;QACD,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAA;KAC3D;SAAM;QAGL,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;YACrB,IAAI,CAAC,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,KAAK,KAAK,EAAE;gBACzC,OAAO,GAAG,CAAA;aACX;SACF;QACD,OAAO,SAAS,CAAA;KACjB;AACH,CAAC,CAAA;AAEH,MAAM,QAAQ,GAAG,CACf,QAAmB,EACnB,OAAuD,EACvD,YAAqB,EACrB,EAAE;IACF,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;IAC5D,OAAO,KAAK,EAAE,KAAY,EAAE,EAAE;QAC5B,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;YAC9B,OAAO,KAAK,EAAE,KAAc,EAAE,EAAE,CAC9B,MAAM,OAAO,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;SACjD;aAAM;YACL,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAA;YAC1D,OAAO,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,GAAgB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS,CAAA;SAC3E;IACH,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,SAAS,EACT,QAAQ,EACR,YAAY,GAAG,KAAK,GACd;IACN,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACjD,MAAM,UAAU,GAAG,QAAQ,CACzB,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,EAClC,MAAM,EACN,YAAY,CACb,CAAA;QAED,OAAO,KAAK,UAAU,QAAQ,CAAC,KAAK;YAClC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAA;YACnC,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAA;YACtC,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;YACtC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAClC,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAClC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAA;YACnB,OAAO,aAAa,CAAC,SAAS,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;QAC1D,CAAC,CAAA;IACH,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/operations/lookup.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
- import type { Operation, TransformDefinition } from '../types.js';
1
+ import type { Operation, State, TransformDefinition } from '../types.js';
2
2
  export declare function mergeExisting<T, U>(target: T[], source: U[]): U | (U | T | (U & T))[];
3
+ export declare function mergeStates(state: State, thisState: State): State;
3
4
  export default function merge(...defs: TransformDefinition[]): Operation;
@@ -14,7 +14,7 @@ export function mergeExisting(target, source) {
14
14
  }
15
15
  return target;
16
16
  }
17
- function mergeStates(state, thisState) {
17
+ export function mergeStates(state, thisState) {
18
18
  const target = getStateValue(state);
19
19
  const source = getStateValue(thisState);
20
20
  const value = !isObject(source)
@@ -1 +1 @@
1
- {"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/operations/merge.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAA;AAEjC,OAAO,EACL,aAAa,EACb,aAAa,EACb,eAAe,GAChB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,MAAM,UAAU,aAAa,CAC3B,MAAW,EACX,MAAW;IAEX,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACzB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAA;QAC1B,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAE9B,GAAG,CAAC,KAAK,CAAC,GAAG,SAAS,CAAO,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE;gBACjD,UAAU,EAAE,aAAa;aAC1B,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QACF,OAAO,GAAG,CAAA;KACX;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAY,EAAE,SAAgB;IACjD,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IACnC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IAEvC,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC7B,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YACnB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAA;IAE5D,OAAO,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,GAAG,IAA2B;IAC1D,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,OAAO,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAA;SACpE;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACjC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAC5C,CAAA;QAED,OAAO,KAAK,WAAW,KAAK;YAC1B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAA;YACnC,IAAI,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE;gBACjD,OAAO,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;aAC3C;iBAAM;gBACL,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CACjD,CAAA;gBACD,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;aAClC;QACH,CAAC,CAAA;IACH,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/operations/merge.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAA;AAEjC,OAAO,EACL,aAAa,EACb,aAAa,EACb,eAAe,GAChB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,MAAM,UAAU,aAAa,CAC3B,MAAW,EACX,MAAW;IAEX,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACzB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAA;QAC1B,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAE9B,GAAG,CAAC,KAAK,CAAC,GAAG,SAAS,CAAO,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE;gBACjD,UAAU,EAAE,aAAa;aAC1B,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QACF,OAAO,GAAG,CAAA;KACX;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAY,EAAE,SAAgB;IACxD,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IACnC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IAEvC,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC7B,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YACnB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAA;IAE5D,OAAO,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,GAAG,IAA2B;IAC1D,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,OAAO,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAA;SACpE;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACjC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAC5C,CAAA;QAED,OAAO,KAAK,WAAW,KAAK;YAC1B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAA;YACnC,IAAI,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE;gBACjD,OAAO,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;aAC3C;iBAAM;gBACL,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CACjD,CAAA;gBACD,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;aAClC;QACH,CAAC,CAAA;IACH,CAAC,CAAA;AACH,CAAC"}
@@ -7,13 +7,10 @@ export default function modify(def) {
7
7
  const runFn = defToOperation(def, options);
8
8
  return (next) => async (state) => {
9
9
  const nextState = await next(state);
10
- const contextState = setStateValue(nextState, getTargetFromState(nextState));
11
- const thisState = await runFn(options)(noopNext)(goForward(contextState));
12
- const thisValue = getStateValue(thisState);
13
- const nextValue = getStateValue(nextState);
14
- return setStateValue(nextState, isObject(nextValue) && isObject(thisValue)
15
- ? { ...thisValue, ...nextValue }
16
- : nextValue);
10
+ const thisState = await runFn(options)(noopNext)(goForward(nextState));
11
+ const target = getTargetFromState(nextState);
12
+ const value = getStateValue(thisState);
13
+ return setStateValue(nextState, isObject(target) && isObject(value) ? { ...value, ...target } : target);
17
14
  };
18
15
  };
19
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"modify.js","sourceRoot":"","sources":["../../src/operations/modify.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,SAAS,GACV,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,GAAwB;IACrD,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAC1C,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC/B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAA;YACnC,MAAM,YAAY,GAAG,aAAa,CAChC,SAAS,EACT,kBAAkB,CAAC,SAAS,CAAC,CAC9B,CAAA;YACD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAA;YAEzE,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;YAC1C,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;YAE1C,OAAO,aAAa,CAClB,SAAS,EACT,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC;gBACxC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE;gBAChC,CAAC,CAAC,SAAS,CACd,CAAA;QACH,CAAC,CAAA;IACH,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"modify.js","sourceRoot":"","sources":["../../src/operations/modify.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,SAAS,GACV,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,GAAwB;IACrD,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAC1C,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC/B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAA;YACnC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;YAEtE,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;YAC5C,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;YAEtC,OAAO,aAAa,CAClB,SAAS,EACT,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CACvE,CAAA;QACH,CAAC,CAAA;IACH,CAAC,CAAA;AACH,CAAC"}
@@ -3,8 +3,7 @@ import iterate from './iterate.js';
3
3
  import transform from './transform.js';
4
4
  import flatten from '../transformers/flatten.js';
5
5
  import { defToOperations } from '../utils/definitionHelpers.js';
6
- import xor from '../utils/xor.js';
7
- import { setValueFromState } from '../utils/stateHelpers.js';
6
+ import { setValueFromState, revFromState } from '../utils/stateHelpers.js';
8
7
  function createRun(fns, next) {
9
8
  let fn = next;
10
9
  for (const f of fns) {
@@ -44,8 +43,9 @@ export default function pipe(defs, doReturnContext = false) {
44
43
  const runFwd = createRun(fns, next);
45
44
  const runRev = createRun(Array.from(fns).reverse(), next);
46
45
  return async function doPipe(state) {
47
- const isRev = xor(state.rev, state.flip);
48
- const thisState = isRev ? await runRev(state) : await runFwd(state);
46
+ const thisState = revFromState(state)
47
+ ? await runRev(state)
48
+ : await runFwd(state);
49
49
  return doReturnContext ? thisState : setValueFromState(state, thisState);
50
50
  };
51
51
  };
@@ -1 +1 @@
1
- {"version":3,"file":"pipe.js","sourceRoot":"","sources":["../../src/operations/pipe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipe.js","sourceRoot":"","sources":["../../src/operations/pipe.ts"],"names":[],"mappings":"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"}
@@ -1,41 +1,70 @@
1
1
  import iterate from './iterate.js';
2
- import modify from './modify.js';
3
2
  import pipe from './pipe.js';
4
3
  import { set } from './getSet.js';
5
- import { divide } from './directionals.js';
4
+ import { divide, fwd, rev } from './directionals.js';
6
5
  import plug from './plug.js';
7
- import { getStateValue, setStateValue, setTargetOnState, setValueFromState, isNonvalueState, stopIteration, } from '../utils/stateHelpers.js';
6
+ import { getStateValue, setStateValue, getTargetFromState, setTargetOnState, setValueFromState, isNonvalueState, stopIteration, } from '../utils/stateHelpers.js';
8
7
  import { isTransformObject, isTransformDefinition, defToOperation, } from '../utils/definitionHelpers.js';
9
8
  import { noopNext } from '../utils/stateHelpers.js';
10
- import { isObject } from '../utils/is.js';
11
- function isRegularProp(entry) {
12
- const [prop, pipeline] = entry;
13
- return prop[0] !== '$' && isTransformDefinition(pipeline);
9
+ import { isObject, isNotNullOrUndefined } from '../utils/is.js';
10
+ function pathHasModify(path) {
11
+ const index = path.indexOf('$modify');
12
+ return (index > -1 &&
13
+ (index === 0 || path[index - 1] === '.') &&
14
+ (path.length === index + 7 || path[index + 7] === '.'));
14
15
  }
15
- function isWrongDirection(direction, options) {
16
- if (direction === 'rev' ||
17
- (options.revAlias && direction === options.revAlias)) {
18
- return (rev = false) => !rev;
16
+ function isPathWithModify(pipeline) {
17
+ if (Array.isArray(pipeline)) {
18
+ return pipeline.some(isPathWithModify);
19
19
  }
20
- else if (direction === 'fwd' ||
21
- (options.fwdAlias && direction === options.fwdAlias)) {
22
- return (rev = false) => rev;
20
+ else if (typeof pipeline !== 'string') {
21
+ return false;
23
22
  }
24
23
  else {
25
- return () => false;
24
+ return pathHasModify(pipeline);
26
25
  }
27
26
  }
27
+ function isRegularProp(entry) {
28
+ const [prop, pipeline] = entry;
29
+ return ((prop[0] !== '$' ||
30
+ (isPathWithModify(prop) && !isPathWithModify(pipeline))) &&
31
+ isTransformDefinition(pipeline));
32
+ }
33
+ function sortProps([aProp, aPipeline], [bProp, bPipeline]) {
34
+ const aIsModify = isPathWithModify(aProp) || isPathWithModify(aPipeline);
35
+ const bIsModify = isPathWithModify(bProp) || isPathWithModify(bPipeline);
36
+ return Number(aIsModify) - Number(bIsModify);
37
+ }
38
+ const checkDirection = (requiredDirection, directionKeyword, directionAlias) => requiredDirection === directionKeyword ||
39
+ (directionAlias && requiredDirection === directionAlias);
40
+ function wrapInDirectional(operation, direction) {
41
+ return (options) => {
42
+ if (checkDirection(direction, 'rev', options.revAlias)) {
43
+ return rev(operation)(options);
44
+ }
45
+ else if (checkDirection(direction, 'fwd', options.fwdAlias)) {
46
+ return fwd(operation)(options);
47
+ }
48
+ else {
49
+ return operation(options);
50
+ }
51
+ };
52
+ }
53
+ const mergeTargetAndValueOperation = () => (next) => async function mergeTargetAndValue(state) {
54
+ const nextState = await next(state);
55
+ const target = getTargetFromState(nextState);
56
+ const value = getStateValue(nextState);
57
+ return isObject(target) && isObject(value)
58
+ ? setStateValue(nextState, { ...target, ...value })
59
+ : nextState;
60
+ };
28
61
  function runOperationWithOriginalValue({ value }) {
29
62
  return async (state, fn) => {
30
- const nextState = await fn(noopNext)(setStateValue(state, value));
31
- const target = state.target;
63
+ const nextState = await fn(setStateValue(state, value));
64
+ const target = getTargetFromState(state);
32
65
  const nextValue = getStateValue(nextState);
33
66
  const thisState = setTargetOnState(nextState, nextValue);
34
- if (isObject(target) && isObject(nextValue)) {
35
- const thisValue = { ...target, ...nextValue };
36
- return setStateValue(thisState, thisValue);
37
- }
38
- else if (isObject(target)) {
67
+ if (isObject(target) && !isObject(nextValue)) {
39
68
  return setStateValue(thisState, target);
40
69
  }
41
70
  else {
@@ -54,45 +83,49 @@ function removeSlash(prop) {
54
83
  }
55
84
  return prop;
56
85
  }
86
+ function createDirectionalOperation(pipeline, onlyFwd, onlyRev) {
87
+ if (onlyRev && onlyFwd) {
88
+ return undefined;
89
+ }
90
+ else if (onlyRev) {
91
+ return divide(plug(), pipeline);
92
+ }
93
+ else if (onlyFwd) {
94
+ return divide(pipeline, plug());
95
+ }
96
+ else {
97
+ return pipe(pipeline);
98
+ }
99
+ }
57
100
  const createSetPipeline = (options) => function createSetPipeline([prop, pipeline]) {
58
101
  if (isTransformObject(pipeline)) {
59
- pipeline = {
60
- ...pipeline,
61
- $iterate: pipeline.$iterate || isArr(prop),
62
- };
102
+ pipeline = [
103
+ rev(mergeTargetAndValueOperation),
104
+ {
105
+ ...pipeline,
106
+ $iterate: pipeline.$iterate || isArr(prop),
107
+ },
108
+ ];
63
109
  }
64
110
  const unslashedProp = removeSlash(prop);
65
- const onlyRev = prop !== unslashedProp;
111
+ const isSlashed = prop !== unslashedProp;
112
+ const onlyFwd = isPathWithModify(unslashedProp);
113
+ const onlyRev = isSlashed || isPathWithModify(pipeline);
66
114
  const operations = [defToOperation(pipeline, options), set(unslashedProp)];
67
- return onlyRev
68
- ? divide(plug(), operations)(options)
69
- : pipe(operations)(options);
115
+ return createDirectionalOperation(operations, onlyFwd, onlyRev);
70
116
  };
71
- function modifyWithGivenPath(path, options) {
72
- if (path) {
73
- const modifyFn = modify(path)(options);
74
- return (next) => {
75
- const fn = modifyFn(next);
76
- return async (state, nextState) => await fn(setTargetOnState(state, getStateValue(nextState)));
77
- };
117
+ const runOperations = (stateMappers, options) => async (state) => {
118
+ if (isNonvalueState(state, options.nonvalues)) {
119
+ return state;
78
120
  }
79
- return () => async (state, _nextState) => state;
80
- }
81
- const runOperations = (fn, operations, options) => (next) => {
82
- const modifyFn = fn(next);
83
- return async (state) => {
84
- if (isNonvalueState(state, options.nonvalues)) {
85
- return state;
86
- }
87
- else {
88
- const run = runOperationWithOriginalValue(state);
89
- let nextState = state;
90
- for (const operation of operations) {
91
- nextState = await run(nextState, operation);
92
- }
93
- return modifyFn(nextState, state);
121
+ else {
122
+ const run = runOperationWithOriginalValue(state);
123
+ let nextState = state;
124
+ for (const stateMapper of stateMappers) {
125
+ nextState = await run(nextState, stateMapper(noopNext));
94
126
  }
95
- };
127
+ return nextState;
128
+ }
96
129
  };
97
130
  const setStateProps = (state, noDefaults, flip) => ({
98
131
  ...state,
@@ -100,33 +133,36 @@ const setStateProps = (state, noDefaults, flip) => ({
100
133
  flip: flip || state.flip || false,
101
134
  target: undefined,
102
135
  });
103
- export default function props(def) {
104
- if (Object.keys(def).length === 0) {
105
- return (_options) => (next) => async (state) => setStateValue(await next(state), undefined);
106
- }
107
- const modifyPath = def.$modify === true ? '.' : def.$modify || undefined;
136
+ const fixModifyPath = (def) => def.$modify === true ? { ...def, $modify: '.' } : def;
137
+ const createStateMappers = (def, options) => Object.entries(def)
138
+ .filter(isRegularProp)
139
+ .sort(sortProps)
140
+ .map(createSetPipeline(options))
141
+ .filter(isNotNullOrUndefined)
142
+ .map((fn) => fn(options));
143
+ function prepareOperation(def) {
108
144
  return (options) => {
109
- const nextStateMappers = Object.entries(def)
110
- .filter(isRegularProp)
111
- .map(createSetPipeline(options));
112
- const modifyFn = modifyWithGivenPath(modifyPath, options);
113
- const runFn = runOperations(modifyFn, nextStateMappers, options);
114
- const isWrongDirectionFn = isWrongDirection(def.$direction, options);
145
+ const nextStateMappers = createStateMappers(fixModifyPath(def), options);
146
+ if (nextStateMappers.length === 0) {
147
+ return (next) => async (state) => setStateValue(await next(state), {});
148
+ }
149
+ const run = runOperations(nextStateMappers, options);
150
+ const runWithIterateWhenNeeded = def.$iterate === true ? iterate(() => () => run)(options)(noopNext) : run;
115
151
  return (next) => {
116
- const run = runFn(noopNext);
117
152
  return async function doMutate(state) {
118
153
  const nextState = await next(state);
119
- if (isNonvalueState(nextState, options.nonvalues) ||
120
- isWrongDirectionFn(nextState.rev)) {
154
+ if (isNonvalueState(nextState, options.nonvalues)) {
121
155
  return nextState;
122
156
  }
123
157
  const propsState = stopIteration(setStateProps(nextState, def.$noDefaults, def.$flip));
124
- const thisState = def.$iterate === true
125
- ? await iterate(() => () => run)(options)(noopNext)(propsState)
126
- : await run(propsState);
158
+ const thisState = await runWithIterateWhenNeeded(propsState);
127
159
  return setValueFromState(nextState, thisState);
128
160
  };
129
161
  };
130
162
  };
131
163
  }
164
+ export default function props(def) {
165
+ const operation = prepareOperation(def);
166
+ return wrapInDirectional(operation, def.$direction);
167
+ }
132
168
  //# sourceMappingURL=props.js.map