API Reference
November 30, 2025 ยท View on GitHub
Complete reference for all ArmorEditor methods, properties, and events.
Constructor
ArmorEditor(options)
Creates a new ArmorEditor instance.
const editor = new ArmorEditor({
container: '#editor',
height: '400px',
// ... other options
});
Parameters:
options(Object) - Configuration options
Returns: ArmorEditor instance
Core Methods
Content Management
getContent()
Get the HTML content of the editor.
const content = editor.getContent();
Returns: String - HTML content
setContent(html)
Set the HTML content of the editor.
editor.setContent('<p>Hello world!</p>');
Parameters:
html(String) - HTML content to set
getText()
Get the plain text content (without HTML tags).
const text = editor.getText();
Returns: String - Plain text content
insertHTML(html)
Insert HTML at the current cursor position.
editor.insertHTML('<strong>Bold text</strong>');
Parameters:
html(String) - HTML to insert
clear()
Clear all content from the editor.
editor.clear();
Editor Control
focus()
Focus the editor.
editor.focus();
blur()
Remove focus from the editor.
editor.blur();
setReadOnly(readOnly)
Set the editor to read-only mode.
editor.setReadOnly(true); // Enable read-only
editor.setReadOnly(false); // Enable editing
Parameters:
readOnly(Boolean) - Read-only state
isReadOnly()
Check if the editor is in read-only mode.
const readOnly = editor.isReadOnly();
Returns: Boolean - Read-only state
destroy()
Destroy the editor instance and clean up resources.
editor.destroy();
AI Methods
generateContent(prompt)
Generate content using AI.
const content = await editor.generateContent('Write a blog post about AI');
Parameters:
prompt(String) - AI prompt
Returns: Promise
improveContent(text)
Improve existing content with AI.
const improved = await editor.improveContent('This is some text');
Parameters:
text(String) - Text to improve
Returns: Promise
fixGrammar(text)
Fix grammar and spelling errors.
const corrected = await editor.fixGrammar('This are wrong');
Parameters:
text(String) - Text to correct
Returns: Promise
adjustTone(text, tone)
Adjust the tone of text.
const professional = await editor.adjustTone(text, 'professional');
Parameters:
text(String) - Text to adjusttone(String) - Target tone ('professional', 'casual', 'friendly')
Returns: Promise
Collaboration Methods
joinCollaboration(channelId, userId, userName)
Join a collaboration session.
editor.joinCollaboration('doc-123', 'user-456', 'John Doe');
Parameters:
channelId(String) - Document channel IDuserId(String) - User IDuserName(String) - Display name
leaveCollaboration()
Leave the current collaboration session.
editor.leaveCollaboration();
getActiveUsers()
Get list of active collaborators.
const users = editor.getActiveUsers();
Returns: Array - List of active users
setUserInfo(userInfo)
Set current user information.
editor.setUserInfo({
userId: 'user-123',
userName: 'Jane Smith',
userColor: '#ff6b6b',
avatar: 'https://example.com/avatar.jpg'
});
Parameters:
userInfo(Object) - User information
Security Methods
encryptContent(content)
Encrypt content using configured encryption.
const encrypted = await editor.encryptContent(sensitiveText);
Parameters:
content(String) - Content to encrypt
Returns: Promise
decryptContent(encryptedContent)
Decrypt encrypted content.
const decrypted = await editor.decryptContent(encrypted);
Parameters:
encryptedContent(String) - Encrypted content
Returns: Promise
getCurrentUser()
Get current authenticated user.
const user = editor.getCurrentUser();
Returns: Object - User information
hasPermission(action, resource)
Check if current user has permission.
const canEdit = editor.hasPermission('write', 'document');
Parameters:
action(String) - Action to checkresource(String) - Resource to check
Returns: Boolean - Permission status
Media Methods
startVoiceRecording()
Start recording voice comment.
editor.startVoiceRecording();
stopVoiceRecording()
Stop recording voice comment.
editor.stopVoiceRecording();
startVideoCall()
Start a video call session.
await editor.startVideoCall();
Returns: Promise - Video call session
endVideoCall()
End the current video call.
editor.endVideoCall();
editImage(imageUrl)
Open image editor for the specified image.
await editor.editImage('path/to/image.jpg');
Parameters:
imageUrl(String) - URL of image to edit
Returns: Promise - Edited image data
Workflow Methods
startWorkflow(workflowId, documentId, initiatedBy)
Start a workflow process.
const id = editor.startWorkflow('approval-process', 'doc-123', 'user-456');
Parameters:
workflowId(String) - Workflow template IDdocumentId(String) - Document IDinitiatedBy(String) - User who started workflow
Returns: String - Workflow instance ID
submitForApproval(stage)
Submit document for approval at specified stage.
await editor.submitForApproval('review');
Parameters:
stage(String) - Approval stage
Returns: Promise - Submission result
createVersion(message, author)
Create a new document version.
const version = editor.createVersion('Added new section', {
author: 'john@example.com',
timestamp: new Date()
});
Parameters:
message(String) - Version messageauthor(Object) - Author information
Returns: Object - Version information
restoreVersion(versionId)
Restore a previous version.
const success = editor.restoreVersion('version-abc123');
Parameters:
versionId(String) - Version ID to restore
Returns: Boolean - Success status
Template Methods
useTemplate(templateId, variables)
Use a document template.
editor.useTemplate('project-proposal', {
project_name: 'AI Integration',
budget: 150000
});
Parameters:
templateId(String) - Template IDvariables(Object) - Template variables
createTemplate(template)
Create a new template.
editor.createTemplate({
id: 'my-template',
name: 'My Template',
content: '<h1>{{title}}</h1><p>{{content}}</p>',
variables: ['title', 'content']
});
Parameters:
template(Object) - Template definition
Performance Methods
getPerformanceMetrics()
Get current performance metrics.
const metrics = editor.getPerformanceMetrics();
console.log('FPS:', metrics.fps);
console.log('Memory:', metrics.memory);
Returns: Object - Performance metrics
cleanup()
Manually trigger cleanup of unused resources.
editor.cleanup();
enablePerformanceDebugging()
Enable performance debugging mode.
editor.enablePerformanceDebugging();
Event System
on(event, callback)
Add event listener.
editor.on('contentChanged', (content) => {
console.log('Content changed:', content);
});
Parameters:
event(String) - Event namecallback(Function) - Event handler
off(event, callback)
Remove event listener.
editor.off('contentChanged', handler);
Parameters:
event(String) - Event namecallback(Function) - Event handler to remove
emit(event, data)
Emit custom event.
editor.emit('customEvent', { data: 'value' });
Parameters:
event(String) - Event namedata(Any) - Event data
Events
Content Events
contentChanged
Fired when content changes.
editor.on('contentChanged', (content) => {
console.log('New content:', content);
});
Callback Parameters:
content(String) - New content
selectionChanged
Fired when text selection changes.
editor.on('selectionChanged', (selection) => {
console.log('Selection:', selection);
});
Callback Parameters:
selection(Object) - Selection information
Collaboration Events
userJoined
Fired when a user joins collaboration.
editor.on('userJoined', (user) => {
console.log(`${user.name} joined`);
});
Callback Parameters:
user(Object) - User information
userLeft
Fired when a user leaves collaboration.
editor.on('userLeft', (user) => {
console.log(`${user.name} left`);
});
Callback Parameters:
user(Object) - User information
remoteChange
Fired when remote user makes changes.
editor.on('remoteChange', (change) => {
console.log('Remote change:', change);
});
Callback Parameters:
change(Object) - Change information
AI Events
aiRequestStarted
Fired when AI request starts.
editor.on('aiRequestStarted', (request) => {
console.log('AI request started:', request);
});
aiRequestCompleted
Fired when AI request completes.
editor.on('aiRequestCompleted', (result) => {
console.log('AI result:', result);
});
aiError
Fired when AI request fails.
editor.on('aiError', (error) => {
console.error('AI error:', error);
});
Performance Events
performanceMetric
Fired when performance metrics are updated.
editor.on('performanceMetric', (metric) => {
console.log(`${metric.name}: ${metric.value}`);
});
performanceAlert
Fired when performance alert is triggered.
editor.on('performanceAlert', (alert) => {
console.warn('Performance alert:', alert);
});
Configuration Options
Core Options
| Option | Type | Default | Description |
|---|---|---|---|
container | String/Element | - | Container selector or element |
height | String | '300px' | Editor height |
width | String | '100%' | Editor width |
theme | String | 'light' | Editor theme |
placeholder | String | '' | Placeholder text |
readOnly | Boolean | false | Read-only mode |
toolbar | Boolean/Array | true | Toolbar configuration |
AI Options
| Option | Type | Default | Description |
|---|---|---|---|
ai.enabled | Boolean | false | Enable AI features |
ai.provider | String | 'openai' | AI provider |
ai.apiKey | String | - | API key |
ai.model | String | 'gpt-3.5-turbo' | AI model |
ai.features | Object | {} | AI feature settings |
Collaboration Options
| Option | Type | Default | Description |
|---|---|---|---|
collaboration.enabled | Boolean | false | Enable collaboration |
collaboration.channelId | String | - | Document channel ID |
collaboration.userId | String | - | User ID |
collaboration.userName | String | - | Display name |
collaboration.maxUsers | Number | 10 | Max concurrent users |
Security Options
| Option | Type | Default | Description |
|---|---|---|---|
encryption.enabled | Boolean | false | Enable encryption |
encryption.algorithm | String | 'AES-GCM' | Encryption algorithm |
encryption.keySize | Number | 256 | Key size in bits |
sso.enabled | Boolean | false | Enable SSO |
sso.provider | String | 'saml' | SSO provider |
Performance Options
| Option | Type | Default | Description |
|---|---|---|---|
performance.virtualScrolling | Boolean | false | Virtual scrolling |
performance.lazyLoading | Boolean | false | Lazy loading |
performance.webWorkers | Boolean | false | Web workers |
performance.memoryLimit | String | '100MB' | Memory limit |
TypeScript Types
EditorOptions
interface EditorOptions {
container: HTMLElement | string;
height?: string;
width?: string;
theme?: 'light' | 'dark';
placeholder?: string;
readOnly?: boolean;
toolbar?: boolean | string[];
ai?: AIConfig;
collaboration?: CollaborationConfig;
encryption?: EncryptionConfig;
// ... other options
}
AIConfig
interface AIConfig {
enabled: boolean;
provider?: string;
apiKey?: string;
model?: string;
features?: {
smartSuggestions?: boolean;
contentGeneration?: boolean;
grammarCheck?: boolean;
};
}
User
interface User {
id: string;
name: string;
email?: string;
avatar?: string;
role?: string;
permissions?: string[];
}
Error Handling
Common Errors
EditorNotInitializedError
Thrown when trying to use editor before initialization.
try {
editor.getContent();
} catch (error) {
if (error instanceof EditorNotInitializedError) {
console.error('Editor not initialized');
}
}
AIProviderError
Thrown when AI provider fails.
editor.on('aiError', (error) => {
if (error.code === 'INVALID_API_KEY') {
console.error('Invalid API key');
}
});
CollaborationError
Thrown when collaboration fails.
editor.on('collaborationError', (error) => {
if (error.code === 'CONNECTION_LOST') {
console.error('Connection lost');
}
});