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
JavaScript
;
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();
}