@pubgcorp/pk-template
Version:
p template engine for kubernetes
122 lines • 12.1 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.exceptionHandler = void 0;
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const sourceMap_1 = require("./sourceMap");
const lazy_1 = require("../lazy");
const extractSourceAndLocation2 = (name, file, line, column) => __awaiter(void 0, void 0, void 0, function* () {
try {
const source = fs_1.default.readFileSync(file, 'utf8');
const smap = (0, sourceMap_1.extractSourceMap)(source);
if (smap) {
const consumer = yield new ((0, lazy_1.getSourceMap)()).SourceMapConsumer(smap);
const pos = consumer.originalPositionFor({ line, column });
const f = path_1.default.isAbsolute(pos.source) ? pos.source : path_1.default.join(file, pos.source);
return { name: pos.name, file: f, line: pos.line, column: pos.column };
}
return { name, file, line, column };
}
catch (e) {
return { name, file, line, column };
}
});
const extractSourceAndLocation = (source, line, column) => __awaiter(void 0, void 0, void 0, function* () {
const smap = (0, sourceMap_1.extractSourceMap)(source);
if (smap) {
const consumer = yield new ((0, lazy_1.getSourceMap)()).SourceMapConsumer(smap);
const orig = consumer.originalPositionFor({ line, column });
return { source: smap.sourcesContent[0], line: orig.line, column: orig.column };
}
else {
return { source: source, line: line, column: column };
}
});
const showErrorLocation = (source, line, column) => __awaiter(void 0, void 0, void 0, function* () {
const loc = yield extractSourceAndLocation(source, line, column);
if (loc.source) {
const lines = loc.source.split('\n');
const from = Math.max(0, loc.line - 4);
const to = Math.min(loc.line + 5, lines.length);
const grey = (0, lazy_1.getChalk)().grey;
const red = (0, lazy_1.getChalk)().red;
for (let i = from; i < to; ++i) {
const ln = `${i + 1} | `.padStart(7, ' ');
if (i + 1 == loc.line) {
console.error('|' + ln + lines[i]);
console.error('|' + grey(' | ') + "".padStart(loc.column - 1, ' ') + red('^------------ here !!!'));
}
else {
console.error('|' + grey(ln + lines[i]));
}
}
return true;
}
return false;
});
const showStack = (stack, source) => __awaiter(void 0, void 0, void 0, function* () {
const chalk = (0, lazy_1.getChalk)();
console.error('+ ' + chalk.yellow('STACK TRACE:'));
const lines = stack.split('\n');
let isFirstAnonymous = true;
for (const l of lines) {
if (l.length === 0 || l[0] !== ' ') {
console.error('|', l);
continue;
}
const match = l.match(/at (.*)\s*\((.+):(\d+):(\d+)\)/);
if (!match) {
console.error('|' + l);
if (source && isFirstAnonymous) {
const match = l.match(/evalmachine\.<anonymous>:(\d+):(\d+)/);
if (match) {
isFirstAnonymous = false;
const line = Number(match[1]);
const column = Number(match[2]);
yield showErrorLocation(source, line, column);
}
}
continue;
}
const name = match[1];
const file = match[2];
const line = Number(match[3]);
const column = Number(match[4]);
const orig = yield extractSourceAndLocation2(name, file, line, column);
if (file !== orig.file) {
console.error('| at', `${chalk.yellow(name)}(${path_1.default.dirname(orig.file)}/${chalk.yellow(path_1.default.basename(orig.file))}:${orig.line}:${orig.column})`);
}
else {
console.error('| at', `${name}(${orig.file}:${orig.line}:${orig.column})`);
}
}
});
const exceptionHandler = (e, debug) => __awaiter(void 0, void 0, void 0, function* () {
const chalk = (0, lazy_1.getChalk)();
console.error(chalk.red('ERROR : ' + e.message));
if (e.summary) {
console.error(chalk.red(' ' + e.summary + ' in ' + e.uri));
}
if (e.pos) {
console.error(chalk.red(' ' + e.pos));
}
console.error();
if (debug) {
yield showStack(e.stack, e.source);
}
process.exit(1);
});
exports.exceptionHandler = exceptionHandler;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZXB0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BrLXV0aWwvZXhjZXB0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDRDQUFvQjtBQUNwQixnREFBd0I7QUFDeEIsMkNBQStDO0FBRS9DLGtDQUFpRDtBQUVqRCxNQUFNLHlCQUF5QixHQUFHLENBQU8sSUFBWSxFQUFFLElBQVksRUFBRSxJQUFZLEVBQUUsTUFBYyxFQUF5RSxFQUFFO0lBQzFLLElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxZQUFFLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3QyxNQUFNLElBQUksR0FBRyxJQUFBLDRCQUFnQixFQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLElBQUksSUFBSSxFQUFFO1lBQ1IsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBQSxtQkFBWSxHQUFFLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwRSxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsbUJBQW1CLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQTtZQUMxRCxNQUFNLENBQUMsR0FBRyxjQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsY0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2pGLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUE7U0FDdkU7UUFDRCxPQUFPLEVBQUUsSUFBSSxFQUFFLElB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