Aurelia vNext
TypeScript JavaScript Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

Aurelia vNext

License: MIT lerna TypeScript CircleCI codecov

This is the Aurelia vNext monorepo, containing core and plugin packages, examples, and documentation for the next major version of Aurelia.

To keep up to date on Aurelia, please visit and subscribe to the official blog and our email list. We also invite you to follow us on twitter. If you have questions, look around our Discourse forums, chat in our community on Gitter, or use stack overflow.

vNext Progress

Kernel

  • PAL
  • Reporting
  • Dependency Injection

Runtime

Core

  • Task Queue
  • Resources
  • DOM

Application Model

  • Plugin Registration
  • SPA Startup

Binding

  • One Way
  • Two Way
  • One Time
  • From View
  • Trigger
  • Delegate
  • Capture
  • Call
  • Ref
  • Style
  • Text
  • Value Converters
  • Binding Behaviors
  • Computed

Custom Elements

  • Properties
  • Binding
  • Bind Lifecycle
  • Attach Lifecycle
  • Fixed Views
  • Per-instance Views
  • No View
  • Containerless
  • ShadowDOM Integration
  • HTML-Only Custom Elements
  • Template Part Replacement
  • $children and $childrenChanged
  • Basic CSS
  • CSS Modules

Custom Attributes

  • Binding
  • Bind Lifecycle
  • Attach Lifecycle

Template Controllers

  • Binding
  • Bind Lifecycle
  • Attach Lifecycle
  • View Factories
  • View Slots
  • Plain Views
  • Linking
    • e.g. if/else and switch/case scenarios

Resources

  • Value Converters
    • sanitize
  • Binding Behaviors
    • attr
    • oneTime
    • oneWay
    • twoWay
    • debounce
    • throttle
    • updateTrigger
    • signal
    • self
  • Template Controllers
    • if
    • else
    • replaceable
    • with
    • repeat
  • Custom Elements
    • compose

JIT

Binding

  • Expression Parser

Rendering

  • Template Compiler

Application Model

  • Progressive Enhancement

AOT

Core

  • Conventions
    • AOT
  • Resource Descriptions
    • JIT
    • AOT
  • Single File Components
    • Parser

Compiler Plugins

  • TypeScript
  • Babel

Loader Plugins

  • Require.js
    • JIT
    • AOT
  • System.js
    • JIT
    • AOT
  • Parcel
  • Webpack

Debug

Core

  • Error Messages

Binding

  • Expression Unparsing

Task Queue

  • Long Stack Traces

Plugins

SVG

  • Binding to SVG Elements

Build and Test

To get everything ready, run the following commands:

  • npm ci (npm 6+ is required for this)
  • npm run bootstrap
  • npm run build

To run all the tests, execute this command:

  • npm run test

To run individual tests, switch to the desired package folder and run the test command:

  • cd packages/runtime
  • npm run test

Note (2018-07-31): The instructions below ("Running the Default Demo" and further) are out of date at the moment and will be updated as soon as all workflows are adjusted to the new monorepo.

Running the Default Demo

To test the sample application:

  • Install the aurelia-cli globally with npm install -g aurelia-cli
  • Install the project dependencies with npm install
  • Run the application with au run --watch

Running the Unit Tests

  • Single run
npm run karma
  • Watch mode
npm run karma-watch

Debugging the Unit Tests from VS Code:

npm run karma-debug
  • When karma is running, press the DEBUG button in the browser (will open a new tab);
  • In VS Code start the debugger Attach Karma Chrome
  • When prompted to select which tab, select DEBUG
  • In VS Code, set a breakpoint in a .ts source file (src or test)
  • ctrl+s / save to trigger a recompile (works even if there are no changes)
  • Refresh the chrome DEBUG tab
  • Your breakpoint should now be hit

By default no coverage is generated in debug mode.

Custom Options (defaults are shown)

npm run karma -- --transpile-only=true --no-info=true --coverage=true --tsconfig=tsconfig-karma.json

For all standard karma options, see karma start --help

Installed browser plugins: Chrome,ChromeHeadless,Firefox,InternetExplorer

To see the generated test coverage, open coverage/index.html in a browser.