scripts/lib/babel.js (42 lines of code) (raw):

import { spawnSync } from 'child_process'; import shell from 'shelljs'; import { expect } from 'chai'; export function isBuilt() { const isJS = (name) => name.endsWith('.js'); const srcModules = Array.from(shell.ls('-R', 'src/')).filter(isJS); const libModules = Array.from(shell.ls('-R', 'lib/')).filter(isJS); try { expect(libModules).to.deep.equal(srcModules); } catch (err) { if (err.name !== 'AssertionError') { throw err; } console.log( 'Missing build files in lib:', err.expected.reduce((result, filename) => { if (!err.actual.includes(filename)) { result += `\n- lib/${filename}`; } return result; }, ''), '\n' ); return false; } return true; } export default () => { const res = spawnSync( 'babel', ['--source-maps', 'true', 'src/', '-d', 'lib/'], { stdio: 'inherit', shell: true, } ); if (res.error) { console.error(res.error); return false; } return res.status === 0; };