UNPKG

@nomadmystic/wordpress-scaffold-cli

Version:

This project is created to speed up WordPress development

145 lines (123 loc) 4.89 kB
// Package Modules // Utils import MessagingUtils from '../../utils/messaging-utils.js'; // Interfaces import PluginAnswerValues from '../../interfaces/plugin/interface-plugin-answer-values.js'; import ScaffoldJsonUpdates from '../../interfaces/common/interface-scaffold-json-updates.js'; /** * @classdesc * @class CreateObjectArrays * @author Keith Murphy | nomadmystics@gmail.com */ export default class CreateObjectArrays { /** * @description * @public * @author Keith Murphy | nomadmystics@gmail.com * * @return {Promise<Array<ScaffoldJsonUpdates> | any>} */ public static readComposerObjects = async (values: PluginAnswerValues, composerAlreadyExists: boolean = false): Promise<Array<ScaffoldJsonUpdates> | any> => { try { if (composerAlreadyExists) { await MessagingUtils.displayColoredMessage('Looks like you already have a composer.json file, so this will not be scaffolded', 'red'); await MessagingUtils.displayColoredMessage('See documentation on how to autoload classes with psr-4', 'yellow'); console.log("\n"); return []; } const updateObjectsArray: Array<ScaffoldJsonUpdates> = await this.createComposerObjects(values); return updateObjectsArray; } catch (err: any) { console.log('CreateObjectArrays.readComposerObjects()'); console.error(err); } }; /** * @description * @private * @author Keith Murphy | nomadmystics@gmail.com * * @param {PluginAnswerValues} values * @return {Promise<Array<ScaffoldJsonUpdates> | any>} */ private static createComposerObjects = async (values: PluginAnswerValues): Promise<Array<ScaffoldJsonUpdates> | any> => { try { const updateObjectsArray: Array<ScaffoldJsonUpdates> = [ { fileName: 'composer.json', stringToUpdate: 'SCAFFOLD_NAME', updateString: values.safeName, }, { fileName: 'composer.json', stringToUpdate: 'SCAFFOLD_DESCRIPTION', updateString: values.description, }, { fileName: 'composer.json', stringToUpdate: 'PASCAL_NAME', updateString: values.namespace, }, { fileName: 'composer.json', stringToUpdate: 'PATH_TO_COMPOSER', updateString: '', // @todo this will need to change on Theme refactor }, ]; return updateObjectsArray; } catch (err: any) { console.log('createComposerObjects()'); console.error(err); } }; /** * @description * @public * @author Keith Murphy | nomadmystics@gmail.com * * @return {Promise<Array<ScaffoldJsonUpdates> | any>} */ public static readPackageObjects = async (values: PluginAnswerValues, packageAlreadyExists: boolean = false): Promise<Array<ScaffoldJsonUpdates> | any> => { try { if (packageAlreadyExists) { await MessagingUtils.displayColoredMessage('Looks like you already have a package.json file, so this will not be scaffolded', 'red'); await MessagingUtils.displayColoredMessage('See documentation on Node.js', 'yellow'); console.log("\n"); return []; } const updateObjectsArray: Array<ScaffoldJsonUpdates> = await this.createPackageObjects(values); return updateObjectsArray; } catch (err: any) { console.log('CreateObjectArrays.readPackageObjects()'); console.error(err); } }; /** * @description * @private * @author Keith Murphy | nomadmystics@gmail.com * * @param {PluginAnswerValues} values * @return {Promise<Array<ScaffoldJsonUpdates> | any>} */ private static createPackageObjects = async (values: PluginAnswerValues): Promise<Array<ScaffoldJsonUpdates> | any> => { try { const updateObjectsArray: Array<ScaffoldJsonUpdates> = [ { fileName: 'package.json', stringToUpdate: 'SCAFFOLD_NAME', updateString: values.safeName, }, { fileName: 'package.json', stringToUpdate: 'SCAFFOLD_DESCRIPTION', updateString: values.description, }, ]; return updateObjectsArray; } catch (err: any) { console.log('readPackageObjects()'); console.error(err); } }; }