created: 20140502142900000 modified: 20140502142900000 tags: mechanism dev 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'' ! Startup Processing The startup mechanism begins by sequentially executing the tasks that have no dependencies. It then continues executing tasks as they are unlocked by the completion of their dependencies. There is no guarantee of the execution order of tasks that share the same dependencies. ! Startup Tasks The core defines the following sequence of named startup tasks: |!Task Name |!Description |