build_scripts/index.js (75 lines of code) (raw):

const path = require('path'); const rimraf = require('rimraf'); const { optimizeSVGs } = require('./src/svg_optimization'); const { createSvgSprite } = require('./src/svg_sprite'); const { copyFolderRecursive, copyFile } = require('./src/utils'); const { collectIllustrations } = require('./src/illustrations'); const { collectLogos } = require('./src/logos'); const BASE_PATH = path.join(__dirname, '..'); const DIST_PATH = path.join(BASE_PATH, 'dist'); const FILE_ICONS_DIST_PATH = path.join(DIST_PATH, 'file_icons'); const STATIC_PATH = path.normalize(path.join(BASE_PATH, 'svgpreviewer', 'static')); async function buildFiles() { console.log('Creating Icon Sprite...'); await createSvgSprite({ destPath: DIST_PATH, globPatterns: [path.join(BASE_PATH, 'sprite_icons', '*.svg')], targetFile: 'icons', }); console.log('Created Icon Sprite'); console.log('Creating File Icon Sprite...'); await createSvgSprite({ destPath: FILE_ICONS_DIST_PATH, globPatterns: [path.join(BASE_PATH, 'file_icons', '*.svg')], targetFile: 'file_icons', }); console.log('Created File Icon Sprite'); console.log('Creating Illustration Sprite...'); await createSvgSprite({ destPath: DIST_PATH, globPatterns: [ path.join(BASE_PATH, 'illustrations', '*.svg'), path.join(BASE_PATH, 'illustrations/!(logos|third-party-logos)', '**', '**.svg'), ], targetFile: 'illustrations', addDimension: true, svgSizes: { sm: 72, md: 144, lg: 288, }, }); console.log('Created Illustration Sprite'); console.log('Optimizing icons...'); await optimizeSVGs( BASE_PATH, DIST_PATH, path.join(BASE_PATH, 'sprite_icons', '**', '*.svg'), path.join(DIST_PATH, 'icons_individual.json'), ); console.log('Optimized icons'); console.log('Optimizing file icons...'); await optimizeSVGs( BASE_PATH, FILE_ICONS_DIST_PATH, path.join(BASE_PATH, 'file_icons', '**', '*.svg'), path.join(FILE_ICONS_DIST_PATH, 'file_icons_individual.json'), ); console.log('Optimized file icons'); await collectIllustrations(BASE_PATH, DIST_PATH); await collectLogos(BASE_PATH, DIST_PATH); console.log('Copying files to static asset paths for previewer ...'); await copyFolderRecursive(DIST_PATH, STATIC_PATH); console.log('Copying file_icons notice'); await copyFile(path.join(BASE_PATH, 'file_icons', 'LICENSE.md'), FILE_ICONS_DIST_PATH); } rimraf(`${DIST_PATH}/**/*`, async () => { console.log('Cleared out dist folder'); try { await buildFiles(); } catch (err) { console.error('Something went wrong'); console.error(err); process.exit(1); } });