@gravityforms/gulp-tasks
Version:
Configurable Gulp tasks for use in Gravity Forms projects.
109 lines (99 loc) • 3.79 kB
JavaScript
const { resolve } = require( 'path' );
const getConfig = require( '../../config');
const { config, projectId } = getConfig();
const iconConfig = require( '../utils/icon-config' );
const getPluginVersion = require( '../utils/get-plugin-version' );
const { trailingSlashIt } = require( '../utils/tools' );
const designTokensPath = resolve( __dirname, '../../../design-tokens' );
const deleteFiles = async ( paths ) => {
const { deleteAsync } = await import( 'del' );
return deleteAsync( paths, { force: true } );
};
const getIconPaths = () => {
const {
childDir = '',
designTokenDir = '',
parentDir = '',
target = 'admin',
targetCssDir = ''
} = iconConfig;
const parentDirPath = parentDir ? `${ parentDir }/` : '';
const targetCssDirPath = targetCssDir ? targetCssDir : target;
const childDirPath = childDir ? `/${ childDir }` : '';
let iconPaths = [
`${ config.paths.root }/assets/dev/icons/${ target }`,
`${ config.paths.fonts }/${ projectId }-icons-${ target }.*`,
`${ config.paths.css_src }/${ parentDirPath }${ targetCssDirPath }${ childDirPath }/icons/_icons.pcss`,
];
if ( designTokensPath ) {
iconPaths.push( `${ trailingSlashIt( designTokensPath ) }${ trailingSlashIt( designTokenDir ) }custom-properties/${ parentDirPath }${ target }${ childDirPath }/icons.js` );
}
return iconPaths;
};
module.exports = Object.assign( {}, {
async iconsStart() {
const iconPaths = getIconPaths();
return deleteFiles( iconPaths, { force: true } );
},
async iconsEnd() {
const {
childDir = '',
designTokenDir = '',
parentDir = '',
target = 'admin',
} = iconConfig;
const parentDirPath = parentDir ? `${ parentDir }/` : '';
const childDirPath = childDir ? `/${ childDir }` : '';
let iconFilePaths = [
`${ config.paths.root }/${ projectId }-icons-${ target }*.zip`,
];
if ( designTokensPath ) {
iconFilePaths.push( `${ trailingSlashIt( designTokensPath ) }${ trailingSlashIt( designTokenDir ) }custom-properties/${ parentDirPath }${ target }${ childDirPath }/icons.pcss` );
}
return deleteFiles( iconFilePaths, { force: true } );
},
async nonMinAssetCss() {
return deleteFiles( [
`${ trailingSlashIt( config.paths.css_dist ) }**/!(*.min).css`,
], { force: true } );
},
async css() {
const cssPaths = `${ trailingSlashIt( config.paths.css_dist ) }**/*.css`;
return deleteFiles( [ cssPaths ], { force: true } );
},
async gravityForms() {
const root = trailingSlashIt( config.paths.root );
const gfPaths = [
`${ root }assets/css/dist/*.min.css`,
`${ root }assets/css/dist/*.min.css.map`,
`${ root }css/*.min.css`,
`${ root }css/*.min.css.map`,
`${ root }includes/addon/css/*.min.css`,
`${ root }includes/addon/css/*.min.css.map`,
`${ root }includes/locking/css/*.min.css`,
`${ root }includes/locking/css/*.min.css.map`,
`${ root }includes/webapi/css/*.min.css`,
`${ root }includes/webapi/css/*.min.css.map`,
`${ root }legacy/css/*.min.css`,
`${ root }legacy/css/*.min.css.map`,
`${ root }includes/addon/js/*.min.js`,
`${ root }includes/locking/js/*.min.js`,
`${ root }includes/settings/js/*.min.js`,
`${ root }includes/webapi/js/*.min.js`,
`${ root }js/**/*.min.js`,
`${ root }changelog.txt`,
`${ root }environment-parser.php`,
`${ root }vendor-environments/**`,
`!${ root }js/chosen.jquery.min.js`,
`!${ root }js/jquery.maskedinput-1.3.1.min.js`,
`!${ root }js/placeholders.jquery.min.js`,
`!${ root }includes/webapi/js/hmac-sha1.min.js`,
];
return deleteFiles( gfPaths, { force: true } );
},
async js() {
const jsPaths = `${ config.paths.js_dist }**/*.js`;
const phpPaths = `${ config.paths.js_dist }**/*.php`;
return deleteFiles( [ jsPaths, phpPaths ], { force: true } );
}
}, config?.tasks?.builtins?.clean || {} );