initial commit of actions

This commit is contained in:
Dominik Polakovics Polakovics 2026-01-31 18:56:04 +01:00
commit 949ece5785
44660 changed files with 12034344 additions and 0 deletions

View file

@ -0,0 +1,9 @@
interface Options {
around?: number;
}
export interface CodeExcerpt {
line: number;
value: string;
}
declare const codeExcerpt: (source: string, line: number, options?: Options) => CodeExcerpt[] | undefined;
export default codeExcerpt;

View file

@ -0,0 +1,27 @@
import tabsToSpaces from 'convert-to-spaces';
const generateLineNumbers = (line, around) => {
const lineNumbers = [];
const min = line - around;
const max = line + around;
for (let lineNumber = min; lineNumber <= max; lineNumber++) {
lineNumbers.push(lineNumber);
}
return lineNumbers;
};
const codeExcerpt = (source, line, options = {}) => {
var _a;
if (typeof source !== 'string') {
throw new TypeError('Source code is missing.');
}
if (!line || line < 1) {
throw new TypeError('Line number must start from `1`.');
}
const lines = tabsToSpaces(source).split(/\r?\n/);
if (line > lines.length) {
return;
}
return generateLineNumbers(line, (_a = options.around) !== null && _a !== void 0 ? _a : 3)
.filter(line => lines[line - 1] !== undefined)
.map(line => ({ line, value: lines[line - 1] }));
};
export default codeExcerpt;