@abaplint/runtime 2.0.19 → 2.0.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.
@@ -3,4 +3,7 @@ import { ICharacter } from "../types/_character";
3
3
  import { INumeric } from "../types/_numeric";
4
4
  export declare function condense(input: {
5
5
  val: ICharacter | INumeric | string;
6
+ from?: ICharacter | string;
7
+ to?: ICharacter | string;
8
+ del?: ICharacter | string;
6
9
  }): String;
@@ -3,15 +3,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.condense = void 0;
4
4
  const types_1 = require("../types");
5
5
  function condense(input) {
6
- let str = "";
7
- if (typeof input.val === "string") {
8
- str = input.val;
6
+ let str = typeof input.val === "string" ? input.val : input.val.get().toString();
7
+ let from = " ";
8
+ if (input.from) {
9
+ from = typeof input.from === "string" ? input.from : input.from.get().toString();
9
10
  }
10
- else {
11
- str = input.val.get().toString();
11
+ let to = " ";
12
+ if (input.to) {
13
+ to = typeof input.to === "string" ? input.to : input.to.get().toString();
12
14
  }
15
+ /*
16
+ let del = " ";
17
+ if (input.del) {
18
+ del = typeof input.del === "string" ? input.del : input.del.get().toString();
19
+ }
20
+ */
13
21
  str = str.replace(/ +$/, "");
14
22
  str = str.replace(/^ +/, "");
23
+ for (const f of from.split("")) {
24
+ str = str.replace(new RegExp(f.replace(".", "\\."), "g"), to);
25
+ }
15
26
  return new types_1.String().set(str.replace(/ {2,}/g, " "));
16
27
  }
17
28
  exports.condense = condense;
@@ -16,7 +16,7 @@ function round(input) {
16
16
  const ret = new types_1.Float();
17
17
  switch (mode) {
18
18
  case 1:
19
- ret.set(Math.round(val));
19
+ ret.set(Math.ceil(val));
20
20
  break;
21
21
  case 4:
22
22
  ret.set(-Math.round(-val));
@@ -8,10 +8,12 @@ function translate(input) {
8
8
  const to = typeof input.to === "string" ? input.to : input.to.get();
9
9
  const fromSplit = from.split("");
10
10
  const toSplit = to.split("");
11
+ const chars = {};
11
12
  for (let i = 0; i < fromSplit.length; i++) {
12
- const reg = new RegExp(fromSplit[i], "g");
13
- val = val.replace(reg, toSplit[i] || "");
13
+ chars[fromSplit[i]] = toSplit[i] || "";
14
14
  }
15
+ const reg = new RegExp("[" + from + "]", "g");
16
+ val = val.replace(reg, m => chars[m] || "");
15
17
  return new string_1.String().set(val);
16
18
  }
17
19
  exports.translate = translate;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/runtime",
3
- "version": "2.0.19",
3
+ "version": "2.0.22",
4
4
  "description": "Transpiler - Runtime",
5
5
  "main": "build/src/index.js",
6
6
  "typings": "build/src/index.d.ts",