35 lines
		
	
	
		
			691 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			691 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict'
 | |
| 
 | |
| const Farm = require('./farm')
 | |
| 
 | |
| let farms = [] // keep record of farms so we can end() them if required
 | |
| 
 | |
| 
 | |
| function farm (options, path, methods) {
 | |
|   if (typeof options == 'string') {
 | |
|     methods = path
 | |
|     path = options
 | |
|     options = {}
 | |
|   }
 | |
| 
 | |
|   let f   = new Farm(options, path)
 | |
|     , api = f.setup(methods)
 | |
| 
 | |
|   farms.push({ farm: f, api: api })
 | |
| 
 | |
|   // return the public API
 | |
|   return api
 | |
| }
 | |
| 
 | |
| 
 | |
| function end (api, callback) {
 | |
|   for (let i = 0; i < farms.length; i++)
 | |
|     if (farms[i] && farms[i].api === api)
 | |
|       return farms[i].farm.end(callback)
 | |
|   process.nextTick(callback.bind(null, new Error('Worker farm not found!')))
 | |
| }
 | |
| 
 | |
| 
 | |
| module.exports     = farm
 | |
| module.exports.end = end
 |