UNPKG

purgetss

Version:

A package that simplifies mobile app creation for Titanium developers.

74 lines (63 loc) 2.33 kB
/** * PurgeTSS v7.1.0 - Core Analyzer: File Scanner * Functions for scanning and reading XML files in the project * * COPIED from src/index.js during refactorization - NO CHANGES to logic. * * @since 7.1.0 * @author César Estrada */ import fs from 'fs' import path from 'path' import _ from 'lodash' /** * Read all XML files recursively - COPIED exactly from original readAllXMLFiles() function * NO CHANGES to logic, preserving 100% of original functionality * * @param {string} currentDirPath - Directory path to scan * @param {Function} callback - Callback function to execute for each XML file */ export function readAllXMLFiles(currentDirPath, callback) { const files = fs.readdirSync(currentDirPath) files.filter(isNotJunk).forEach(name => { const filePath = path.join(currentDirPath, name) const stat = fs.statSync(filePath) if (stat.isFile()) { if (name.includes('xml')) { callback(filePath, stat) } } else if (stat.isDirectory()) { readAllXMLFiles(filePath, callback) } }) } /** * Get classes only from XML files - COPIED exactly from original getClassesOnlyFromXMLFiles() function * NO CHANGES to logic, preserving 100% of original functionality * * @returns {Array} Array of unique class names found only in XML files */ export function getClassesOnlyFromXMLFiles() { const allClasses = [] const viewPaths = getViewPaths() _.each(viewPaths, viewPath => allClasses.push(extractClassesOnly(fs.readFileSync(viewPath, 'utf8'), viewPath))) const uniqueClasses = [] _.each(_.uniq(_.flattenDeep(allClasses)).sort(), uniqueClass => { if (filterCharacters(uniqueClass)) uniqueClasses.push(uniqueClass) }) return uniqueClasses.sort() } // Placeholder imports - these will be replaced with proper imports once modules are extracted let isNotJunk, getViewPaths, extractClassesOnly, filterCharacters /** * Initialize function references from main index * This is a temporary solution until all modules are extracted * * @param {Object} functions - Function references from main index */ export function initializeFileScannerFunctions(functions) { isNotJunk = functions.isNotJunk getViewPaths = functions.getViewPaths extractClassesOnly = functions.extractClassesOnly filterCharacters = functions.filterCharacters }