@gravityforms/gulp-tasks
Version:
Configurable Gulp tasks for use in Gravity Forms projects.
83 lines (77 loc) • 2.97 kB
JavaScript
import path from 'node:path';
import { fileURLToPath } from 'node:url';
import { createRequire } from 'node:module';
import getConfig from '../../config.js';
import iconConfig from '../utils/icon-config.js';
import { trailingSlashIt } from '../utils/tools.js';
const cjsRequire = createRequire( import.meta.url );
const gulp = cjsRequire( 'gulp' );
const rename = cjsRequire( 'gulp-rename' );
const __dirname = path.dirname( fileURLToPath( import.meta.url ) );
const { config } = getConfig();
const designTokensPath = path.resolve( __dirname, '../../../design-tokens' );
const {
childDir = '',
designTokenDir = '',
parentDir = '',
target = 'admin',
targetCssDir = '',
} = iconConfig;
export default Object.assign( {}, {
iconsFonts() {
return gulp
.src( [
`${ config.paths.dev }/icons/${ target }/fonts/*`,
] )
.pipe( gulp.dest( config.paths.fonts ) );
},
iconsStyles() {
const parentDirPath = parentDir ? `${ parentDir }/` : '';
const targetCssDirPath = targetCssDir ? targetCssDir : target;
const childDirPath = childDir ? `/${ childDir }` : '';
return gulp
.src( [
`${ config.paths.dev }/icons/${ target }/style.css`,
] )
.pipe( rename( '_icons.pcss' ) )
.pipe( gulp.dest( `${ config.paths.css_src }/${ parentDirPath }${ targetCssDirPath }${ childDirPath }/icons/` ) );
},
iconsVariables() {
const parentDirPath = parentDir ? `${ parentDir }/` : '';
const targetCssDirPath = targetCssDir ? targetCssDir : target;
const childDirPath = childDir ? `/${ childDir }` : '';
if ( designTokensPath && designTokenDir ) {
return gulp
.src( [
`${ config.paths.dev }/icons/${ target }/variables.scss`,
] )
.pipe( rename( 'icons.pcss' ) )
.pipe( gulp.dest( `${ trailingSlashIt( designTokensPath ) }${ trailingSlashIt( designTokenDir ) }custom-properties/${ parentDirPath }${ target }${ childDirPath }/` ) );
}
return gulp
.src( [
`${ config.paths.dev }/icons/${ target }/variables.scss`,
] )
.pipe( rename( '_icons.pcss' ) )
.pipe( gulp.dest( `${ config.paths.css_src }/${ parentDirPath }${ targetCssDirPath }${ childDirPath }/variables/` ) );
},
packagesDistJS() {
return gulp
.src( [
`${ trailingSlashIt( config.paths.npm_packages ) }components/dist/js/*.min.js`,
`${ trailingSlashIt( config.paths.npm_packages ) }libraries/dist/libraries.min.js`,
`${ trailingSlashIt( config.paths.npm_packages ) }react-utils/dist/react-utils.min.js`,
`${ trailingSlashIt( config.paths.npm_packages ) }utils/dist/utils.min.js`,
] )
.pipe( gulp.dest( config.paths.js_dist ) );
},
tokensCss() {
return gulp
.src( [
`${ trailingSlashIt( designTokensPath ) }gravityforms/dist/*.pcss`,
`${ trailingSlashIt( designTokensPath ) }gravitysmtp/dist/*.pcss`,
`${ trailingSlashIt( designTokensPath ) }gravitycrm/dist/*.pcss`,
] )
.pipe( gulp.dest( `${ trailingSlashIt( config.paths.tokens_src ) }` ) );
},
}, config?.tasks?.builtins?.copy || {} );