UNPKG

@soleil-se/build-app

Version:

Script for building WebApps, RESTApps and Widgets with Svelte in Sitevision.

39 lines (34 loc) 1.19 kB
import chalk from 'chalk'; import { getTimestamp, logWarning } from '@soleil-se/build-utils/log'; function logNotInstalledWarning() { logWarning(`ESLint is not installed, run ${chalk.white('npm i eslint --save-dev')} or start with ${chalk.white('--no-eslint')} flag.`); } let ESLint; export default function createESLint({ src }) { return async () => { try { // eslint-disable-next-line import/no-extraneous-dependencies,node/no-extraneous-import ESLint = ESLint || await import('eslint').then((pkg) => pkg.ESLint); } catch (e) { logNotInstalledWarning(); return; } if (ESLint) { const eslint = new ESLint({ errorOnUnmatchedPattern: false }); const formatter = await eslint.loadFormatter(); const results = await eslint.lintFiles(src); const errors = ESLint.getErrorResults(results); const output = formatter.format(results); if (errors.length) { const error = new Error(`\n${output}`); error.showStack = false; throw error; } if (output) { console.log(`${getTimestamp()} Warning:\n${output}`); } } else { logNotInstalledWarning(); } }; }