UNPKG

@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
"use strict"; 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