
Security News
PodRocket Podcast: Inside the Recent npm Supply Chain Attacks
Socket CEO Feross Aboukhadijeh discusses the recent npm supply chain attacks on PodRocket, covering novel attack vectors and how developers can protect themselves.
@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 11 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
Socket CEO Feross Aboukhadijeh discusses the recent npm supply chain attacks on PodRocket, covering novel attack vectors and how developers can protect themselves.
Security News
Maintainers back GitHub’s npm security overhaul but raise concerns about CI/CD workflows, enterprise support, and token management.
Product
Socket Firewall is a free tool that blocks malicious packages at install time, giving developers proactive protection against rising supply chain attacks.