UNPKG

vtex

Version:

The platform for e-commerce apps

59 lines (58 loc) 2.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.listLocalFiles = exports.getIgnoredPaths = void 0; const tslib_1 = require("tslib"); const fs_extra_1 = require("fs-extra"); const globby_1 = tslib_1.__importDefault(require("globby")); const path_1 = require("path"); const ramda_1 = require("ramda"); const logger_1 = tslib_1.__importDefault(require("../../logger")); const defaultIgnored = [ '.DS_Store', 'README.md', '.gitignore', 'package.json', 'node_modules/**', '**/node_modules/**', '.git/**', 'cypress/videos/**', 'cypress/screenshots/**', ]; const services = ['react', 'render', 'masterdata', 'service']; const safeFolder = folder => { if (folder && services.indexOf(folder) === -1) { logger_1.default.warn('Using unknown service', folder); } return folder ? `./${folder}/**` : '*/**'; }; const isTestOrMockPath = (p) => /.*(test|mock|snapshot).*/.test(p.toLowerCase()); const getIgnoredPaths = (root, test = false) => { try { const filesToIgnore = (0, fs_extra_1.readFileSync)((0, path_1.join)(root, '.vtexignore')) .toString() .split('\n') .map(p => p.trim()) .filter(p => p !== '') .map(p => p.replace(/\/$/, '/**')) .concat(defaultIgnored); return test ? (0, ramda_1.reject)(isTestOrMockPath, filesToIgnore) : filesToIgnore; } catch (e) { return defaultIgnored; } }; exports.getIgnoredPaths = getIgnoredPaths; const listLocalFiles = (root, test = false, folder) => Promise.resolve((0, globby_1.default)(['manifest.json', 'policies.json', '.npmrc', 'node/.*', 'react/.*', `${safeFolder(folder)}`], { cwd: root, follow: true, ignore: (0, exports.getIgnoredPaths)(root, test), nodir: true, })) .then((files) => Promise.all(files.map(file => (0, fs_extra_1.lstat)((0, path_1.join)(root, file)).then(stats => ({ file, stats }))))) .then(filesStats => filesStats.reduce((acc, { file, stats }) => { if (stats.size > 0) { acc.push(file); } return acc; }, [])); exports.listLocalFiles = listLocalFiles;