Migrate to kleur

This commit is contained in:
Daniel Ruf
2019-06-03 10:23:53 +02:00
parent 6b59c51655
commit f3db3a52bf
12 changed files with 59 additions and 58 deletions

View File

@ -2,12 +2,12 @@
"devDependencies": {
"@babel/core": "^7.1.2",
"@babel/preset-env": "^7.1.0",
"chalk": "^2.4.1",
"codacy-coverage": "^3.2.0",
"eslint": "^5.7.0",
"fs-extra": "^6.0.0",
"html-minifier": "^3.5.20",
"jest": "^23.6.0",
"kleur": "^3.0.3",
"markdown-builder": "^0.8.4",
"markdown-it": "^8.4.2",
"node-sass": "^4.9.3",

View File

@ -5,7 +5,7 @@
// Load modules
const fs = require('fs-extra');
const path = require('path');
const chalk = require('chalk');
const { green, red } = require('kleur');
const util = require('./util');
const markdown = require('markdown-builder');
const { headers, misc, lists } = markdown;
@ -28,7 +28,7 @@ const makeExamples = data => {
if (util.isTravisCI() && /^Travis build: \d+/g.test(process.env['TRAVIS_COMMIT_MESSAGE'])) {
console.log(
`${chalk.green('NOBUILD')} README build terminated, parent commit is a Travis build!`
`${green('NOBUILD')} README build terminated, parent commit is a Travis build!`
);
process.exit(0);
}
@ -36,7 +36,7 @@ if (
util.isTravisCI() &&
(process.env['TRAVIS_EVENT_TYPE'] === 'cron' || process.env['TRAVIS_EVENT_TYPE'] === 'api')
) {
console.log(`${chalk.green('ARCHIVE')} Cron job or custom build, building archive README!`);
console.log(`${green('ARCHIVE')} Cron job or custom build, building archive README!`);
console.time('Builder');
let snippets = {};
// Synchronously read all snippets from snippets_archive folder and sort them as necessary (case-insensitive)
@ -48,7 +48,7 @@ if (
for (const name of snippetFilenames.filter(s => s !== 'README.md'))
snippets[name] = fs.readFileSync(path.join(SNIPPETS_ARCHIVE_PATH, name), 'utf8');
} catch (err) {
console.log(`${chalk.red('ERROR!')} During snippet loading: ${err}`);
console.log(`${red('ERROR!')} During snippet loading: ${err}`);
process.exit(1);
}
try {
@ -70,11 +70,11 @@ if (
// Write to the README file of the archive
fs.writeFileSync(path.join(SNIPPETS_ARCHIVE_PATH, 'README.md'), output);
} catch (err) {
console.log(`${chalk.red('ERROR!')} During README generation for snippets archive: ${err}`);
console.log(`${red('ERROR!')} During README generation for snippets archive: ${err}`);
process.exit(1);
}
console.log(`${chalk.green('SUCCESS!')} README file generated for snippets archive!`);
console.log(`${green('SUCCESS!')} README file generated for snippets archive!`);
console.timeEnd('Builder');
}
let snippets = {};
@ -109,7 +109,7 @@ try {
startPart = fs.readFileSync(path.join(STATIC_PARTS_PATH, 'README-start.md'), 'utf8');
endPart = fs.readFileSync(path.join(STATIC_PARTS_PATH, 'README-end.md'), 'utf8');
} catch (err) {
console.log(`${chalk.red('ERROR!')} During static part loading: ${err}`);
console.log(`${red('ERROR!')} During static part loading: ${err}`);
process.exit(1);
}
@ -169,9 +169,9 @@ try {
// Write to the README file
fs.writeFileSync('README.md', output);
} catch (err) {
console.log(`${chalk.red('ERROR!')} During README generation: ${err}`);
console.log(`${red('ERROR!')} During README generation: ${err}`);
process.exit(1);
}
console.log(`${chalk.green('SUCCESS!')} README file generated!`);
console.log(`${green('SUCCESS!')} README file generated!`);
console.timeEnd('Builder');

View File

@ -5,7 +5,7 @@
// Load modules
const fs = require('fs-extra');
const path = require('path');
const chalk = require('chalk');
const { green } = require('kleur');
const util = require('./util');
// Paths
const SNIPPETS_PATH = './snippets';
@ -17,7 +17,7 @@ if (
process.env['TRAVIS_EVENT_TYPE'] !== 'cron' &&
process.env['TRAVIS_EVENT_TYPE'] !== 'api'
) {
console.log(`${chalk.green('NOBUILD')} snippet extraction terminated, not a cron or api build!`);
console.log(`${green('NOBUILD')} snippet extraction terminated, not a cron or api build!`);
process.exit(0);
}
// Read data
@ -81,6 +81,7 @@ let listingData = {
hash: v.meta.hash
}
})),
meta: {
specification: 'http://jsonapi.org/format/'
}
@ -89,5 +90,5 @@ let listingData = {
fs.writeFileSync(path.join(OUTPUT_PATH, 'snippets.json'), JSON.stringify(completeData, null, 2));
fs.writeFileSync(path.join(OUTPUT_PATH, 'snippetList.json'), JSON.stringify(listingData, null, 2));
// Display messages and time
// Display messages and time
console.log(`${green('SUCCESS!')} snippets.json and snippetList.json files generated!`);
console.timeEnd('Extractor');

View File

@ -4,7 +4,7 @@
*/
const fs = require('fs-extra');
const chalk = require('chalk');
const { red } = require('kleur');
const util = require('../util');
const glossaryFiles = util.getFilesInDir('./glossary', false);
@ -19,6 +19,6 @@ try {
) + '\n';
fs.writeFileSync('glossary/keyword_database', output);
} catch (err) {
console.log(`${chalk.red('ERROR!')} During glossary keyword_database generation: ${err}`);
console.log(`${red('ERROR!')} During glossary keyword_database generation: ${err}`);
process.exit(1);
}

