UNPKG

1.18 kBJavaScriptView Raw
1var path = require('path');
2
3var createTypeScriptPreprocessor = function(args, config, logger, helper) {
4 config = config || {};
5
6 var log = logger.create('preprocessor.typescript');
7 var defaultOptions = {};
8
9 var transformPath = args.transformPath || config.transformPath || function(filepath) {
10 return filepath.replace(/\.ts$/, '.js');
11 };
12
13 // compiler options
14 var options = helper.merge(defaultOptions, args.options || {}, config.options || {});
15 var ts = config.typescript || require('typescript');
16
17 return function(content, file, done) {
18 log.debug('Processing "%s".', file.originalPath);
19 file.path = transformPath(file.originalPath);
20
21 try {
22 var output = ts.transpileModule(content, {
23 compilerOptions: options,
24 fileName: path.relative(process.cwd(), file.originalPath),
25 });
26 done(null, output.outputText);
27 } catch(e) {
28 log.error('%s\n at %s\n%s', e.message, file.originalPath, e.stack);
29 return done(e, null);
30 }
31 };
32};
33
34createTypeScriptPreprocessor.$inject = ['args', 'config.typescriptPreprocessor', 'logger', 'helper'];
35
36// PUBLISH DI MODULE
37module.exports = {
38 'preprocessor:typescript': ['factory', createTypeScriptPreprocessor]
39};