UNPKG

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
"use strict"; /// <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; } });