{vibe-class}: AI-powered method generation for JavaScript classes
Installation • Usage • How It Works • API • License
A vibe-coded utility library that uses AI to dynamically generate JavaScript class methods at runtime. No more boilerplate - just call the method you need, and vibe-class will generate it for you!
npm install vibe-class
# or
yarn add vibe-classimport asVibeClass from 'vibe-class';
// Initialize with your OpenAI API key
asVibeClass.initialize({
apiKey: 'your-openai-api-key',
service: 'openai',
});
class User {
constructor(name, email) {
this.name = name;
this.email = email;
}
getFullName() {
return this.name;
}
}
// Enhance the User class with AI-generated methods
const EnhancedUser = asVibeClass(User);
const user = new EnhancedUser('John Doe', '[email protected]');
// Existing methods work as expected
console.log(user.getFullName()); // "John Doe"
// Methods that don't exist are dynamically generated
const domain = await user.getEmailDomain();
console.log(domain); // example.comvibe-class requires an OpenAI API key to generate methods. Initialize it at the start of your application:
import asVibeClass from 'vibe-class';
// Initialize the library
asVibeClass.initialize({
apiKey: 'your-openai-api-key',
service: 'openai', // Currently the only supported service
});
// Then use anywhere in your app
const EnhancedUser = asVibeClass(User);When you call a method that doesn't exist on your class, vibe-class:
- Intercepts the method call
- Uses OpenAI to generate the method implementation based on the method name and arguments
- Caches the method for future calls (even across instances!)
- Executes the method with your provided arguments
Transforms a regular class into a class with dynamic method generation.
Initializes the library with global configuration.
Options:
apiKey: Your OpenAI API key (required)service: The AI service to use (default: 'openai')
A utility type that represents a class enhanced with dynamic method generation capabilities.
import { VibeClass } from 'vibe-class';
// Can be used for typing enhanced class instances
const user: VibeClass<User> = new EnhancedUser('John Doe', '[email protected]');For debugging and development purposes, you can enable verbose logging by setting the VIBE_CLASS_VERBOSE environment variable to true:
VIBE_CLASS_VERBOSE=true node your-script.jsThis will log detailed information about method generation and execution, including:
- When dynamic methods are being generated
- The generated method bodies
- When cached methods are being called
This is obviously a joke, please don't use it in your project.
MIT