
Product
Reachability for Ruby Now in Beta
Reachability analysis for Ruby is now in beta, helping teams identify which vulnerabilities are truly exploitable in their applications.
@kalxjs/plugins
Advanced tools
Plugin system for KalxJs framework.
npm install @kalxjs/plugins
import { createApp } from '@kalxjs/core';
import { createPlugin, PluginManager, createLoggerPlugin, createPersistencePlugin } from '@kalxjs/plugins';
// Create a custom plugin
const myPlugin = createPlugin({
name: 'my-plugin',
install: (app, options) => {
// Add functionality to the app
app.myFeature = () => {
console.log('My feature is running!');
};
},
// Lifecycle hooks
mounted: () => {
console.log('App has been mounted');
},
// Expose methods/properties for other plugins
exposed: {
someUtility: () => {
// Utility function
}
}
});
// Create an app
const app = createApp({
// App configuration
});
// Create plugin manager
const pluginManager = new PluginManager(app);
// Use plugins
pluginManager.use(myPlugin, { /* options */ });
pluginManager.use(createLoggerPlugin({ level: 'info' }));
pluginManager.use(createPersistencePlugin({
key: 'my-app-state',
paths: ['user', 'preferences']
}));
// Mount the app
app.mount('#app');
Plugins are objects with an install method and optional lifecycle hooks:
import { createPlugin } from '@kalxjs/plugins';
const myPlugin = createPlugin({
name: 'my-plugin',
// Required: install function
install: (app, options, pluginManager) => {
// Add properties to the app
app.myFeature = () => {
// Feature implementation
};
// Register global components
app.component('MyComponent', { /* component definition */ });
// Access other plugins
const logger = pluginManager.getPlugin('logger');
if (logger) {
logger.exposed.logger.info('My plugin installed');
}
},
// Optional: lifecycle hooks
beforeCreate: () => { /* ... */ },
created: () => { /* ... */ },
beforeMount: () => { /* ... */ },
mounted: () => { /* ... */ },
beforeUpdate: () => { /* ... */ },
updated: () => { /* ... */ },
beforeUnmount: () => { /* ... */ },
unmounted: () => { /* ... */ },
errorCaptured: (err) => { /* ... */ },
// Optional: exposed methods/properties for other plugins
exposed: {
someUtility: () => { /* ... */ },
someValue: 'value'
}
});
import { createLoggerPlugin } from '@kalxjs/plugins';
const loggerPlugin = createLoggerPlugin({
level: 'info', // 'debug', 'info', 'warn', 'error'
prefix: '[MyApp]', // Log prefix
enabled: true, // Enable/disable logging
logTime: true, // Include timestamp
logToConsole: true, // Log to console
customLogger: null // Custom logger implementation
});
// Usage after installation
app.logger.info('Application started');
app.logger.warn('Something might be wrong');
app.logger.error('Something went wrong', errorObject);
import { createPersistencePlugin } from '@kalxjs/plugins';
const persistencePlugin = createPersistencePlugin({
key: 'my-app-state', // Storage key
storage: localStorage, // Storage mechanism
paths: ['user', 'settings.theme'], // Specific paths to persist
saveOnChange: true, // Save state on change
restoreOnStart: true, // Restore state on start
serialize: JSON.stringify, // Serialization function
deserialize: JSON.parse // Deserialization function
});
// Usage after installation
app.saveState(); // Manually save state
app.restoreState(); // Manually restore state
The PluginManager class provides methods for managing plugins:
use(plugin, options): Register a plugincallHook(hookName, ...args): Call a specific lifecycle hookgetPlugin(name): Get a plugin by namehasPlugin(name): Check if a plugin is registeredgetPlugins(): Get all registered pluginsgetExposed(): Get all exposed methods and propertiesMIT
FAQs
Plugin system for KalxJs framework
We found that @kalxjs/plugins demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Reachability analysis for Ruby is now in beta, helping teams identify which vulnerabilities are truly exploitable in their applications.

Research
/Security News
Malicious npm packages use Adspect cloaking and fake CAPTCHAs to fingerprint visitors and redirect victims to crypto-themed scam sites.

Security News
Recent coverage mislabels the latest TEA protocol spam as a worm. Here’s what’s actually happening.