Sha256: 59c3d05ac9beb0dae38d487117ed6c13697a79a1208b8a7efec32a93d76d7b71
Contents?: true
Size: 1.24 KB
Versions: 5
Compression:
Stored size: 1.24 KB
Contents
const AbstractHandler = require('./AbstractHandler') class CreateClassInstanceHandler extends AbstractHandler { requiredParametersCount = 1 constructor() { super() } process(command) { try { if (command.payload.length < this.requiredParametersCount) { throw new Error('Create Class Instance parameters mismatch') } let clazz = command.payload[0] let constructorArguments = command.payload.slice(1) let instance = new clazz(...constructorArguments) if (typeof instance === 'undefined') { let methods = Object.getOwnPropertyNames(type).filter(function (property) { return typeof type[property] === 'function' }) let message = `Method 'constructor' not found in class. Available methods:\n` methods.forEach((methodIter) => { message += `${methodIter}\n` }) throw new Error(message) } else { return instance } } catch (error) { throw this.process_stack_trace(error, this.constructor.name) } } } module.exports = new CreateClassInstanceHandler()
Version data entries
5 entries across 5 versions & 1 rubygems