@simonecoelhosfo/optimizely-mcp-server
Version:
Optimizely MCP Server for AI assistants with integrated CLI tools
81 lines (66 loc) ⢠2.42 kB
JavaScript
/**
* Quick Default Extractor - Gets actual swagger defaults without complex parsing
*/
import fs from 'fs/promises';
async function extractDefaults() {
console.log('š Extracting swagger defaults...');
// Fetch Web API
const response = await fetch('https://api.optimizely.com/v2/swagger.json');
const swagger = await response.json();
const defaults = {};
const enums = {};
// Parse definitions for defaults and enums
if (swagger.definitions) {
for (const [entityName, definition] of Object.entries(swagger.definitions)) {
const entityKey = entityName.toLowerCase();
defaults[entityKey] = {};
enums[entityKey] = {};
if (definition.properties) {
for (const [fieldName, fieldDef] of Object.entries(definition.properties)) {
// Extract defaults
if (fieldDef.default !== undefined) {
defaults[entityKey][fieldName] = fieldDef.default;
}
// Extract enums
if (fieldDef.enum) {
enums[entityKey][fieldName] = fieldDef.enum;
}
}
}
// Clean up empty objects
if (Object.keys(defaults[entityKey]).length === 0) {
delete defaults[entityKey];
}
if (Object.keys(enums[entityKey]).length === 0) {
delete enums[entityKey];
}
}
}
console.log('\nš SWAGGER DEFAULTS FOUND:');
console.log('===========================');
for (const [entity, entityDefaults] of Object.entries(defaults)) {
console.log(`${entity}:`);
for (const [field, value] of Object.entries(entityDefaults)) {
console.log(` ${field}: ${JSON.stringify(value)}`);
}
}
console.log('\nšÆ ENUM FIELDS FOUND:');
console.log('=====================');
for (const [entity, entityEnums] of Object.entries(enums)) {
console.log(`${entity}:`);
for (const [field, values] of Object.entries(entityEnums)) {
console.log(` ${field}: [${values.slice(0, 3).join(', ')}${values.length > 3 ? '...' : ''}]`);
}
}
// Save results
const output = {
swaggerDefaults: defaults,
enumFields: enums,
extractedAt: new Date().toISOString()
};
await fs.writeFile('./swagger-defaults-quick.json', JSON.stringify(output, null, 2));
console.log('\nā
Saved to swagger-defaults-quick.json');
return output;
}
extractDefaults().catch(console.error);