@nomadmystic/wordpress-scaffold-cli
Version:
This project is created to speed up WordPress development
38 lines (37 loc) • 1.9 kB
JavaScript
import { glob } from 'glob';
import { updateScaffoldFile } from '../common/update-scaffold-file.js';
const updateScaffoldClasses = async (values) => {
try {
let { finalPath, projectNamespace, } = values;
let updateObjectsArray = [];
const phpFiles = glob.sync(`${finalPath}/classes/**/*.php`, {
nodir: true,
});
let classFileUpdates = [];
if (phpFiles && typeof phpFiles !== 'undefined' && phpFiles.length > 0) {
for (let classPath = 0; classPath < phpFiles.length; classPath++) {
if (phpFiles[classPath] && typeof phpFiles[classPath] !== 'undefined') {
let classObject = {};
const afterLastSlash = phpFiles[classPath].substring(phpFiles[classPath].lastIndexOf('/') + 1);
const beforeLastSlash = phpFiles[classPath].match(/^(.*[\\\/])/);
classObject.updatePath = beforeLastSlash ? beforeLastSlash[0].slice(0, -1) : finalPath + 'classes';
classObject.fileName = afterLastSlash;
classObject.stringToUpdate = 'PASCAL_NAME';
classObject.updateString = projectNamespace;
classFileUpdates.push(classObject);
}
}
updateObjectsArray.push(...classFileUpdates);
}
for (let update = 0; update < updateObjectsArray.length; update++) {
if (updateObjectsArray[update] && typeof updateObjectsArray[update] !== 'undefined') {
updateScaffoldFile(updateObjectsArray[update].updatePath, updateObjectsArray[update].fileName, updateObjectsArray[update].stringToUpdate, updateObjectsArray[update].updateString);
}
}
}
catch (err) {
console.log('updateScaffoldClasses()');
console.error(err);
}
};
export default updateScaffoldClasses;