diff --git a/source/index.js b/source/index.js index 53fcc16..6dca4cf 100644 --- a/source/index.js +++ b/source/index.js @@ -41,6 +41,10 @@ const chalkFactory = options => { Object.setPrototypeOf(chalk, Chalk.prototype); Object.setPrototypeOf(chalk.template, chalk); + chalk.template.apply = Function.prototype.apply; + chalk.template.bind = Function.prototype.bind; + chalk.template.call = Function.prototype.call; + chalk.template.constructor = () => { throw new Error('`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.'); }; diff --git a/test/chalk.js b/test/chalk.js index 21f0346..3ddef69 100644 --- a/test/chalk.js +++ b/test/chalk.js @@ -110,3 +110,15 @@ test('sets correct level for chalk.stderr and respects it', t => { t.is(chalk.stderr.level, 3); t.is(chalk.stderr.red.bold('foo'), '\u001B[31m\u001B[1mfoo\u001B[22m\u001B[39m'); }); + +test('keeps .apply from Function', t => { + t.is(chalk.apply(chalk, ['foo']), 'foo'); +}); + +test('keeps .bind from Function', t => { + t.is(chalk.bind(chalk, 'foo')(), 'foo'); +}); + +test('keeps .call from Function', t => { + t.is(chalk.call(chalk, 'foo'), 'foo'); +});