map-transform 0.4.0-alpha.21 → 0.4.0-alpha.22

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/README.md CHANGED
@@ -788,6 +788,11 @@ order, with the last being run first. The first pipeline is always run, though,
788
788
  as it is common practice to let the first be a `get` that acts like a `set` in
789
789
  reverse.
790
790
 
791
+ With only one pipeline, `alt` will behave a bit differently. A single pipeline
792
+ will be run if the state has an `undefined` value, but skipped otherwise. This
793
+ is different from the multi-pipeline behavor, where the first is always run and
794
+ the rest is only run if the previous returns `undefined`.
795
+
791
796
  You may also define an alt operation as an object:
792
797
 
793
798
  ```javascript
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const stateHelpers_1 = require("../utils/stateHelpers");
4
4
  const definitionHelpers_1 = require("../utils/definitionHelpers");
5
5
  const functional_1 = require("../utils/functional");
6
- function runAlt(operation, index) {
6
+ const runAlt = (isOneMode) => function runAlt(operation, index) {
7
7
  return (options) => (next) => (state) => {
8
8
  const nextState = next(state);
9
9
  const { noneValues } = options;
10
- const isFirst = index === 0;
10
+ const isFirst = !isOneMode && index === 0;
11
11
  if (isFirst) {
12
12
  const thisState = operation(options)(functional_1.identity)(nextState);
13
13
  return (0, stateHelpers_1.isNoneValueState)(thisState, noneValues)
@@ -23,10 +23,11 @@ function runAlt(operation, index) {
23
23
  }
24
24
  }
25
25
  };
26
- }
26
+ };
27
27
  function alt(...defs) {
28
28
  const altOperations = defs.map((def) => (0, definitionHelpers_1.operationFromDef)(def));
29
- return altOperations.map(runAlt);
29
+ const isOneMode = altOperations.length === 1;
30
+ return altOperations.map(runAlt(isOneMode));
30
31
  }
31
32
  exports.default = alt;
32
33
  //# sourceMappingURL=alt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alt.js","sourceRoot":"","sources":["../../src/operations/alt.ts"],"names":[],"mappings":";;AACA,wDAK8B;AAC9B,kEAA6D;AAC7D,oDAA8C;AAE9C,SAAS,MAAM,CAAC,SAAoB,EAAE,KAAa;IACjD,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7B,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;QAC9B,MAAM,OAAO,GAAG,KAAK,KAAK,CAAC,CAAA;QAE3B,IAAI,OAAO,EAAE;YACX,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,qBAAQ,CAAC,CAAC,SAAS,CAAC,CAAA;YACzD,OAAO,IAAA,+BAAgB,EAAC,SAAS,EAAE,UAAU,CAAC;gBAC5C,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE;gBACpE,CAAC,CAAC,SAAS,CAAA;SACd;aAAM;YACL,IAAI,IAAA,+BAAgB,EAAC,SAAS,EAAE,UAAU,CAAC,EAAE;gBAC3C,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,qBAAQ,CAAC,CACjC,IAAA,gCAAiB,EAAC,IAAA,4BAAa,EAAC,SAAS,EAAE,IAAA,6BAAc,EAAC,SAAS,CAAC,CAAC,CAAC,CACvE,CAAA;aACF;iBAAM;gBACL,OAAO,SAAS,CAAA;aACjB;SACF;IACH,CAAC,CAAA;AACH,CAAC;AAED,SAAwB,GAAG,CAAC,GAAG,IAAqB;IAElD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,oCAAgB,EAAC,GAAG,CAAC,CAAC,CAAA;IAK9D,OAAO,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAClC,CAAC;AARD,sBAQC"}
1
+ {"version":3,"file":"alt.js","sourceRoot":"","sources":["../../src/operations/alt.ts"],"names":[],"mappings":";;AACA,wDAK8B;AAC9B,kEAA6D;AAC7D,oDAA8C;AAE9C,MAAM,MAAM,GAAG,CAAC,SAAkB,EAAE,EAAE,CACpC,SAAS,MAAM,CAAC,SAAoB,EAAE,KAAa;IACjD,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7B,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;QAC9B,MAAM,OAAO,GAAG,CAAC,SAAS,IAAI,KAAK,KAAK,CAAC,CAAA;QAEzC,IAAI,OAAO,EAAE;YACX,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,qBAAQ,CAAC,CAAC,SAAS,CAAC,CAAA;YACzD,OAAO,IAAA,+BAAgB,EAAC,SAAS,EAAE,UAAU,CAAC;gBAC5C,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE;gBACpE,CAAC,CAAC,SAAS,CAAA;SACd;aAAM;YACL,IAAI,IAAA,+BAAgB,EAAC,SAAS,EAAE,UAAU,CAAC,EAAE;gBAC3C,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,qBAAQ,CAAC,CACjC,IAAA,gCAAiB,EACf,IAAA,4BAAa,EAAC,SAAS,EAAE,IAAA,6BAAc,EAAC,SAAS,CAAC,CAAC,CACpD,CACF,CAAA;aACF;iBAAM;gBACL,OAAO,SAAS,CAAA;aACjB;SACF;IACH,CAAC,CAAA;AACH,CAAC,CAAA;AAEH,SAAwB,GAAG,CAAC,GAAG,IAAqB;IAElD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,oCAAgB,EAAC,GAAG,CAAC,CAAC,CAAA;IAC9D,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,KAAK,CAAC,CAAA;IAK5C,OAAO,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;AAC7C,CAAC;AATD,sBASC"}
@@ -1,3 +1,3 @@
1
1
  export declare const ensureArray: (value: unknown) => any[];
2
2
  export declare const cloneAsArray: (value: unknown) => any[];
3
- export declare const indexOfIfArray: (arr: unknown, index?: number | undefined) => any;
3
+ export declare const indexOfIfArray: (arr: unknown, index?: number) => any;
@@ -6,5 +6,5 @@ export declare const isMapObject: (def: unknown) => def is MapObject;
6
6
  export declare const isMapPipe: (def: unknown) => def is MapPipe;
7
7
  export declare const isOperation: (def: unknown) => def is Operation;
8
8
  export declare const isMapDefinition: (def: unknown) => def is MapDefinition;
9
- export declare const operationsFromDef: (def?: MapDefinition | undefined) => Operation[] | Operation;
9
+ export declare const operationsFromDef: (def?: MapDefinition) => Operation[] | Operation;
10
10
  export declare function operationFromDef(def?: MapDefinition): Operation;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "map-transform",
3
- "version": "0.4.0-alpha.21",
3
+ "version": "0.4.0-alpha.22",
4
4
  "description": "Map and transform objects with mapping definitions",
5
5
  "author": "Kjell-Morten Bratsberg Thorsen <post@kjellmorten.no>",
6
6
  "license": "ISC",
@@ -36,16 +36,16 @@
36
36
  },
37
37
  "homepage": "https://github.com/integreat-io/map-transform#readme",
38
38
  "dependencies": {
39
- "@types/mustache": "^4.1.3",
39
+ "@types/mustache": "^4.2.1",
40
40
  "ajv": "^8.11.0",
41
41
  "deepmerge": "^4.2.2",
42
42
  "map-any": "^0.2.1",
43
43
  "mustache": "^4.2.0"
44
44
  },
45
45
  "devDependencies": {
46
- "@integreat/ts-dev-setup": "^2.3.0",
46
+ "@integreat/ts-dev-setup": "^2.3.1",
47
47
  "@types/deep-freeze": "^0.1.2",
48
- "@types/sinon": "^10.0.12",
48
+ "@types/sinon": "^10.0.13",
49
49
  "deep-freeze": "0.0.1",
50
50
  "sinon": "^14.0.0"
51
51
  }