Skip to content

Commit

Permalink
use chalk package instead of color codes in dev scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
zloirock committed Mar 30, 2021
1 parent 79a4fb9 commit c815ffd
Show file tree
Hide file tree
Showing 15 changed files with 46 additions and 37 deletions.
1 change: 1 addition & 0 deletions package.json
Expand Up @@ -25,6 +25,7 @@
"babel-loader": "^8.2.2",
"babel-plugin-transform-es2015-modules-simple-commonjs": "~0.3.0",
"babel-plugin-transform-for-of-as-array": "^1.1.1",
"chalk": "^4.1.0",
"confusing-browser-globals": "^1.0.10",
"core-js": "file:./packages/core-js",
"core-js-builder": "file:./packages/core-js-builder",
Expand Down
1 change: 1 addition & 0 deletions packages/core-js-compat/package.json
Expand Up @@ -13,6 +13,7 @@
"semver": "7.0.0"
},
"devDependencies": {
"chalk": "^4.1.0",
"detective": "^5.2.0",
"electron-to-chromium": "^1.3.701",
"glob": "^7.1.6"
Expand Down
3 changes: 2 additions & 1 deletion packages/core-js-compat/src/build-data.js
@@ -1,6 +1,7 @@
'use strict';
const { writeFileSync } = require('fs');
const { resolve } = require('path');
const { green } = require('chalk');
const { compare, sortObjectByKey, semver } = require('../helpers');
const data = require('./data');
const external = require('./external');
Expand Down Expand Up @@ -76,4 +77,4 @@ writeJSON('../modules.json', Object.keys(data));
writeJSON('../external.json', external);

// eslint-disable-next-line no-console -- output
console.log('\u001B[32mcompat data rebuilt\u001B[0m');
console.log(green('compat data rebuilt'));
3 changes: 2 additions & 1 deletion packages/core-js-compat/src/build-entries.js
@@ -1,6 +1,7 @@
'use strict';
const { readFileSync, writeFileSync } = require('fs');
const { dirname, resolve } = require('path');
const { green } = require('chalk');
const detective = require('detective');
const { sync: glob } = require('glob');
const { intersection, sortObjectByKey } = require('../helpers');
Expand Down Expand Up @@ -40,4 +41,4 @@ const entries = [
writeFileSync(resolve(__dirname, '../entries.json'), JSON.stringify(sortObjectByKey(entries), null, ' '));

// eslint-disable-next-line no-console -- output
console.log('\u001B[32mentries data rebuilt\u001B[0m');
console.log(green('entries data rebuilt'));
3 changes: 2 additions & 1 deletion packages/core-js-compat/src/build-modules-by-versions.js
@@ -1,6 +1,7 @@
'use strict';
const { writeFileSync } = require('fs');
const { resolve } = require('path');
const { green } = require('chalk');
const modules = require('../modules');
const modulesByVersions = require('./modules-by-versions');

Expand All @@ -16,4 +17,4 @@ writeFileSync(resolve(__dirname, '../modules-by-versions.json'), JSON.stringify(
}, null, ' '));

// eslint-disable-next-line no-console -- output
console.log('\u001B[32mmodules-by-versions data rebuilt\u001B[0m');
console.log(green('modules-by-versions data rebuilt'));
5 changes: 3 additions & 2 deletions scripts/bundle.js
@@ -1,15 +1,16 @@
'use strict';
const { writeFile } = require('fs').promises;
const { cyan, green } = require('chalk');
const { minify } = require('terser');
const builder = require('core-js-builder');
const { banner } = require('core-js-builder/config');

const PATH = './packages/core-js-bundle/';

function log(kind, name, code) {
const size = (code.length / 1024).toFixed(2);
// eslint-disable-next-line no-console -- output
console.log(`\u001B[32m${ kind }: \u001B[36m${ PATH }${ name }.js\u001B[32m, size: \u001B[36m${
(code.length / 1024).toFixed(2) }KB\u001B[0m`);
console.log(green(`${ kind }: ${ cyan(`${ PATH }${ name }.js`) }, size: ${ cyan(`${ size }KB`) }`));
}

async function bundle({ bundled, minified, options = {} }) {
Expand Down
5 changes: 3 additions & 2 deletions scripts/check-dependencies.js
@@ -1,6 +1,7 @@
'use strict';
/* eslint-disable no-console -- output */
const { promisify } = require('util');
const { cyan, green } = require('chalk');
const eq = require('semver/functions/eq');
const coerce = require('semver/functions/coerce');
const minVersion = require('semver/ranges/min-version');
Expand All @@ -21,7 +22,7 @@ async function checkDependencies(pkg, title) {
}
}
if (Object.keys(dependencies).length) {
console.log(`\u001B[94m${ title || pkg.name }:\u001B[0m`);
console.log(cyan(`${ title || pkg.name }:`));
console.table(dependencies);
}
}
Expand All @@ -30,5 +31,5 @@ async function checkDependencies(pkg, title) {
await checkDependencies(root, 'root');
await checkDependencies(builder);
await checkDependencies(compat);
console.log('\u001B[32mdependencies checked\u001B[0m');
console.log(green('dependencies checked'));
})();
5 changes: 3 additions & 2 deletions scripts/clean-and-copy.js
@@ -1,5 +1,6 @@
'use strict';
const { copyFile, lstat, mkdir, readdir, rm, unlink } = require('fs').promises;
const { cyan, green } = require('chalk');

let copied = 0;

Expand Down Expand Up @@ -31,7 +32,7 @@ async function copy(from, to, { force = false } = {}) {
await rm('./tests/bundles', { force: true, recursive: true });

// eslint-disable-next-line no-console -- output
console.log('\u001B[32mold copies removed\u001B[0m');
console.log(green('old copies removed'));
}

for (const pkg of await readdir('./packages')) {
Expand All @@ -43,5 +44,5 @@ async function copy(from, to, { force = false } = {}) {
await copy('./packages/core-js/postinstall.js', './packages/core-js-bundle/postinstall.js', { force: true });

// eslint-disable-next-line no-console -- output
console.log(`\u001B[32mcopied \u001B[36m${ copied } \u001B[32mfiles\u001B[0m`);
console.log(green(`copied ${ cyan(copied) } files`));
})();
3 changes: 2 additions & 1 deletion scripts/downloads-by-versions.js
@@ -1,5 +1,6 @@
'use strict';
/* eslint-disable no-console -- output */
const { cyan, green } = require('chalk');
const fetch = require('node-fetch');
const coerce = require('semver/functions/coerce');

Expand All @@ -23,7 +24,7 @@ const coerce = require('semver/functions/coerce');
}

function log(kind, map) {
console.log(`\u001B[32mdownloads for 7 days by ${ kind } releases:\u001B[0m`);
console.log(green(`downloads for 7 days by ${ cyan(kind) } releases:`));
console.table(Object.keys(map).sort().reduce((memo, version) => {
const downloads = map[version];
memo[version] = { downloads, '%': `${ (downloads / total * 100).toFixed(2).padStart(5) } %` };
Expand Down
3 changes: 2 additions & 1 deletion scripts/generate-indexes.js
@@ -1,5 +1,6 @@
'use strict';
const { readdir, writeFile } = require('fs').promises;
const { green } = require('chalk');
const compat = require('core-js-compat/src/data');

const modules = Object.keys(compat);
Expand Down Expand Up @@ -28,5 +29,5 @@ async function generateTestsIndex(name, pkg) {
await generateTestsIndex('tests', 'core-js');
await generateTestsIndex('pure', 'core-js-pure');
// eslint-disable-next-line no-console -- output
console.log('\u001B[32mindexes generated\u001B[0m');
console.log(green('indexes generated'));
})();
7 changes: 4 additions & 3 deletions scripts/update-version.js
@@ -1,6 +1,7 @@
'use strict';
/* eslint-disable no-console -- output */
const { readdir, readFile, writeFile } = require('fs').promises;
const { green, red } = require('chalk');
const PREV_VERSION = require('core-js/package').version;
const NEW_VERSION = require('../package').version;

Expand All @@ -19,7 +20,7 @@ const CURRENT_YEAR = now.getFullYear();
const license = await readFile(LICENSE, 'utf8');
const OLD_YEAR = +license.match(/2014-(\d{4}) D/m)[1];
if (NEW_VERSION === PREV_VERSION && CURRENT_YEAR === OLD_YEAR) {
return console.log('\u001B[31mupdate is not required\u001B[0m');
return console.log(red('update is not required'));
}
await writeFile(LICENSE, license.split(OLD_YEAR).join(CURRENT_YEAR));
const lerna = await readFile(LERNA, 'utf8');
Expand Down Expand Up @@ -55,6 +56,6 @@ const CURRENT_YEAR = now.getFullYear();
CURRENT_YEAR }.${ String(now.getMonth() + 1).padStart(2, '0') }.${ String(now.getDate()).padStart(2, '0')
}`));
}
if (CURRENT_YEAR !== OLD_YEAR) console.log('\u001B[32mthe year updated\u001B[0m');
if (NEW_VERSION !== PREV_VERSION) console.log('\u001B[32mthe version updated\u001B[0m');
if (CURRENT_YEAR !== OLD_YEAR) console.log(green('the year updated'));
if (NEW_VERSION !== PREV_VERSION) console.log(green('the version updated'));
})();
35 changes: 15 additions & 20 deletions scripts/usage.js
@@ -1,7 +1,8 @@
'use strict';
/* eslint-disable no-console -- output */
const puppeteer = require('puppeteer');
const os = require('os');
const { cyan, green, gray, red } = require('chalk');
const puppeteer = require('puppeteer');
const sites = require('./sites');
const { argv } = process;

Expand All @@ -11,7 +12,6 @@ const { argv } = process;
let limit = sites.length;
let index = 0;
let tested = 0;
let errors = 0;
let withCoreJS = 0;

for (const arg of argv) {
Expand All @@ -28,6 +28,7 @@ const { argv } = process;
} catch {
await page.goto(`http://${ site }`);
}

const { core, vm, vl } = await page.evaluate(`({
core: !!window['__core-js_shared__'] || !!window.core,
vm: window['__core-js_shared__']?.versions,
Expand All @@ -36,28 +37,22 @@ const { argv } = process;
const versions = vm ? vm.map(({ version, mode }) => `${ version } (${ mode } mode)`) : vl ? [vl] : [];
tested++;
if (core) withCoreJS++;
console.log(`\u001B[36m${ site }: ${ core
? `\u001B[32m\`core-js\` is detected, ${ versions.length > 1
? `\u001B[36m${ versions.length }\u001B[32m versions: \u001B[36m${ versions.join(', ') }`
: `version \u001B[36m${ versions[0] }`
}`
: '\u001B[90m`core-js` is not detected'
}\u001B[0m`);

console.log(`${ cyan(`${ site }:`) } ${ core
? green(`\`core-js\` is detected, ${ versions.length > 1
? `${ cyan(versions.length) } versions: ${ cyan(versions.join(', ')) }`
: `version ${ cyan(versions[0]) }` }`)
: gray('`core-js` is not detected') }`);
} catch {
errors++;
console.log(`\u001B[36m${ site }:\u001B[91m problems with access\u001B[0m`);
console.log(`${ cyan(`${ site }:`) } ${ red('problems with access') }`);
}
}
}));

console.log(`\u001B[32m\n\`core-js\` is used on \u001B[36m${
withCoreJS
}\u001B[32m from \u001B[36m${
tested
}\u001B[32m tested websites, \u001B[36m${
(withCoreJS / tested * 100).toFixed(2)
}%\u001B[32m, problems with access to \u001B[36m${
errors
}\u001B[32m websites\u001B[0m`);
const percent = (withCoreJS / tested * 100).toFixed(2);

console.log(green(`\n\`core-js\` is used on ${ cyan(withCoreJS) } from ${ cyan(tested) } tested websites, ${
cyan(`${ percent }%`) }, problems with access to ${ cyan(limit - tested) } websites`));

await browser.close();
})();
3 changes: 2 additions & 1 deletion tests/commonjs-entries-content.js
@@ -1,5 +1,6 @@
'use strict';
const { deepStrictEqual, ok } = require('assert');
const { green } = require('chalk');
const allModules = require('core-js-compat/modules');
const entries = require('core-js-compat/entries');

Expand Down Expand Up @@ -111,4 +112,4 @@ subset('core-js/stage/3', /^esnext\./);
subset('core-js/stage/4', /^esnext\./);

// eslint-disable-next-line no-console -- output
console.log('\u001B[32mentry points content tested\u001B[0m');
console.log(green('entry points content tested'));
3 changes: 2 additions & 1 deletion tests/commonjs.js
@@ -1,6 +1,7 @@
/* eslint-disable import/no-dynamic-require, node/global-require -- required */
'use strict';
const { ok } = require('assert');
const { cyan, green } = require('chalk');
const compat = require('core-js-compat/data');
let tested = 0;
let PATH;
Expand Down Expand Up @@ -1760,4 +1761,4 @@ load('es/typed-array/values');
ok(typeof load('es/typed-array').Uint32Array === 'function');

// eslint-disable-next-line no-console -- output
console.log(`\u001B[32mtested ${ tested } commonjs entry points\u001B[0m`);
console.log(green(`tested ${ cyan(tested) } commonjs entry points`));
3 changes: 2 additions & 1 deletion tests/targets-parser.js
@@ -1,5 +1,6 @@
'use strict';
const { deepStrictEqual } = require('assert');
const { green } = require('chalk');
const targetsParser = require('core-js-compat/targets-parser');

// browserslist
Expand Down Expand Up @@ -99,4 +100,4 @@ deepStrictEqual(targetsParser({
]));

// eslint-disable-next-line no-console -- output
console.log('\u001B[32mtargets parser tested\u001B[0m');
console.log(green('targets parser tested'));

0 comments on commit c815ffd

Please sign in to comment.