@plugola/plugin-manager
TypeScript icon, indicating that this package has built-in type declarations

6.0.2 • Public • Published

@plugola/plugin-manager

Examples

Creating a plugin manager and a session depth plugin.

// ./index.ts

import pluginManager from './pluginManager'
import './plugins/session-depth'
;(async () => {
  await pluginManager.enablePlugins(['session-depth'])
  await pluginManager.run()
})()
// ./plugin-manager.ts

import { PluginManager } from '@plugola/plugin-manager'
import { Logger, ConsoleLoggerBehavior } from '@plugola/logger'

const pluginManager = new PluginManager({
  addContext: (pluginName) => ({
    log: new Logger(pluginName, new ConsoleLoggerBehavior()),
    sessionStorage,
  }),
})

export default pluginManager
// ./plugins/session-depth.ts

import pluginManager from './pluginManager'

pluginManager.registerPlugin('session-depth', {
  async run({ log, sessionStorage }) {
    const depth = Number(sessionStorage.getItem('visitied') || '0') + 1
    log.debug('depth', depth)
    sessionStorage.setItem('visited', depth)
  },
})

Readme

Keywords

none

Package Sidebar

Install

npm i @plugola/plugin-manager

Weekly Downloads

5

Version

6.0.2

License

MIT

Unpacked Size

38.3 kB

Total Files

31

Last publish

Collaborators

  • johngeorgewright