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
			| 
								 
											3 years ago
										 
									 | 
							
								'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)
							 | 
						||
| 
								 | 
							
								}
							 |