@samiyev/guardian
Version:
Research-backed code quality guardian for AI-assisted development. Detects hardcodes, secrets, circular deps, framework leaks, entity exposure, and 9 architecture violations. Enforces Clean Architecture/DDD principles. Works with GitHub Copilot, Cursor, W
53 lines • 1.93 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CodeParser = void 0;
const tree_sitter_1 = __importDefault(require("tree-sitter"));
const tree_sitter_javascript_1 = __importDefault(require("tree-sitter-javascript"));
const tree_sitter_typescript_1 = __importDefault(require("tree-sitter-typescript"));
const defaults_1 = require("../constants/defaults");
/**
* Code parser service using tree-sitter
*/
class CodeParser {
parser;
constructor() {
this.parser = new tree_sitter_1.default();
}
parseJavaScript(code) {
this.parser.setLanguage(tree_sitter_javascript_1.default);
return this.parser.parse(code);
}
parseTypeScript(code) {
this.parser.setLanguage(tree_sitter_typescript_1.default.typescript);
return this.parser.parse(code);
}
parseTsx(code) {
this.parser.setLanguage(tree_sitter_typescript_1.default.tsx);
return this.parser.parse(code);
}
extractFunctions(tree) {
const functions = [];
const cursor = tree.walk();
const visit = () => {
const node = cursor.currentNode;
if (node.type === defaults_1.TREE_SITTER_NODE_TYPES.FUNCTION_DECLARATION ||
node.type === defaults_1.TREE_SITTER_NODE_TYPES.ARROW_FUNCTION ||
node.type === defaults_1.TREE_SITTER_NODE_TYPES.FUNCTION_EXPRESSION) {
functions.push(node.text);
}
if (cursor.gotoFirstChild()) {
do {
visit();
} while (cursor.gotoNextSibling());
cursor.gotoParent();
}
};
visit();
return functions;
}
}
exports.CodeParser = CodeParser;
//# sourceMappingURL=CodeParser.js.map