utilities.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.compilerHost = exports.getNewLineCharacter = exports.d = void 0;
  4. var ts = require("typescript");
  5. var fs = require("fs");
  6. var path = require("path");
  7. var util = require("util");
  8. var logger_1 = require("./logger");
  9. function d(node) {
  10. console.log(util.inspect(node, { showHidden: true, depth: 10 }));
  11. }
  12. exports.d = d;
  13. var carriageReturnLineFeed = '\r\n';
  14. var lineFeed = '\n';
  15. // get default new line break
  16. function getNewLineCharacter(options) {
  17. if (options.newLine === ts.NewLineKind.CarriageReturnLineFeed) {
  18. return carriageReturnLineFeed;
  19. }
  20. else if (options.newLine === ts.NewLineKind.LineFeed) {
  21. return lineFeed;
  22. }
  23. return carriageReturnLineFeed;
  24. }
  25. exports.getNewLineCharacter = getNewLineCharacter;
  26. // Create a compilerHost object to allow the compiler to read and write files
  27. function compilerHost(transpileOptions) {
  28. var inputFileName = transpileOptions.fileName || (transpileOptions.jsx ? 'module.tsx' : 'module.ts');
  29. var compilerHost = {
  30. getSourceFile: function (fileName) {
  31. if (fileName.lastIndexOf('.ts') !== -1) {
  32. if (fileName === 'lib.d.ts') {
  33. return undefined;
  34. }
  35. if (path.isAbsolute(fileName) === false) {
  36. fileName = path.join(transpileOptions.tsconfigDirectory, fileName);
  37. }
  38. var libSource = '';
  39. try {
  40. libSource = fs.readFileSync(fileName).toString();
  41. }
  42. catch (e) {
  43. logger_1.logger.trace(e, fileName);
  44. }
  45. return ts.createSourceFile(fileName, libSource, transpileOptions.target, false);
  46. }
  47. return undefined;
  48. },
  49. writeFile: function (name, text) { },
  50. getDefaultLibFileName: function () { return 'lib.d.ts'; },
  51. useCaseSensitiveFileNames: function () { return false; },
  52. getCanonicalFileName: function (fileName) { return fileName; },
  53. getCurrentDirectory: function () { return ''; },
  54. getNewLine: function () { return '\n'; },
  55. fileExists: function (fileName) { return fileName === inputFileName; },
  56. readFile: function () { return ''; },
  57. directoryExists: function () { return true; },
  58. getDirectories: function () { return []; }
  59. };
  60. return compilerHost;
  61. }
  62. exports.compilerHost = compilerHost;