A library for transforming source code or text using Large Language Models (LLMs).
# PNPM
pnpm add ai-transform
# Or Yarn
yarn add ai-transform
# Or NPM
npm install ai-transformThe library provides two main functions for transformations: transformFromSource for working with strings and transformFromFile for working with files directly.
import { transformFromSource } from 'ai-transform';
const sourceCode = `
function hello() {
console.log("Hello, world!");
}
`;
const prompt = 'Convert this function to an arrow function';
const config = {
llm: {
provider: 'openai', // Select the preferred AI provider
model: 'gpt-4.1', // Select preferred model
},
};
try {
const transformedCode = await transformFromSource(sourceCode, prompt, config);
console.log(transformedCode);
/*
Expected output (will vary based on LLM response):
const hello = () => {
console.log("Hello, world!");
};
*/
} catch (error) {
console.error('Transformation failed:', error);
}You can also transform code directly from a file:
import { transformFromFile } from 'ai-transform';
const filepath = './src/example.js';
const prompt = 'Convert all functions to arrow functions';
const config = {
llm: {
provider: 'openai',
model: 'gpt-4.1',
},
};
try {
const transformedCode = await transformFromFile(filepath, prompt, config);
console.log(transformedCode);
// Use the transformed code, e.g., write it back to a file
} catch (error) {
console.error('Transformation failed:', error);
}The config object requires an llm property.
provider: Must be set to'openai'or let it be inferred by passing in 1 of the OpenAI models to themodelproperty.apiKey: Optional to override the OpenAI API key, by default the library takesOPENAI_API_KEYenvironment variable.model: Select your preferred OpenAI model, for example; gpt4.1
provider: Must be set to'google'or let it be inferred by passing in 1 of the Google AI models to themodelproperty.apiKey: Optional to override the Google AI API key, by default the library takesGOOGLE_AI_API_KEYenvironment variable.model: Select your preferred Google AI model, for example; gemini-2.0-flash
provider: Must be set to'anthropics'or let it be inferred by passing in 1 of the Anthropics models to themodelproperty.apiKey: Optional to override the Anthropics API key, by default the library takesANTHROPIC_API_KEYenvironment variable.model: Select your preferred Anthropics model, for example; claude-3-7-sonnet-latest
The transformFromSource function may throw an AITransformError if the transformation fails (e.g., due to API errors or issues with the LLM response). It's recommended to wrap the call in a try...catch block.