3 const fs = require('fs');
4 const path = require('path');
5 const debug = require('debug')('prettier-stylelint:utils');
6 const ignore = require('ignore');
8 exports.arrify = function(val) {
9 if (val === null || val === undefined) {
13 return Array.isArray(val) ? val : [val];
16 exports.ignore = function(paths, options) {
17 const ignorer = ignore();
18 const gitignore = path.resolve(options.cwd, '.gitignore');
19 const prettierignore = path.resolve(options.cwd, '.prettierignore');
22 ignorer.add(fs.readFileSync(gitignore, 'utf8').toString());
24 debug('.gitignore error', err.message);
28 ignorer.add(fs.readFileSync(prettierignore, 'utf8').toString());
30 debug('.prettierignore error', err.message);
33 paths = ignorer.filter(paths);
35 // Filter out unwanted file extensions
36 // For silly users that don't specify an extension in the glob pattern
37 if (paths.length > 0) {
38 paths = paths.filter((filePath) => {
39 const ext = path.extname(filePath).replace('.', '');
41 return options.extensions.indexOf(ext) !== -1;