typescript-closure-tools
Version:
Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files
46 lines (45 loc) • 1.35 kB
JavaScript
/// <reference path="../index/mkdirp.d.ts"/>
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("fs");
const finder = require("./finder");
const generate = require("./generate");
const pretty_print = require("./pretty_print");
const options = require("./options");
const mkdirp = require("mkdirp");
require('colors');
function bold(s) {
let a = s;
return a.bold;
}
function red(s) {
let a = s;
return a.red;
}
function green(s) {
let a = s;
return a.green;
}
options.todo.forEach(todo => {
exports.currentInput = todo.input;
exports.currentOutput = todo.output;
try {
var symbols = finder.symbols(todo.input);
var defs = generate.defs(symbols);
var pretty = pretty_print.pretty(defs);
var parentPart = (/^.*\//).exec(todo.output) || [];
var parentDir = parentPart[0] || '';
mkdirp.sync(parentDir);
if (fs.existsSync(todo.output) && fs.readFileSync(todo.output, 'utf8') === pretty) {
console.error(green('No changes\t') + todo.output);
}
else {
fs.writeFileSync(todo.output, pretty);
console.error(red('Wrote\t') + todo.output);
}
}
catch (e) {
console.error(bold(red('ERROR\t')) + todo.input + ' ' + todo.output);
throw e;
}
});
;