karma.conf.js 855 B

1234567891011121314151617181920212223242526272829
  1. const fs = require('fs');
  2. const ts = require('typescript');
  3. const old = require.extensions['.ts'];
  4. require.extensions['.ts'] = function(m, filename) {
  5. // If we're in node module, either call the old hook or simply compile the
  6. // file without transpilation. We do not touch node_modules/**.
  7. if (filename.match(/node_modules/)) {
  8. if (old) {
  9. return old(m, filename);
  10. }
  11. return m._compile(fs.readFileSync(filename), filename);
  12. }
  13. // Node requires all require hooks to be sync.
  14. const source = fs.readFileSync(filename).toString();
  15. const result = ts.transpile(source, {
  16. target: ts.ScriptTarget.ES5,
  17. module: ts.ModuleKind.CommonJs,
  18. });
  19. // Send it to node to execute.
  20. return m._compile(result, filename);
  21. };
  22. // Import the TS once we know it's safe to require.
  23. module.exports = require('./karma.config.ts').config;