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.
		
		
		
		
		
			
		
			
				
					
					
						
							34 lines
						
					
					
						
							691 B
						
					
					
				
			
		
		
	
	
							34 lines
						
					
					
						
							691 B
						
					
					
				'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
 | 
						|
 |