View File

@ -4,7 +4,7 @@
*/
const fs = require('fs-extra');
const chalk = require('chalk');
const { red } = require('kleur');
const util = require('../util');
const glossaryFiles = util.getFilesInDir('./glossary', true, ['keyword_database', 'README.md']);
@ -54,6 +54,6 @@ try {
const README = '# 30-seconds-of-code JavaScript Glossary\n\n' + TOC + '\n\n' + fileContents;
fs.writeFileSync('glossary/README.md', README);
} catch (err) {
console.log(`${chalk.red('ERROR!')} During glossary README generation: ${err}`);
console.log(`${red('ERROR!')} During glossary README generation: ${err}`);
process.exit(1);
}

View File

@ -8,10 +8,10 @@
const fs = require('fs-extra');
const cp = require('child_process');
const path = require('path');
const chalk = require('chalk');
const { green, red } = require('kleur');
const util = require('./util');
if (util.isTravisCI() && /^Travis build: \d+/g.test(process.env['TRAVIS_COMMIT_MESSAGE'])) {
console.log(`${chalk.green('NOBUILD')} Linting terminated, parent commit is a Travis build!`);
console.log(`${green('NOBUILD')} Linting terminated, parent commit is a Travis build!`);
process.exit(0);
}
const SNIPPETS_PATH = './snippets';
@ -74,10 +74,10 @@ try {
}
fs.removeSync(TEMP_PATH);
console.log(`${chalk.green('SUCCESS!')} Snippet files linted!`);
console.log(`${green('SUCCESS!')} Snippet files linted!`);
console.timeEnd('Linter');
});
} catch (err) {
console.log(`${chalk.red('ERROR!')} During linting: ${err}`);
console.log(`${red('ERROR!')} During linting: ${err}`);
process.exit(1);
}

View File

@ -4,7 +4,7 @@
*/
const fs = require('fs-extra');
const path = require('path');
const chalk = require('chalk');
const { green, red } = require('kleur');
const util = require('./util');
const { rollup } = require('rollup');
const babel = require('rollup-plugin-babel');
@ -143,7 +143,7 @@ async function build() {
if (util.isTravisCI() && util.isNotTravisCronOrAPI()) {
fs.unlink(ROLLUP_INPUT_FILE);
console.log(
`${chalk.green(
`${green(
'NOBUILD'
)} Module build terminated, not a cron job or a custom build!`
);
@ -156,10 +156,10 @@ async function build() {
// Clean up the temporary input file Rollup used for building the module
fs.unlink(ROLLUP_INPUT_FILE);
console.log(`${chalk.green('SUCCESS!')} Snippet module built!`);
console.log(`${green('SUCCESS!')} Snippet module built!`);
console.timeEnd('Packager');
} catch (err) {
console.log(`${chalk.red('ERROR!')} During module creation: ${err}`);
console.log(`${red('ERROR!')} During module creation: ${err}`);
process.exit(1);
}
}

View File

@ -4,10 +4,10 @@
*/
// Load modules
const fs = require('fs-extra'),
chalk = require('chalk');
{ black, blue, green, yellow, red, bgWhite } = require('kleur');
const util = require('./util');
if (util.isTravisCI() && /^Travis build: \d+/g.test(process.env['TRAVIS_COMMIT_MESSAGE'])) {
console.log(`${chalk.green('NOBUILD')} Tagging terminated, parent commit is a Travis build!`);
console.log(`${green('NOBUILD')} Tagging terminated, parent commit is a Travis build!`);
process.exit(0);
}
// Set variables for paths
@ -41,26 +41,26 @@ try {
} else {
output += `${snippet[0].slice(0, -3)}:uncategorized\n`;
missingTags++;
console.log(`${chalk.yellow('Tagged uncategorized:')} ${snippet[0].slice(0, -3)}`);
console.log(`${yellow('Tagged uncategorized:')} ${snippet[0].slice(0, -3)}`);
}
}
// Write to tag_database
fs.writeFileSync('tag_database', output);
} catch (err) {
// Handle errors (hopefully not!)
console.log(`${chalk.red('ERROR!')} During tag_database generation: ${err}`);
console.log(`${red('ERROR!')} During tag_database generation: ${err}`);
process.exit(1);
}
// Log statistics for the tag_database file
console.log(`\n${chalk.bgWhite(chalk.black('=== TAG STATS ==='))}`);
console.log(`\n${bgWhite(black('=== TAG STATS ==='))}`);
for (let tagData of Object.entries(tagDbStats)
.filter(v => v[0] !== 'undefined')
.sort((a, b) => a[0].localeCompare(b[0])))
console.log(`${chalk.green(tagData[0])}: ${tagData[1]} snippets`);
console.log(`${green(tagData[0])}: ${tagData[1]} snippets`);
console.log(
`${chalk.blue("New untagged snippets (will be tagged as 'uncategorized'):")} ${missingTags}\n`
`${blue("New untagged snippets (will be tagged as 'uncategorized'):")} ${missingTags}\n`
);
// Log a success message
console.log(`${chalk.green('SUCCESS!')} tag_database file updated!`);
console.log(`${green('SUCCESS!')} tag_database file updated!`);
// Log the time taken
console.timeEnd('Tagger');

View File

@ -7,7 +7,7 @@
const fs = require('fs-extra'),
path = require('path');
const childProcess = require('child_process');
const chalk = require('chalk');
const { green, yellow, red } = require('kleur');
const util = require('./util');
// Declare paths
const SNIPPETS_PATH = './snippets';
@ -23,7 +23,7 @@ try {
const undefinedTests = [...snippets, ...archivedSnippets].filter(v => !definedTests.includes(v));
const orphanedTests = [...definedTests.filter(v => ![...snippets, ...archivedSnippets].includes(v))];
orphanedTests.forEach(snippet => {
console.log(`${chalk.yellow('WARNING!')} Orphaned test: ${snippet}`);
console.log(`${yellow('WARNING!')} Orphaned test: ${snippet}`);
});
// Create files for undefined tests
undefinedTests.forEach(snippet => {
@ -43,9 +43,9 @@ try {
else {
childProcess.execSync('npm test');
}
console.log(`${chalk.green('SUCCESS!')} All tests ran successfully!`);
console.log(`${green('SUCCESS!')} All tests ran successfully!`);
} catch (err) {
console.log(`${chalk.red('ERROR!')} During test runs: ${err}`);
console.log(`${red('ERROR!')} During test runs: ${err}`);
process.exit(1);
}
console.timeEnd('Tester');

View File

@ -1,6 +1,6 @@
const fs = require('fs-extra'),
path = require('path'),
chalk = require('chalk'),
{ red } = require('kleur'),
crypto = require('crypto');
const babel = require('@babel/core');
@ -33,7 +33,7 @@ const getFilesInDir = (directoryPath, withPath, exclude = null) => {
}
return directoryFilenames;
} catch (err) {
console.log(`${chalk.red('ERROR!')} During snippet loading: ${err}`);
console.log(`${red('ERROR!')} During snippet loading: ${err}`);
process.exit(1);
}
};
@ -47,7 +47,7 @@ const readSnippets = snippetsPath => {
for (let snippet of snippetFilenames)
snippets[snippet] = fs.readFileSync(path.join(snippetsPath, snippet), 'utf8');
} catch (err) {
console.log(`${chalk.red('ERROR!')} During snippet loading: ${err}`);
console.log(`${red('ERROR!')} During snippet loading: ${err}`);
process.exit(1);
}
return snippets;
@ -71,7 +71,7 @@ const readTags = () => {
);
} catch (err) {
// Handle errors (hopefully not!)
console.log(`${chalk.red('ERROR!')} During tag database loading: ${err}`);
console.log(`${red('ERROR!')} During tag database loading: ${err}`);
process.exit(1);
}
return tagDbData;

View File

@ -5,7 +5,7 @@
// Load modules
const fs = require('fs-extra');
const path = require('path');
const chalk = require('chalk');
const { green } = require('kleur');
let snippetsData = require('../snippet_data/snippets.json');
// Paths
const OUTPUT_PATH = './vscode_snippets';
@ -26,7 +26,7 @@ fs.writeFileSync(
);
// Display messages and time
console.log(
`${chalk.green(
`${green(
'SUCCESS!'
)} vscode_snippets/snippets.json file generated!`
);

View File

@ -5,7 +5,7 @@
// Load modules
const fs = require('fs-extra'),
path = require('path'),
chalk = require('chalk'),
{ green, red } = require('kleur'),
md = require('markdown-it')(),
minify = require('html-minifier').minify;
const util = require('./util');
@ -98,7 +98,7 @@ if (
process.env['TRAVIS_EVENT_TYPE'] !== 'api'
) {
console.log(
`${chalk.green('NOBUILD')} website build terminated, parent commit is a Travis build!`
`${green('NOBUILD')} website build terminated, parent commit is a Travis build!`
);
process.exit(0);
}
@ -113,11 +113,11 @@ sass.render(
function(err, result) {
if (!err) {
fs.writeFile(path.join('docs', 'style.css'), result.css, function(err2) {
if (!err2) console.log(`${chalk.green('SUCCESS!')} style.css file generated!`);
else console.log(`${chalk.red('ERROR!')} During style.css file generation: ${err}`);
if (!err2) console.log(`${green('SUCCESS!')} style.css file generated!`);
else console.log(`${red('ERROR!')} During style.css file generation: ${err}`);
});
} else
console.log(`${chalk.red('ERROR!')} During style.css file generation: ${err}`);
console.log(`${red('ERROR!')} During style.css file generation: ${err}`);
}
);
@ -156,7 +156,7 @@ try {
].map(filename => fs.readFileSync(path.join(staticPartsPath, filename), 'utf8'));
} catch (err) {
// Handle errors (hopefully not!)
console.log(`${chalk.red('ERROR!')} During static part loading: ${err}`);
console.log(`${red('ERROR!')} During static part loading: ${err}`);
process.exit(1);
}
// Load tag data from the database
@ -242,12 +242,12 @@ try {
page.content
);
console.log(
`${chalk.green('SUCCESS!')} ${page.tag === 'array' ? 'index' : page.tag}.html file generated!`
`${green('SUCCESS!')} ${page.tag === 'array' ? 'index' : page.tag}.html file generated!`
);
});
} catch (err) {
// Handle errors (hopefully not!)
console.log(`${chalk.red('ERROR!')} During category page generation: ${err}`);
console.log(`${red('ERROR!')} During category page generation: ${err}`);
process.exit(1);
}
@ -359,9 +359,9 @@ try {
const minifiedArchivedOutput = minifyHTML(archivedOutput);
fs.writeFileSync(path.join(docsPath, 'archive.html'), minifiedArchivedOutput);
console.log(`${chalk.green('SUCCESS!')} archive.html file generated!`);
console.log(`${green('SUCCESS!')} archive.html file generated!`);
} catch (err) {
console.log(`${chalk.red('ERROR!')} During archive.html generation: ${err}`);
console.log(`${red('ERROR!')} During archive.html generation: ${err}`);
process.exit(1);
}
@ -392,9 +392,9 @@ try {
// Generate and minify 'glossary.html' file
const minifiedGlossaryOutput = minifyHTML(glossaryOutput);
fs.writeFileSync(path.join(docsPath, 'glossary.html'), minifiedGlossaryOutput);
console.log(`${chalk.green('SUCCESS!')} glossary.html file generated!`);
console.log(`${green('SUCCESS!')} glossary.html file generated!`);
} catch (err) {
console.log(`${chalk.red('ERROR!')} During glossary.html generation: ${err}`);
console.log(`${red('ERROR!')} During glossary.html generation: ${err}`);
process.exit(1);
}
@ -406,9 +406,9 @@ staticFiles.forEach(f => {
fs.writeFileSync(path.join(docsPath, f), generateMenuForStaticPage(fileData));
} else
fs.copyFileSync(path.join(staticPartsPath, f), path.join(docsPath, f));
console.log(`${chalk.green('SUCCESS!')} ${f} file copied!`);
console.log(`${green('SUCCESS!')} ${f} file copied!`);
} catch (err) {
console.log(`${chalk.red('ERROR!')} During ${f} copying: ${err}`);
console.log(`${red('ERROR!')} During ${f} copying: ${err}`);
process.exit(1);
}
});