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 43 44 45 46 47 48 49 50 | 4x 4x 1x 3x 3x 3x 3x 1x 2x 2x 2x 2x 2x 2x | import { type ExecutorContext, getProjects, logger } from '@nx/devkit'; import { execFileSync } from 'child_process'; import { FsTree } from 'nx/src/generators/tree'; import type { IExecutorOptions } from './schema'; import { findScssFiles } from './utils/find-scss-files.util'; /** * Execute stylelint checks. * @param options executor options * @param context executor context * @returns execution result */ export default async function check(options: IExecutorOptions, context: ExecutorContext): Promise<{ success: boolean }> { const projectName = context.projectName; if (typeof projectName === 'undefined') { throw new Error('Project name is not defined.'); } const tree = new FsTree(context.root, false); const projects = getProjects(tree); const project = projects.get(projectName); if (typeof project === 'undefined') { throw new Error('Project does not exist.'); } const src = project.sourceRoot; Iif (typeof src === 'undefined') { throw new Error('Project root does not exist.'); } const files = findScssFiles(tree, src); Iif (files.stdout.length > 0) { const input = files.stdout.split(' '); logger.log('files', input); const cmd = 'npx'; const config = options.config !== '' ? `--config ${options.config}` : ''; const defaultArgs = ['stylelint', ...input, config, '--custom-syntax', options.customSyntax ?? 'postcss-scss']; const args = options.dryRun === true ? defaultArgs : defaultArgs.concat(['--fix']); execFileSync(cmd, args, { stdio: 'inherit', cwd: process.cwd(), env: process.env, shell: true }); } Iif (files.stdout.length === 0 && files.stderr.length === 0) { logger.info(`${src} does not contain scss files.`); } return { success: files.stderr === '' }; } |