apx-toolkit
Version:
Automatically discover APIs and generate complete integration packages: code in 12 languages, TypeScript types, test suites, SDK packages, API documentation, mock servers, performance reports, and contract tests. Saves 2-4 weeks of work in seconds.
71 lines (56 loc) • 2.5 kB
text/typescript
/**
* APX Toolkit VS Code Extension
* Provides seamless API discovery and code generation from VS Code
*/
import * as vscode from 'vscode';
import { runAPXCore } from 'apx-toolkit/core-runner';
import type { ActorInput } from 'apx-toolkit/types';
export function activate(context: vscode.ExtensionContext) {
console.log('APX Toolkit extension is now active!');
// Command: Discover API
const discoverCommand = vscode.commands.registerCommand('apx.discoverAPI', async (uri?: vscode.Uri) => {
const url = await vscode.window.showInputBox({
prompt: 'Enter URL to discover APIs from',
placeHolder: 'https://api.example.com',
});
if (!url) {
return;
}
vscode.window.withProgress({
location: vscode.ProgressLocation.Notification,
title: 'APX: Discovering APIs...',
cancellable: false,
}, async (progress) => {
try {
progress.report({ increment: 0, message: 'Starting discovery...' });
const input: ActorInput = {
startUrls: [{ url }],
maxPages: 10,
generateDocumentation: true,
};
const result = await runAPXCore(input, {
onProgress: (message) => {
progress.report({ message });
},
});
progress.report({ increment: 100, message: 'Complete!' });
vscode.window.showInformationMessage(
`APX: Discovered ${result.summary.apisDiscovered} API(s) and generated ${result.summary.itemsExtracted} items!`
);
// Open output folder
const outputUri = vscode.Uri.file(vscode.workspace.workspaceFolders?.[0]?.uri.fsPath || '.');
vscode.commands.executeCommand('revealFileInOS', outputUri);
} catch (error) {
vscode.window.showErrorMessage(
`APX Error: ${error instanceof Error ? error.message : String(error)}`
);
}
});
});
// Command: Generate Code
const generateCommand = vscode.commands.registerCommand('apx.generateCode', async () => {
vscode.window.showInformationMessage('APX: Code generation feature coming soon!');
});
context.subscriptions.push(discoverCommand, generateCommand);
}
export function deactivate() {}