New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

datakit

Package Overview
Dependencies
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

datakit - npm Package Compare versions

Comparing version 1.0.20 to 1.0.21

84

build/cli/lib/user-fn.js

@@ -54,4 +54,9 @@ "use strict";

loadSourceCode = function () { return fs.readFileSync(filePath_1, "utf8"); };
userFn = require(filePath_1);
fileName = path.basename(fileName);
try {
userFn = require(filePath_1);
fileName = path.basename(fileName);
}
catch (err) {
handleUserFnError(err, { loadSourceCode: loadSourceCode, fileName: fileName });
}
}

@@ -62,3 +67,8 @@ else {

loadSourceCode = function () { return sourceCode_1; };
userFn = eval(sourceCode_1);
try {
userFn = eval(sourceCode_1);
}
catch (err) {
handleUserFnError(err, { loadSourceCode: loadSourceCode, fileName: fileName });
}
}

@@ -82,27 +92,12 @@ if (!(0, utils_1.isFunction)(userFn)) {

try {
return fn();
var result = fn();
if (result && result.catch) {
return result.catch(function (err) {
handleUserFnError(err, details);
});
}
return result;
}
catch (err) {
if (err.stack) {
var matches = (new RegExp("".concat(details.fileName, ":(\\d+):(\\d+)"))).exec(err.stack);
if (matches) {
var message = err.message || firstLine(err.stack);
var lineNumber = parseInt(matches[1]);
var columnNumber = parseInt(matches[2]);
console.error(chalk_1.default.red("Error: ") + message);
console.error(" ".concat(chalk_1.default.cyan("-->"), " ").concat(details.fileName, ":").concat(lineNumber, ":").concat(columnNumber));
var sourceCode = details.loadSourceCode();
var sourceCodeLines = sourceCode.split("\n");
console.error();
console.error(sourceCodeLines.slice(Math.max(0, lineNumber - 3), lineNumber - 1).map(function (line) { return " " + line; }).join("\n"));
console.error("".concat(chalk_1.default.red(" > ")).concat(sourceCodeLines[lineNumber - 1]));
console.error(" ".repeat(columnNumber - 1) + chalk_1.default.red(" ^ " + message));
console.error(sourceCodeLines.slice(lineNumber, lineNumber + 3).map(function (line) { return " " + line; }).join("\n"));
console.error();
console.error(err.stack.split("\n").map(function (line) { return " " + line; }).join("\n"));
console.error();
throw new Error("Runtime error from user function");
}
}
throw err;
handleUserFnError(err, details);
}

@@ -112,2 +107,39 @@ }

//
// Handles an error from user code.
//
function handleUserFnError(err, details) {
if (err.stack) {
var matches = (new RegExp("".concat(details.fileName, ":(\\d+):(\\d+)"))).exec(err.stack);
if (matches) {
var message = err.message || firstLine(err.stack);
var lineNumber = parseInt(matches[1]);
var columnNumber = parseInt(matches[2]);
console.error(chalk_1.default.red("Error: ") + message);
console.error(" ".concat(chalk_1.default.cyan("-->"), " ").concat(details.fileName, ":").concat(lineNumber, ":").concat(columnNumber));
var sourceCode = details.loadSourceCode();
var sourceCodeLines = sourceCode.split("\n");
console.error();
console.error(sourceCodeLines.slice(Math.max(0, lineNumber - 3), lineNumber - 1).map(function (line) { return " " + line; }).join("\n"));
console.error("".concat(chalk_1.default.red(" > ")).concat(sourceCodeLines[lineNumber - 1]));
console.error(" ".repeat(columnNumber - 1) + chalk_1.default.red(" ^ " + message));
console.error(sourceCodeLines.slice(lineNumber, lineNumber + 3).map(function (line) { return " " + line; }).join("\n"));
console.error();
console.error(err.stack.split("\n").map(function (line) { return " " + line; }).join("\n"));
console.error();
throw new Error("Runtime error from user function");
}
else if (err.stack.startsWith("SyntaxError:")) {
console.error(chalk_1.default.red("Syntax error: ") + err.message);
var sourceCode = details.loadSourceCode();
console.error();
console.error(sourceCode);
console.error();
console.error(err.stack.split("\n").map(function (line) { return " " + line; }).join("\n"));
console.error();
throw new Error("Syntax error from user function");
}
}
throw err;
}
//
// Extracts the first line of the input string and return it.

@@ -114,0 +146,0 @@ //

{
"name": "datakit",
"version": "1.0.20",
"version": "1.0.21",
"description": "Simple JavaScript toolkit for data transform across JSON, CSV and YAML.",

@@ -48,3 +48,5 @@ "main": "build/index.js",

"test-err-2": "ts-node ./cli/map --file ./src/test/code/map-test-with-error.js < ./src/test/data/starwars/characters.json",
"test-cmds": "ts-node ./cli/map \"r => runCmd(`echo ${r.Name}`)\" \"./src/test/data/cmds.csv\" | ts-node ./cli/map \"r => r.stdout\""
"test-cmd": "ts-node ./cli/map \"async r => await runCmd(`echo ${r.Name}`)\" \"./src/test/data/cmds.csv\" | ts-node ./cli/map \"r => r.stdout\"",
"test-bad-cmd": "ts-node ./cli/map \"r => await runCmd(`echo ${r.Name}`)\" \"./src/test/data/cmds.csv\"",
"test-length": "cat ./src/test/data/cmds.csv | ts-node ./cli/length"
},

@@ -51,0 +53,0 @@ "bin": {

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc