fs.readdir("./icons", function (err, files) { extract(files); if (!fs.existsSync("./dist")) { fs.mkdirSync("./dist"); } fs.writeFile('./dist/icons.json', JSON.stringify(svgObject), (err) => { if (err) throw err; console.log(chalk.whiteBright.bgBlack.bold("Created [JSON] for SVG Icons !! ")); }); });
fs.writeFile('./dist/preview.html', dom.window.document.querySelector("html").innerHTML, (err) => { if (err) throw err; console.log(chalk.whiteBright.bgBlack.bold(" Created [HTML] Preview File !! ")); });
// First time build async build(){ return new Promise(async(resolve)=>{ const obs = new PerformanceObserver((list, observer) => { const {duration} = list.getEntriesByName('Build time')[0]; cogear.loader.succeed(`${chalk.whiteBright.bold('Built')} in ${prettyMs(duration)}.`); cogear.loader.succeed(`${chalk.whiteBright.bold('Finished')} in ${prettyMs(performance.now())}. ${chalk.gray('Preload + Webpack + Build')}`); performance.clearMarks(); observer.disconnect(); }); obs.observe({ entryTypes: ['measure'] }); performance.mark('buildStart'); cogear.loader.start('Building pages…'); // Have to remove per page time benchmarks, because it's all done in parallel now await forEach(Object.keys(cogear.pages),async(file) => { await cogear.emit('build.page',cogear.pages[file]); }); performance.mark('buildEnd'); performance.measure('Build time','buildStart','buildEnd'); cogear.emit('build.done'); resolve(); }); }
async preload(){ if(!cogear.webpackConfig){ cogear.loader.fail('Webpack config must be loaded before pages preload starts.'); process.exit(); } return new Promise(async(resolve)=>{ cogear.loader.start('Preloading pages...\n'); let files = glob.sync(`**/*.@(${cogear.pageFormats.join('|')})`, { cwd: cogear.options.srcPages }); cogear.pages = {}; let start = now(); if (!files.length) { cogear.loader.fail(`No files are found in the source dir ${chalk.bold(cogear.options.src.replace(require('os').homedir,'~'))}.\nPlease, make sure that at least one page file is available.`); process.exit(); } await cogear.emit('preload.before'); await forEach(files, async (file) => { await cogear.emit('preload.page',[file]); }); cogear.loader.succeed(`${chalk.whiteBright.bold('Preloaded')} in ${prettyMs(now()-start)}.`); await cogear.emit('preload.done'); resolve(); }); }
apply(){ cogear.on('webpack',async()=>{ if(['production','build','deploy'].includes(cogear.mode)){ await cogear.emit('resources'); await this.copy(); } }); cogear.on('server.init',async()=>{ if(!['development'].includes(cogear.mode)) return; cogear.loader.start('Linking resources…'); await this.init(); if(cogear.resources.length > 0){ await forEach(cogear.resources,async dir=>{ cogear.server.use(express.static(dir)); }); cogear.loader.succeed(`${chalk.whiteBright.bold('Resources')} are linked.`); } else { cogear.loader.info(`${chalk.whiteBright.bold('Resources')} folder is not found.`); } }); }
process.exit(); console.log(`${chalk.whiteBright(`Hostnames: `)}`); for (const [index, hostname] of hostnames.entries()) { console.log(`${chalk.whiteBright(index + 1)}${chalk.whiteBright(`)`)} ${chalk.cyanBright(hostname)}`); process.exit(); console.log(`${chalk.whiteBright(`Host: `)}${chalk.green(normalizedUrl)}`); console.log(`${chalk.whiteBright(`IPs found: `)}`); for (const address of addresses) { const { address: ip, family } = address; console.log(`${chalk.cyanBright(ip)} ${chalk.whiteBright(`=>`)} ${chalk.cyanBright(`IPv`)}${chalk.cyanBright(family)}`);
stdout.clearLine(process.stdout); stdout.cursorTo(process.stdout, 0); process.stdout.write(progressBar.update(percentage / 100) + " - " + chalk.whiteBright(message)); }); let scriptFilePath = await pgDiff.compare(args[2]); log(); if (scriptFilePath) log(chalk.whiteBright("SQL patch file has been created succesfully at: ") + chalk.green(scriptFilePath)); else log(chalk.yellow("No patch has been created because no differences have been found!")); stdout.clearLine(process.stdout); stdout.cursorTo(process.stdout, 0); process.stdout.write(progressBar.update(percentage / 100) + " - " + chalk.whiteBright(message)); });