You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							73 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
	
	
							73 lines
						
					
					
						
							1.5 KiB
						
					
					
				| 'use strict'
 | |
| 
 | |
| const avvio = require('.')()
 | |
| 
 | |
| function a (instance, opts, cb) {
 | |
|   (opts.use || []).forEach(_ => { instance.use(_, { use: opts.subUse || [] }) })
 | |
|   setTimeout(cb, 10)
 | |
| }
 | |
| const pointer = a
 | |
| 
 | |
| function b (instance, opts, cb) {
 | |
|   (opts.use || []).forEach(_ => { instance.use(_, { use: opts.subUse || [] }) })
 | |
|   setTimeout(cb, 20)
 | |
| }
 | |
| 
 | |
| function c (instance, opts, cb) {
 | |
|   (opts.use || []).forEach(_ => { instance.use(_, { use: opts.subUse || [] }) })
 | |
|   setTimeout(cb, 30)
 | |
| }
 | |
| 
 | |
| avvio
 | |
|   .use(first, { hello: 'world' })
 | |
|   .use(duplicate, { count: 0 })
 | |
|   .use(function a (instance, opts, cb) {
 | |
|     instance.use(pointer, { use: [b], subUse: [c] })
 | |
|       .use(b)
 | |
|     setTimeout(cb, 42)
 | |
|   })
 | |
|   .after(function (err, cb) {
 | |
|     if (err) {
 | |
|       console.log('something bad happened')
 | |
|       console.log(err)
 | |
|     }
 | |
|     console.log('after first and second')
 | |
|     cb()
 | |
|   })
 | |
|   .use(duplicate, { count: 4 })
 | |
|   .use(third)
 | |
|   .ready(function (err) {
 | |
|     if (err) {
 | |
|       throw err
 | |
|     }
 | |
|     console.log('application booted!')
 | |
|   })
 | |
| 
 | |
| avvio.on('preReady', () => {
 | |
|   console.log(avvio.prettyPrint())
 | |
| })
 | |
| 
 | |
| function first (instance, opts, cb) {
 | |
|   console.log('first loaded', opts)
 | |
|   instance.use(second)
 | |
|   setTimeout(cb, 42)
 | |
| }
 | |
| 
 | |
| function second (instance, opts, cb) {
 | |
|   console.log('second loaded')
 | |
|   process.nextTick(cb)
 | |
| }
 | |
| 
 | |
| function third (instance, opts, cb) {
 | |
|   console.log('third loaded')
 | |
|   cb()
 | |
| }
 | |
| 
 | |
| function duplicate (instance, opts, cb) {
 | |
|   console.log('duplicate loaded', opts.count)
 | |
|   if (opts.count > 0) {
 | |
|     instance.use(duplicate, { count: opts.count - 1 })
 | |
|   }
 | |
|   setTimeout(cb, 20)
 | |
| }
 |