UNPKG

@cucumber/cucumber

Version:

The official JavaScript implementation of Cucumber.

32 lines 1.44 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDefinitionLineAndUri = getDefinitionLineAndUri; const node_path_1 = __importDefault(require("node:path")); const node_url_1 = require("node:url"); const error_stack_parser_1 = __importDefault(require("error-stack-parser")); const filter_stack_trace_1 = require("../filter_stack_trace"); const value_checker_1 = require("../value_checker"); function getDefinitionLineAndUri(cwd, isExcluded = filter_stack_trace_1.isFileNameInCucumber) { let line; let uri; const stackframes = error_stack_parser_1.default.parse(new Error()); const stackframe = stackframes.find((frame) => frame.fileName !== __filename && !isExcluded(frame.fileName)); if (stackframe != null) { line = stackframe.getLineNumber(); uri = stackframe.getFileName(); if ((0, value_checker_1.doesHaveValue)(uri)) { if (uri.startsWith('file://')) { uri = (0, node_url_1.fileURLToPath)(uri); } uri = node_path_1.default.relative(cwd, uri); } } return { line: (0, value_checker_1.valueOrDefault)(line, 0), uri: (0, value_checker_1.valueOrDefault)(uri, 'unknown'), }; } //# sourceMappingURL=get_definition_line_and_uri.js.map