All files / source/CaffeineMc Tools.js

55.56% Statements 15/27
0% Branches 0/13
63.64% Functions 7/11
55.56% Lines 15/27

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81  7x 7x 7x                 7x         7x 7x     7x 22x   7x         7x   13x 13x 13x 13x                         7x                                                                  
"use strict";
let Caf = require("caffeine-script-runtime");
Caf.defMod(module, () => {
  return Caf.importInvoke(
    ["vm", "console", "log", "RegExp", "escapeRegExp", "process", "path"],
    [
      global,
      require("./StandardImport"),
      { path: require("path"), vm: require("vm") },
    ],
    (vm, console, log, RegExp, escapeRegExp, process, path) => {
      let Tools;
      return (Tools = Caf.defClass(class Tools extends Object {}, function (
        Tools,
        classSuper,
        instanceSuper
      ) {
        this.fileExtensions = ["caf", "caffeine"];
        this.fileIsCaffeine = function (filename) {
          return /\.(caf|caffeine)$/.test(filename);
        };
        this.__preloadCoffeeScriptForTests = function () {
          return require("coffee-script");
        };
        this.runInContext = function (js, context, filename) {
          return context === global
            ? vm.runInThisContext(js, filename)
            : vm.runInContext(js, context, filename);
        };
        this.evalInContext = function (js, context) {
          let e;
          return (() => {
            try {
              return function () {
                return eval(js);
              }.call(context);
            } catch (error) {
              e = error;
              console.error("<---> evalInContext: error: js:");
              console.error(js);
              console.error("<--->");
              return (() => {
                throw e;
              })();
            }
          })();
        };
        this.displayError = function (e, options = {}) {
          if (!(e != null)) {
            return;
          }
          require("colors");
          return options.verbose
            ? log.error(e)
            : e.location != null || e.sourceFile != null
            ? e
              ? log(e.message.replace(/<HERE>/, "<HERE>".red))
              : undefined
            : log.error(
                e.stack
                  .split("\n")
                  .slice(0, 30)
                  .join("\n")
                  .replace(
                    new RegExp(escapeRegExp(process.cwd() + "/"), "g"),
                    "./"
                  )
                  .replace(
                    new RegExp(
                      escapeRegExp(path.dirname(process.cwd()) + "/"),
                      "g"
                    ),
                    "../"
                  )
              );
        };
      }));
    }
  );
});