import { Plugin } from '#/lib/plugins/types';
export interface MyAwesomeTelemetryConfig {
theme: string;
showRanking: boolean;
}
export const myAwesomeTelemetryPlugin: Plugin = {
id: 'my-awesome-telemetry',
name: 'My Awesome Telemetry',
description: 'Displays custom developer metrics formatted for GitHub Camo CDN.',
category: 'stats',
badge: '60FPS CAMO',
defaultConfig: {
theme: 'dark',
showRanking: true,
},
render: (config: MyAwesomeTelemetryConfig, user) => {
const username = user?.github || 'octocat';
const theme = config.theme || 'dark';
return `<div align="center">
<img src="https://api.example.com/stats?username=${username}&theme=${theme}" alt="Awesome Stats" />
</div>`;
},
};
import { describe, it, expect } from 'vitest';
import { myAwesomeTelemetryPlugin } from './my-awesome-telemetry';
describe('myAwesomeTelemetryPlugin', () => {
it('renders valid markdown output', () => {
const output = myAwesomeTelemetryPlugin.render(
{ theme: 'tokyonight', showRanking: true },
{ github: 'monoforge-dev', name: 'Dev', role: '', bio: '' }
);
expect(output).toContain('https://api.example.com/stats?username=monoforge-dev&theme=tokyonight');
expect(output).toContain('alt="Awesome Stats"');
});
});
import { myAwesomeTelemetryPlugin } from './wrappers/my-awesome-telemetry';
export const pluginRegistry: Plugin[] = [
// ... existing plugins
myAwesomeTelemetryPlugin,
];