terrain50-cli/src/Subcommands/validator/index.mjs

35 lines
780 B
JavaScript

"use strict";
import fs from 'fs';
import a from '../../Helpers/Ansi.mjs';
import Terrain50 from 'terrain50';
export default async function(_settings) {
// Read stdin into a string - ref https://stackoverflow.com/a/56012724/1460422
let source = fs.readFileSync(0, 'utf-8');
let errors = Terrain50.Validate(source);
if(errors.length > 0) {
for(let error of errors) {
switch(error.level) {
case "warning":
console.log(`${a.fyellow}${a.hicol}${error}${a.reset}`);
break;
case "error":
console.log(`${a.fred}${a.hicol}${error}${a.reset}`);
break;
default:
console.log(error);
break;
}
}
process.exit(1);
}
else {
console.log(`${a.fgreen}Validation completed successfully - no issues detected :D${a.reset}`);
}
}