UNPKG

wrekenfile-converter

Version:

Convert OpenAPI and Postman specs to Wrekenfile format with mini-chunking for vector DB storage

58 lines (57 loc) 3.12 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getMiniWrekenfilesForEndpoints = getMiniWrekenfilesForEndpoints; exports.getMiniWrekenfilesForMethods = getMiniWrekenfilesForMethods; exports.getMiniWrekenfileContent = getMiniWrekenfileContent; const fs_1 = __importDefault(require("fs")); const js_yaml_1 = __importDefault(require("js-yaml")); const index_1 = require("./index"); /** * Example usage of the mini Wrekenfile generator * This shows how to integrate with a vector database */ function exampleUsage() { // OpenAPI v3 example const openapiContent = fs_1.default.readFileSync('./examples/plaid.yml', 'utf8'); const openapiSpec = js_yaml_1.default.load(openapiContent); const wrekenfileYaml = (0, index_1.generateWrekenfile)(openapiSpec, './examples'); console.log('OpenAPI v3 to Wrekenfile:', wrekenfileYaml.slice(0, 200) + '...'); // Postman example const postmanContent = fs_1.default.readFileSync('./examples/Swytchcode API Docs.postman_collection.json', 'utf8'); const postmanCollection = JSON.parse(postmanContent); const wrekenfileFromPostman = (0, index_1.generateWrekenfileFromPostman)(postmanCollection, {}); console.log('Postman to Wrekenfile:', wrekenfileFromPostman.slice(0, 200) + '...'); // Mini Wrekenfiles fs_1.default.writeFileSync('./Wrekenfile.yaml', wrekenfileYaml); const miniFiles = (0, index_1.generateMiniWrekenfiles)(wrekenfileYaml); console.log('Mini Wrekenfiles count:', miniFiles.length); if (miniFiles.length > 0) { console.log('First mini Wrekenfile:', miniFiles[0].content.slice(0, 200) + '...'); } // Validation const validation = (0, index_1.validateWrekenfile)('./Wrekenfile.yaml'); console.log('Validation result:', validation.isValid, validation.errors, validation.warnings); } // Example: Function to get mini Wrekenfiles for specific endpoints function getMiniWrekenfilesForEndpoints(wrekenfileContent, targetEndpoints) { const allMiniFiles = (0, index_1.generateMiniWrekenfiles)(wrekenfileContent); return allMiniFiles.filter(miniFile => targetEndpoints.includes(miniFile.metadata.endpoint)); } // Example: Function to get mini Wrekenfiles for specific methods function getMiniWrekenfilesForMethods(wrekenfileContent, targetMethods) { const allMiniFiles = (0, index_1.generateMiniWrekenfiles)(wrekenfileContent); return allMiniFiles.filter(miniFile => miniFile.metadata.methods.some(method => targetMethods.includes(method))); } // Example: Function to get mini Wrekenfile content as string for AI context function getMiniWrekenfileContent(wrekenfileContent, endpoint) { const allMiniFiles = (0, index_1.generateMiniWrekenfiles)(wrekenfileContent); const miniFile = allMiniFiles.find(file => file.metadata.endpoint === endpoint); return miniFile ? miniFile.content : null; } // Run example if this file is executed directly if (require.main === module) { exampleUsage(); }