
Security News
The Changelog Podcast: Practical Steps to Stay Safe on npm
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.
@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
The npm package @kalxjs/plugins receives a total of 0 weekly downloads. As such, @kalxjs/plugins popularity was classified as not popular.
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.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.

Security News
Experts push back on new claims about AI-driven ransomware, warning that hype and sponsored research are distorting how the threat is understood.

Security News
Ruby's creator Matz assumes control of RubyGems and Bundler repositories while former maintainers agree to step back and transfer all rights to end the dispute.