or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

bootstrapping.mdconfiguration.mdcore-libraries.mdindex.md
tile.json

tessl/npm-aurelia-framework

The aurelia framework brings together all required core aurelia libraries into a ready-to-go application-building platform.

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/aurelia-framework@1.4.x

To install, run

npx @tessl/cli install tessl/npm-aurelia-framework@1.4.0

index.mddocs/

Aurelia Framework

Aurelia Framework is a modern, front-end JavaScript/TypeScript framework for building browser, mobile, and desktop applications. It serves as the main orchestrator that brings together all required core Aurelia libraries into a unified application-building platform, focusing on convention over configuration with minimal framework intrusion.

Package Information

  • Package Name: aurelia-framework
  • Package Type: npm
  • Language: TypeScript
  • Installation: npm install aurelia-framework

Core Imports

import { Aurelia, FrameworkConfiguration } from "aurelia-framework";

For CommonJS:

const { Aurelia, FrameworkConfiguration } = require("aurelia-framework");

Re-exported Core Libraries:

// All exports from core libraries are available directly
import { 
  Container, 
  ViewResources, 
  BindingEngine,
  // ... and hundreds more from re-exported libraries
} from "aurelia-framework";

// Or import the logging namespace
import { LogManager } from "aurelia-framework";

Basic Usage

import { Aurelia } from "aurelia-framework";

// Create and configure Aurelia application
const aurelia = new Aurelia();

// Configure with standard plugins
aurelia.use
  .standardConfiguration()
  .developmentLogging();

// Start the application
aurelia.start().then(() => {
  // Set root component and host element
  aurelia.setRoot('app', document.body);
});

Architecture

Aurelia Framework is built around several key architectural patterns:

  • Main Framework Class: Aurelia class manages application lifecycle, bootstrapping, and coordination
  • Configuration System: FrameworkConfiguration provides fluent API for configuring plugins, resources, and services
  • Library Aggregation: Re-exports functionality from 8 core Aurelia libraries for unified access
  • Dependency Injection: Built-in DI container for managing application dependencies
  • Plugin Architecture: Extensible system for adding features through plugins and resources
  • Component-Based: Applications built by composing components with vanilla JavaScript/TypeScript classes and HTML templates

Capabilities

Application Bootstrapping

Core application bootstrapping and lifecycle management functionality. The Aurelia class provides methods for starting applications, setting root components, and enhancing existing DOM elements.

class Aurelia {
  host: Element;
  loader: Loader;
  container: Container;
  resources: ViewResources;
  use: FrameworkConfiguration;
  
  constructor(loader?: Loader, container?: Container, resources?: ViewResources);
  start(): Promise<Aurelia>;
  enhance(bindingContext?: object, applicationHost?: string | Element): Promise<Aurelia>;
  setRoot(root?: string | Function, applicationHost?: string | Element): Promise<Aurelia>;
}

Application Bootstrapping

Framework Configuration

Comprehensive configuration system for managing plugins, resources, and application setup. Provides fluent API for configuring the Aurelia application before startup.

class FrameworkConfiguration {
  container: Container;
  aurelia: Aurelia;
  
  constructor(aurelia: Aurelia);
  instance(type: any, instance: any): FrameworkConfiguration;
  singleton(type: any, implementation?: Function): FrameworkConfiguration;
  plugin(plugin: string | Function | FrameworkPluginInfo, pluginConfig?: any): FrameworkConfiguration;
  standardConfiguration(): FrameworkConfiguration;
  apply(): Promise<void>;
}

Framework Configuration

Re-exported Core Libraries

Direct access to all functionality from Aurelia's core libraries through the framework package. Includes dependency injection, binding, templating, loading, and platform abstraction.

// All exports from these libraries are available:
// - aurelia-dependency-injection (DI container and decorators)
// - aurelia-binding (data binding engine) 
// - aurelia-metadata (reflection and annotations)
// - aurelia-templating (view engine and components)
// - aurelia-loader (module loading abstraction)
// - aurelia-task-queue (async task management)
// - aurelia-path (path manipulation utilities)
// - aurelia-pal (platform abstraction layer)

export * as LogManager from "aurelia-logging";

Re-exported Libraries

Types

interface FrameworkPluginInfo {
  moduleId?: string;
  resourcesRelativeTo?: string[];
  configure?: (config: FrameworkConfiguration, pluginConfig?: any) => any;
  config?: any;
}