From 5d4f363dda5adde26067a0fc9e839e20c3ca9b50 Mon Sep 17 00:00:00 2001 From: The Blob SCP <81673375+theblobscp@users.noreply.github.com> Date: Sat, 17 Jul 2021 19:01:49 -0400 Subject: [PATCH 1/8] Fixed main var/constants Formatting as well --- gulpfile.js | 206 +++++++++++++++++++++++++--------------------------- 1 file changed, 100 insertions(+), 106 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 23fe450e3..9a94520d8 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,9 +1,9 @@ -var gulp = require('gulp'); -const svgmin = require("gulp-svgmin") -const sass = require('gulp-sass'); -sass.compiler = require('sass') -const yargs = require("yargs") -const fsPromise = require('fs').promises; +var gulp = require("gulp"); +const svgmin = require("gulp-svgmin"); +const sass = require("gulp-sass"); +sass.compiler = require("sass"); +const yargs = require("yargs"); +const fsPromise = require("fs").promises; const path = require("path"); // global const @@ -19,17 +19,18 @@ const finalMinSCSSName = "devicon.min.scss"; * css files and compiling them together using Sass. */ async function createDeviconMinCSS() { - await createCSSFiles(); - - let deviconMinPath = path.join(__dirname, finalMinSCSSName); - // recall that devicon-alias.scss imported the devicon.css => don't need - // to reimport that file. - const fileContent = `@use "${aliasSCSSName}";@use "${colorsCSSName}";`; - await fsPromise.writeFile(deviconMinPath, fileContent, "utf8"); - - return gulp.src(finalMinSCSSName) - .pipe(sass.sync({"outputStyle": "compressed"}).on('error', sass.logError)) - .pipe(gulp.dest('./')); + await createCSSFiles(); + + let deviconMinPath = path.join(__dirname, finalMinSCSSName); + // recall that devicon-alias.scss imported the devicon.css => don't need + // to reimport that file. + const fileContent = `@use "${aliasSCSSName}";@use "${colorsCSSName}";`; + await fsPromise.writeFile(deviconMinPath, fileContent, "utf8"); + + return gulp + .src(finalMinSCSSName) + .pipe(sass.sync({ outputStyle: "compressed" }).on("error", sass.logError)) + .pipe(gulp.dest("./")); } /** @@ -37,16 +38,14 @@ async function createDeviconMinCSS() { * devicon-colors.css from the devicon.json. */ async function createCSSFiles() { - const deviconJson = JSON.parse( - await fsPromise.readFile( - path.join(__dirname, deviconJSONName), "utf8" - ) - ); - - await Promise.all([ - createAliasSCSS(deviconJson), - createColorsCSS(deviconJson) - ]) + const deviconJson = JSON.parse( + await fsPromise.readFile(path.join(__dirname, deviconJSONName), "utf8") + ); + + await Promise.all([ + createAliasSCSS(deviconJson), + createColorsCSS(deviconJson), + ]); } /** @@ -55,20 +54,19 @@ async function createCSSFiles() { * This is due to sass's ability to extend classes => Make it easier * to create aliases classes. * @param {Object} deviconJson, the object read from the - * devicon.json file. + * devicon.json file. * @return a Promise that'll resolve when the devicon-alias.scss is * created. */ function createAliasSCSS(deviconJson) { - let statements = deviconJson.map(createAliasStatement).join(" "); - let sass = `@use "devicon";${statements}`; - let sassPath = path.join(__dirname, aliasSCSSName); - return fsPromise.writeFile(sassPath, sass, "utf8"); + let statements = deviconJson.map(createAliasStatement).join(" "); + let sass = `@use "devicon";${statements}`; + let sassPath = path.join(__dirname, aliasSCSSName); + return fsPromise.writeFile(sassPath, sass, "utf8"); } - /** - * Create the aliases statement by searching for the + * Create the aliases statement by searching for the * techname in the statement and finding its aliases in * the deviconJson. * @param {Object} fontObj, a devicon font object. @@ -76,102 +74,99 @@ function createAliasSCSS(deviconJson) { * devicon-alias.scss. */ function createAliasStatement(fontObj) { - let { - name, - aliases - } = fontObj; + let { name, aliases } = fontObj; - return aliases.map(aliasObj => { - return `.devicon-${name}-${aliasObj.alias} { + return aliases + .map((aliasObj) => { + return `.devicon-${name}-${aliasObj.alias} { @extend .devicon-${name}-${aliasObj.base}; }`; - }).join(" "); + }) + .join(" "); } /** * Create a colors css file in the root dir based on the deviconJson. * @param {Object} deviconJson, the object read from the - * devicon.json file. + * devicon.json file. * @return a Promise that'll resolve when the devicon-alias.scss is * created. */ function createColorsCSS(deviconJson) { - // create the color statements for each font object - let statements = deviconJson.map(fontObj => { - let { - name, - versions: { - font: fonts - }, - color, - aliases - } = fontObj; - - if (fonts.length === 0 || typeof(color) !== "string") { - console.log(`This object doesn't have a font or a color: ${name}`); - return ""; - } - - // process the icons in the font attr - let cssClasses = fonts.map(font => `.devicon-${name}-${font}.colored`); - - // process the icons in the aliases attr - aliases.forEach(aliasObj => { - cssClasses.push(`.devicon-${name}-${aliasObj["alias"]}.colored`); - }); - - return `${cssClasses.join(",")}{color: ${color}}`; - }).join(" "); - - let cssPath = path.join(__dirname, colorsCSSName); - return fsPromise.writeFile(cssPath, statements, "utf8"); + // create the color statements for each font object + let statements = deviconJson + .map((fontObj) => { + let { + name, + versions: { font: fonts }, + color, + aliases, + } = fontObj; + + if (fonts.length === 0 || typeof color !== "string") { + console.log(`This object doesn't have a font or a color: ${name}`); + return ""; + } + + // process the icons in the font attr + let cssClasses = fonts.map((font) => `.devicon-${name}-${font}.colored`); + + // process the icons in the aliases attr + aliases.forEach((aliasObj) => { + cssClasses.push(`.devicon-${name}-${aliasObj["alias"]}.colored`); + }); + + return `${cssClasses.join(",")}{color: ${color}}`; + }) + .join(" "); + + let cssPath = path.join(__dirname, colorsCSSName); + return fsPromise.writeFile(cssPath, statements, "utf8"); } /** - * Remove the devicon-alias.scss, devicon-colors.css, + * Remove the devicon-alias.scss, devicon-colors.css, * and the devicon.min.scss. */ function cleanUp() { - let fileNames = [ - aliasSCSSName, - colorsCSSName, - finalMinSCSSName, - ]; - - return Promise.all( - fileNames.map(name => { - try { - let filePath = path.join(__dirname, name); - return fsPromise.unlink(filePath); - } catch(e) { - console.log(e); - } - }) - ); + let fileNames = [aliasSCSSName, colorsCSSName, finalMinSCSSName]; + + return Promise.all( + fileNames.map((name) => { + try { + let filePath = path.join(__dirname, name); + return fsPromise.unlink(filePath); + } catch (e) { + console.log(e); + } + }) + ); } - //////// Update SVG Task //////// /** - * Update the svg by optimizing it + * Update the svg by optimizing it * and prefixing its ids so it's unique across the repo. - * + * * This requires a json list of svg file names to update. * This must be passed through the commandline arguments. */ function optimizeSvg() { - let svgGlob = JSON.parse(yargs.argv.svgFiles) - console.log("Optimizing these files: ", svgGlob) - return gulp.src(svgGlob) + let svgGlob = JSON.parse(yargs.argv.svgFiles); + console.log("Optimizing these files: ", svgGlob); + return gulp + .src(svgGlob) .pipe(svgmin(configOptionCallback)) - .pipe(gulp.dest(file => { - return file.base - })) + .pipe( + gulp.dest((file) => { + return file.base; + }) + ); } /** * Create a config option for each file. - * @param {Object} file - Gulp Vinyl instance of the file + * @param {Object} file - Gulp Vinyl instance of the file * being processed. * @returns a SVGO config object. */ @@ -181,20 +176,19 @@ function configOptionCallback(file) { { prefixIds: { prefix: file.stem, // add file name to ids - delim: "-" - } + delim: "-", + }, }, { - removeViewBox: false // keep viewbox + removeViewBox: false, // keep viewbox }, { - removeDimensions: true // remove height and width - } - ] - } + removeDimensions: true, // remove height and width + }, + ], + }; } - exports.updateCss = createDeviconMinCSS; exports.clean = cleanUp; exports.optimizeSvg = optimizeSvg; From de768c792207c1945b984592f660767b5022fad3 Mon Sep 17 00:00:00 2001 From: The Blob SCP <81673375+theblobscp@users.noreply.github.com> Date: Sat, 17 Jul 2021 19:03:17 -0400 Subject: [PATCH 2/8] Made gulp a constant --- gulpfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index 9a94520d8..b32396a70 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,4 +1,4 @@ -var gulp = require("gulp"); +const gulp = require("gulp"); const svgmin = require("gulp-svgmin"); const sass = require("gulp-sass"); sass.compiler = require("sass"); From 107c690e25e4ca930f7ff9e68b94cd7906f9c493 Mon Sep 17 00:00:00 2001 From: The Blob SCP <81673375+theblobscp@users.noreply.github.com> Date: Sat, 17 Jul 2021 22:24:00 -0400 Subject: [PATCH 3/8] Removed extra comma Co-authored-by: Thomas Bui <43018778+Thomas-Boi@users.noreply.github.com> --- gulpfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index b32396a70..8b4f3adeb 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -44,7 +44,7 @@ async function createCSSFiles() { await Promise.all([ createAliasSCSS(deviconJson), - createColorsCSS(deviconJson), + createColorsCSS(deviconJson) ]); } From 2a6331843eac184ca6027e163d9efeba27fb948e Mon Sep 17 00:00:00 2001 From: The Blob SCP <81673375+theblobscp@users.noreply.github.com> Date: Sat, 17 Jul 2021 22:25:19 -0400 Subject: [PATCH 4/8] Removed extra () the things i cant spell Co-authored-by: Thomas Bui <43018778+Thomas-Boi@users.noreply.github.com> --- gulpfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index 8b4f3adeb..d9c0bf9bd 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -77,7 +77,7 @@ function createAliasStatement(fontObj) { let { name, aliases } = fontObj; return aliases - .map((aliasObj) => { + .map(aliasObj => { return `.devicon-${name}-${aliasObj.alias} { @extend .devicon-${name}-${aliasObj.base}; }`; From 51b77fb52998682b49b40db5a9b1c5499b0c61c1 Mon Sep 17 00:00:00 2001 From: The Blob SCP <81673375+theblobscp@users.noreply.github.com> Date: Sat, 17 Jul 2021 22:43:25 -0400 Subject: [PATCH 5/8] Removed extra () the things i cant spell Co-authored-by: Thomas Bui <43018778+Thomas-Boi@users.noreply.github.com> --- gulpfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index d9c0bf9bd..691885207 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -95,7 +95,7 @@ function createAliasStatement(fontObj) { function createColorsCSS(deviconJson) { // create the color statements for each font object let statements = deviconJson - .map((fontObj) => { + .map(fontObj => { let { name, versions: { font: fonts }, From 5ad8cc9cd333795f60cd28c6fdc686d1742f36e6 Mon Sep 17 00:00:00 2001 From: The Blob SCP <81673375+theblobscp@users.noreply.github.com> Date: Sat, 17 Jul 2021 22:43:50 -0400 Subject: [PATCH 6/8] Removed extra () the things i cant spell Co-authored-by: Thomas Bui <43018778+Thomas-Boi@users.noreply.github.com> --- gulpfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index 691885207..255a6e218 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -132,7 +132,7 @@ function cleanUp() { let fileNames = [aliasSCSSName, colorsCSSName, finalMinSCSSName]; return Promise.all( - fileNames.map((name) => { + fileNames.map(name => { try { let filePath = path.join(__dirname, name); return fsPromise.unlink(filePath); From 20396f34b5d31cb34da7458042a54463b5774b03 Mon Sep 17 00:00:00 2001 From: The Blob SCP <81673375+theblobscp@users.noreply.github.com> Date: Sat, 17 Jul 2021 22:44:13 -0400 Subject: [PATCH 7/8] Removed extra comma Co-authored-by: Thomas Bui <43018778+Thomas-Boi@users.noreply.github.com> --- gulpfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index 255a6e218..c15db238f 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -176,7 +176,7 @@ function configOptionCallback(file) { { prefixIds: { prefix: file.stem, // add file name to ids - delim: "-", + delim: "-" }, }, { From 793e5482ab478c75c485e39dcf574745ef7278ab Mon Sep 17 00:00:00 2001 From: The Blob SCP <81673375+theblobscp@users.noreply.github.com> Date: Sat, 17 Jul 2021 23:27:48 -0400 Subject: [PATCH 8/8] Apply all suggestions from Thomas-Boi Co-authored-by: Thomas Bui <43018778+Thomas-Boi@users.noreply.github.com> --- gulpfile.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index c15db238f..08247bcf2 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -100,7 +100,7 @@ function createColorsCSS(deviconJson) { name, versions: { font: fonts }, color, - aliases, + aliases } = fontObj; if (fonts.length === 0 || typeof color !== "string") { @@ -112,7 +112,7 @@ function createColorsCSS(deviconJson) { let cssClasses = fonts.map((font) => `.devicon-${name}-${font}.colored`); // process the icons in the aliases attr - aliases.forEach((aliasObj) => { + aliases.forEach(aliasObj => { cssClasses.push(`.devicon-${name}-${aliasObj["alias"]}.colored`); }); @@ -158,7 +158,7 @@ function optimizeSvg() { .src(svgGlob) .pipe(svgmin(configOptionCallback)) .pipe( - gulp.dest((file) => { + gulp.dest(file => { return file.base; }) ); @@ -180,12 +180,12 @@ function configOptionCallback(file) { }, }, { - removeViewBox: false, // keep viewbox + removeViewBox: false // keep viewbox }, { - removeDimensions: true, // remove height and width - }, - ], + removeDimensions: true // remove height and width + } + ] }; }