'use strict' const CompileCache = require('../../src/compile-cache') const fs = require('fs') const glob = require('glob') const path = require('path') const CONFIG = require('../config') module.exports = function () { console.log(`Transpiling CoffeeScript paths in ${CONFIG.intermediateAppPath}`) for (let path of getPathsToTranspile()) { transpileCoffeeScriptPath(path) } } function getPathsToTranspile () { let paths = [] paths = paths.concat(glob.sync(path.join(CONFIG.intermediateAppPath, 'src', '**', '*.coffee'), {nodir: true})) paths = paths.concat(glob.sync(path.join(CONFIG.intermediateAppPath, 'spec', '*.coffee'), {nodir: true})) for (let packageName of Object.keys(CONFIG.appMetadata.packageDependencies)) { paths = paths.concat(glob.sync( path.join(CONFIG.intermediateAppPath, 'node_modules', packageName, '**', '*.coffee'), {ignore: path.join(CONFIG.intermediateAppPath, 'node_modules', packageName, 'spec', '**', '*.coffee'), nodir: true} )) } return paths } function transpileCoffeeScriptPath (coffeePath) { const jsPath = coffeePath.replace(/coffee$/g, 'js') fs.writeFileSync(jsPath, CompileCache.addPathToCache(coffeePath, CONFIG.atomHomeDirPath)) fs.unlinkSync(coffeePath) }