frontend/packages/arch/slardar-interface/README.md
TypeScript interface definitions for Slardar monitoring and error reporting
@coze-studio/slardar-interface provides standardized TypeScript interface definitions for integrating with Slardar monitoring services. This package serves as a contract layer that defines the structure and behavior of Slardar instances used throughout the Coze Studio ecosystem.
Since this is a workspace package, add it to your package.json:
{
"dependencies": {
"@coze-studio/slardar-interface": "workspace:*"
}
}
Then run:
rush update
import type { Slardar, SlardarConfig, SlardarInstance } from '@coze-studio/slardar-interface';
// Implementing a Slardar instance
class MySlardarImplementation implements Slardar {
// Implementation details...
}
// Using as a constraint
function useSlardar(slardar: SlardarInstance) {
// Configure the instance
slardar.config({ sessionId: 'user-session-123' });
// Send events
slardar('sendEvent', {
name: 'user_action',
metrics: { duration: 150 },
categories: { page: 'dashboard' }
});
}
SlardarConfigConfiguration options for Slardar instance:
interface SlardarConfig {
sessionId?: string;
[key: string]: unknown;
}
SlardarMain Slardar interface with overloaded methods for different event types:
interface Slardar {
// Generic event method
(event: string, params?: Record<string, unknown>): void;
// Error capturing
(
event: 'captureException',
error?: Error,
meta?: Record<string, string>,
reactInfo?: { version: string; componentStack: string }
): void;
// Event reporting
(
event: 'sendEvent',
params: {
name: string;
metrics: Record<string, number>;
categories: Record<string, string>;
}
): void;
// Log reporting
(
event: 'sendLog',
params: {
level: string;
content: string;
extra: Record<string, string | number>;
}
): void;
// Context management
(event: 'context.set', key: string, value: string): void;
// Configuration
config: (() => SlardarConfig) & ((options: Partial<SlardarConfig>) => void);
// Event listeners
on: (event: string, callback: (...args: unknown[]) => void) => void;
off: (event: string, callback: (...args: unknown[]) => void) => void;
}
slardar('captureException', new Error('Something went wrong'), {
userId: '12345',
context: 'checkout'
}, {
version: '18.2.0',
componentStack: 'CheckoutForm > PaymentSection'
});
slardar('sendEvent', {
name: 'button_click',
metrics: {
loadTime: 250,
clickCount: 1
},
categories: {
component: 'nav-button',
section: 'header'
}
});
slardar('sendLog', {
level: 'info',
content: 'User performed action',
extra: {
userId: 'user123',
timestamp: Date.now()
}
});
slardar('context.set', 'userId', 'user-12345');
slardar('context.set', 'environment', 'production');
// Get current config
const currentConfig = slardar.config();
// Update config
slardar.config({
sessionId: 'new-session-id',
customField: 'value'
});
// Register event listener
const handleError = (error: Error) => {
console.log('Error captured:', error);
};
slardar.on('error', handleError);
// Remove event listener
slardar.off('error', handleError);
src/
├── index.ts # Main interface definitions
This package uses a no-op build process since it only contains TypeScript interfaces:
npm run build # exits with code 0
npm test
npm run lint
None - this package only provides TypeScript interface definitions.
@coze-arch/eslint-config - Shared ESLint configuration@coze-arch/ts-config - Shared TypeScript configuration@coze-arch/vitest-config - Shared Vitest configuration@types/node - Node.js type definitions@vitest/coverage-v8 - Coverage reportingvitest - Testing framework@coze-studio/slardar-adapter - Adapter implementation using these interfaces@coze-studio/default-slardar - Default Slardar implementationApache-2.0
This package is part of the Coze Studio monorepo and provides foundational type definitions for Slardar monitoring integration.