dts-generator.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. "use strict";
  2. var index_1 = require('../index');
  3. module.exports = function main(argv) {
  4. var kwArgs = {
  5. files: [],
  6. sendMessage: console.log.bind(console)
  7. };
  8. for (var i = 0; i < argv.length; ++i) {
  9. var arg = argv[i];
  10. if (arg.charAt(0) === '-') {
  11. var key = argv[i].replace(/^-+/, '');
  12. var value = argv[i + 1];
  13. ++i;
  14. if (key === 'exclude') {
  15. if (!kwArgs.exclude) {
  16. kwArgs.exclude = [];
  17. }
  18. kwArgs.exclude.push(value);
  19. }
  20. else if (key === 'extern') {
  21. if (!kwArgs.externs) {
  22. kwArgs.externs = [];
  23. }
  24. kwArgs.externs.push(value);
  25. }
  26. else if (key === 'verbose') {
  27. kwArgs.verbose = true;
  28. /* decrement counter, because vebose does not take a value */
  29. --i;
  30. }
  31. else {
  32. kwArgs[key] = value;
  33. }
  34. }
  35. else {
  36. kwArgs.files.push(argv[i]);
  37. }
  38. }
  39. ['out'].forEach(function (key) {
  40. if (!kwArgs[key]) {
  41. console.error("Missing required argument \"" + key + "\"");
  42. process.exit(1);
  43. }
  44. });
  45. if (!kwArgs.baseDir && !kwArgs.project) {
  46. console.error("Missing required argument of \"baseDir\" or \"project\"");
  47. process.exit(1);
  48. }
  49. if (!kwArgs.project && kwArgs.files.length === 0) {
  50. console.error('Missing files');
  51. process.exit(1);
  52. }
  53. console.log('Starting');
  54. return index_1.default(kwArgs).then(function () {
  55. console.log('Done!');
  56. });
  57. };