UNPKG

@amplitude/ampli

Version:

Amplitude CLI

29 lines (28 loc) 1.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FileService = void 0; const walk = require("ignore-walk"); const minimatch = require("minimatch"); const path = require("path"); const fs = require("../util/fs"); class FileService { constructor() { this.findFiles = async (searchDir, extension, ignoreDirs, ignoreFiles = ['.gitignore', '.itlyignore', '.ampliignore']) => { const fqIgnorePaths = ignoreDirs.map(ignoreDir => path.resolve(searchDir, ignoreDir) .substr(path.resolve(searchDir).length + 1)); let paths = (await walk({ path: searchDir, ignoreFiles })) .filter(minimatch.filter(`**/*.${extension}`)); fqIgnorePaths.forEach(fqIgnorePath => { paths = paths.filter(minimatch.filter(`!${fqIgnorePath}/**`)); }); return paths.map((f) => path.resolve(searchDir, f)); }; this.getFileContentsIfIncludes = async (filepath, searchStrings) => { const contents = await fs.readTextFile(filepath); return searchStrings.some(searchString => contents.includes(searchString)) ? contents : undefined; }; } } exports.FileService = FileService;