This repository has been archived on 2021-06-02. You can view files and clone it, but cannot push or open issues or pull requests.
RealtimeDB-OLD/src/rules/error.ts

37 lines
639 B
TypeScript

export interface RuleError {
line: number;
column: number;
message: string;
original_err: Error;
}
function indexToLineAndCol(src: string, index: number) {
let line = 1;
let col = 1;
for (let i = 0; i < index; i++) {
if (src.charAt(i) === "\n") {
line++;
col = 1;
} else {
col++;
}
}
return { line, col };
}
export function transformError(
err: Error,
data: string,
idx: number
): RuleError {
let loc = indexToLineAndCol(data, idx);
return {
line: loc.line,
column: loc.col,
message: err.message,
original_err: err,
};
}