'use strict' const NullFactory = require('./null') const Singleton = require('../constitutors/singleton') class MethodFactory extends NullFactory { constructor (fn, constitutor) { // Find method annotation if (fn.constitute && !constitutor) { const className = fn.name || '[anonymous]' constitutor = Singleton.create(fn.constitute, 'factory ' + className) } super(constitutor) this.fn = fn } createInstance (container, params) { return this.fn.apply(container, params) } } module.exports = MethodFactory