created: 20140502142900000
modified: 20140502142900000
tags: Mechanisms
title: StartupMechanism
type: text/vnd.tiddlywiki

The startup mechanism runs the installed startup modules at the end of the [[boot process|BootMechanism]].

! Startup Modules

Modules with their ''module-type'' field set to `startup`:

* Must export a `startup` function
** For synchronous startup modules the startup function is called as `startup()`, asynchronous modules are passed a callback they must invoke on completion: `startup(callback)`
* May export a `name` property that is used to identify the task
* May export a `after` property containing an array of names of dependent tasks that must be run before this one
* May export a `before` property containing an array of names of tasks that must be run after this one
* May export a `platforms` property containing an array of names of platforms that are required in order for the startup module to be executed. The defined platforms are ''node'' and ''browser''. If the `platforms` property is not provided it defaults to `["node","browser"]`

! Startup Processing

Startup modules are executed in sequence according to their declared dependencies.

There is no guarantee of the execution order of tasks that share the same dependencies.

! Startup Modules

The core defines the following startup modules:

{{Startup Modules.svg}}