UNPKG

recink

Version:

Rethink CI for JavaScript applications

37 lines (30 loc) 766 B
'use strict'; const AbstractTransformer = require('./abstract-transformer'); /** * Transformer factory */ class Factory { /** * @param {string} name * @param {*} args * * @returns {AbstractTransformer} */ static create(name, ...args) { const TransformerImplementation = require(`./${ name }-transformer`); const transformer = new TransformerImplementation(...args); if (!(transformer instanceof AbstractTransformer)) { throw new Error(`${ name } transformer should be an implementation of AbstractTransformer`); } return transformer; } /** * @param {*} args * * @returns {VoidDriver} */ static eval(...args) { return this.create('eval', ...args); } } module.exports = Factory;