UNPKG

embeddings-splitter

Version:

A typescript library to split your long texts into smaller chunks to send them to OpenAI Embeddings API

39 lines (38 loc) 1.51 kB
"use strict"; // function extractFunctions(code) { // const functionRegex = /(?:async\s+)?function\s+(\w+)\s*\(([\w\s,]*)\)\s*{([\S\s]*?)}/g; // const arrowFunctionRegex = /const\s+(\w+)\s*=\s*\(([\w\s,]*)\)\s*=>\s*{([\S\s]*?)}/g; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getChunksByJavascript = void 0; // const functions = []; // let match; // while ((match = functionRegex.exec(code))) { // const [, name, parameters, body] = match; // functions.push({ name, parameters, body }); // } // while ((match = arrowFunctionRegex.exec(code))) { // const [, name, parameters, body] = match; // functions.push({ name, parameters, body }); // } // return functions; // } const typescript_1 = __importDefault(require("typescript")); function extractFunctions(filename) { console.log(filename); const program = typescript_1.default.createProgram([filename], {}); const sourceFile = program.getSourceFile(filename); console.log(sourceFile); const collectedFunctions = []; function visit(node) { if (typescript_1.default.isFunctionDeclaration(node)) { collectedFunctions.push(node.name.text); } typescript_1.default.forEachChild(node, visit); } visit(sourceFile); return collectedFunctions; } exports.getChunksByJavascript = extractFunctions;