@uswds/uswds
Version:
Open source UI components and visual style guide for U.S. government websites
63 lines (54 loc) • 1.57 kB
JavaScript
/* eslint-disable arrow-body-style */
const { src, dest, series } = require("gulp");
const svgSprite = require("gulp-svgstore");
const rename = require("gulp-rename");
const del = require("del");
const dutil = require("./utils/doc-util");
const { logError } = require('./utils/doc-util');
const { copyIcons } = require("./copy");
const iconConfig = require("../packages/usa-icon/src/usa-icons.config");
const svgPath = "dist/img";
function cleanIcons() {
return del(`${svgPath}/usa-icons`);
}
function collectIcons() {
dutil.logMessage("collectIcons", "Collecting default icon set in dist/img/usa-icons");
return src([
`node_modules/@material-design-icons/svg/filled/{${iconConfig.material}}.svg`,
`packages/usa-icon/src/img/material-icons-deprecated/{${iconConfig.materialDeprecated}}.svg`,
`packages/usa-icon/src/img/uswds-icons/{${iconConfig.uswds}}.svg`,
])
.pipe(dest(`${svgPath}/usa-icons`))
}
function buildSprite(done) {
return (
src(`${svgPath}/usa-icons/*.svg`)
.pipe(svgSprite())
.on("error", logError)
.pipe(dest(svgPath))
.on("end", () => done())
);
}
function renameSprite() {
return src(`${svgPath}/usa-icons.svg`)
.pipe(rename(`${svgPath}/sprite.svg`))
.pipe(dest(`./`));
}
function cleanSprite() {
return del(`${svgPath}/usa-icons.svg`);
}
exports.buildSpriteStandalone = series(
copyIcons,
cleanIcons,
collectIcons,
buildSprite,
renameSprite,
cleanSprite
)
exports.buildSprite = series(
cleanIcons,
collectIcons,
buildSprite,
renameSprite,
cleanSprite
)