Advanced Plugin Techniques

Wrapping Other Plugins

You can create a plugin that combines multiple plugins:

export function configure(config) {
  // Load and configure multiple plugins
  config.plugin(PLATFORM.moduleName('aurelia-animator-css'));
  
  config.plugin(PLATFORM.moduleName('aurelia-dialog'), dialogConfig => {
    dialogConfig.useDefaults();
    dialogConfig.settings.lock = true;
    dialogConfig.settings.ignoreTransitions = true;
  });
}

Modifying Dependency Injection Behavior

Override default DI behavior:

import { MyService } from './my-service';

export function configure(config) {
  // Create a new instance for each injection
  config.transient(MyService, MyService);

  // Singleton with a custom implementation
  config.singleton(CustomLogger, class {
    constructor() {
      // Custom singleton logic
    }
  });
}

Configuration Options

Create a configurable plugin:

Usage in an app:

Dynamic Resource Registration

Dynamically register resources based on configuration:

Plugin Composition

Create a plugin that composes multiple sub-plugins:

Last updated

Was this helpful?