leumas-axios
Version:
An advanced Axios wrapper with extended features and Express multi-post middleware for conversational API endpoints.
63 lines (58 loc) • 2.18 kB
JavaScript
// demo.js
const AdvancedAxios = require('./index.js');
// Create an instance with optional Axios configuration.
const advancedAxios = new AdvancedAxios({
timeout: 5000,
});
// --- Example 1: multiGet ---
// Retrieve data from multiple endpoints concurrently.
advancedAxios
.multiGet([
'https://jsonplaceholder.typicode.com/posts/1',
'https://jsonplaceholder.typicode.com/posts/2',
])
.then((dataArray) => {
console.log('multiGet responses:', dataArray);
})
.catch((err) => {
console.error('Error in multiGet:', err);
});
// --- Example 2: multiPost ---
// Simulate a multi-step post where the server may ask for missing data.
advancedAxios
.multiPost('http://example.com/api/multi-post', {
data: { name: 'Alice' }, // initial data (e.g., missing "email")
}, {
// onFeedback is called with missing fields from the server.
onFeedback: (missingFields) => {
console.log('Server requires additional fields:', missingFields);
// In a real application, you might prompt the user. Here, we simulate it.
return Promise.resolve({ email: 'alice@example.com' });
},
})
.then((result) => {
console.log('multiPost completed:', result);
})
.catch((err) => {
console.error('Error in multiPost:', err);
});
// --- Example 3: generativePost ---
// Simulate a POST request where missing fields are filled by AI.
advancedAxios
.generativePost('http://example.com/api/generative-post', {
data: { name: 'Alice' }, // data missing some fields, e.g., "email"
}, {
// schemaGenerator simulates an AI that generates the complete data schema.
schemaGenerator: (currentData) => {
console.log('Generating complete schema from:', currentData);
// In a real implementation, you could integrate with an AI service here.
// For demonstration, we just add a missing email field.
return Promise.resolve({ ...currentData, email: 'alice@example.com' });
},
})
.then((result) => {
console.log('generativePost response:', result);
})
.catch((err) => {
console.error('Error in generativePost:', err);
});