All files / src/cli repl.js

0% Statements 0/41
0% Branches 0/1
0% Functions 0/1
0% Lines 0/41

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42                                                                                   
import * as colorette from 'colorette';
import repl from 'repl';
import pure from '../../index.js';

function prettyPrint(message) {
  console.log(message);
}

function startRepl(arg) {
  if (arg.locale) {
    if (pure.possibleLocales.indexOf(arg.locale) !== -1) {
      throw new Error('Locale not found');
    } else {
      pure.setLocale(arg.locale);
    }
  }

  const sayWelcome = `
            Hello, ${colorette.green(process.env.USER)}! 😁
            Pure will use locale: ${colorette.blue(pure.registeredModules.title)}
    
            ${colorette.gray('.exit or ctrl+c to exit Repl')}
            ${colorette.gray(
              'Repl has autocomplete, type any pure method ' + 'then hit <tab> 2x after "." and Repl will suggest'
            )}
            ${colorette.gray('Methods: seed, setLocale, getSeed will not work inside Repl')}
        `;

  const sayBye = `\nBye ${colorette.green(process.env.USER)}! 👋`;

  // Print the welcome message
  prettyPrint(sayWelcome);

  const myRepl = repl.start('[/] ');

  Object.assign(myRepl.context, { pure });

  myRepl.on('exit', () => prettyPrint(sayBye));
}

export default startRepl;