summaryrefslogtreecommitdiffstats
path: root/devtools/client/debugger/src/utils/utils.js
blob: 7e3ed830329bd277729f9137566f957bc33d8b96 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */

const DevToolsUtils = require("resource://devtools/shared/DevToolsUtils.js");

/**
 * Utils for utils, by utils
 * @module utils/utils
 */

/**
 * @memberof utils/utils
 * @static
 */
export function handleError(err) {
  console.log("ERROR: ", err);
}

/**
 * @memberof utils/utils
 * @static
 */
export function promisify(context, method, ...args) {
  return new Promise((resolve, reject) => {
    args.push(response => {
      if (response.error) {
        reject(response);
      } else {
        resolve(response);
      }
    });
    method.apply(context, args);
  });
}

/**
 * @memberof utils/utils
 * @static
 */
export function endTruncateStr(str, size) {
  if (str.length > size) {
    return `…${str.slice(str.length - size)}`;
  }
  return str;
}

export function waitForMs(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

export async function saveAsLocalFile(content, fileName) {
  if (content.type !== "text") {
    return null;
  }

  const data = new TextEncoder().encode(content.value);
  return DevToolsUtils.saveAs(window, data, fileName);
}