2020-06-04 19:54:12 -04:00
|
|
|
#!/bin/env node
|
2020-04-01 21:53:41 -04:00
|
|
|
/**
|
2020-06-04 19:54:12 -04:00
|
|
|
* Build plugins specified by globs
|
2020-04-01 21:53:41 -04:00
|
|
|
*/
|
|
|
|
const { spawnSync } = require('child_process');
|
|
|
|
|
|
|
|
const glob = process.argv[2];
|
|
|
|
const extraArgs = process.argv.slice(2);
|
|
|
|
|
|
|
|
process.env.PATH = `./node_modules/.bin:${process.env.PATH}`;
|
|
|
|
|
|
|
|
const run = cmd => {
|
2020-06-04 19:54:12 -04:00
|
|
|
// eslint-disable-next-line no-console
|
2020-04-01 21:53:41 -04:00
|
|
|
console.log(`>> ${cmd}`);
|
|
|
|
const [p, ...args] = cmd.split(' ');
|
|
|
|
const runner = spawnSync;
|
|
|
|
const { status } = runner(p, args, { stdio: 'inherit' });
|
|
|
|
if (status !== 0) {
|
|
|
|
process.exit(status);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2020-06-04 19:54:12 -04:00
|
|
|
const BABEL_CONFIG = '--config-file=../../babel.config.js';
|
|
|
|
|
2020-04-01 21:53:41 -04:00
|
|
|
if (glob) {
|
|
|
|
// lint is slow, so not turning it on by default
|
|
|
|
if (extraArgs.includes('--lint')) {
|
2020-04-20 21:03:10 -04:00
|
|
|
run(`nimbus eslint {packages,plugins}/${glob}/{src,test}`);
|
2020-04-01 21:53:41 -04:00
|
|
|
}
|
2020-06-04 19:54:12 -04:00
|
|
|
run(`nimbus babel --clean --workspaces="@superset-ui/${glob}" ${BABEL_CONFIG}`);
|
|
|
|
run(`nimbus babel --clean --workspaces="@superset-ui/${glob}" --esm ${BABEL_CONFIG}`);
|
2020-04-01 21:53:41 -04:00
|
|
|
run(`nimbus typescript --build --workspaces="@superset-ui/${glob}"`);
|
2020-06-04 19:54:12 -04:00
|
|
|
// eslint-disable-next-line global-require
|
|
|
|
require('./copyAssets');
|
2020-04-01 21:53:41 -04:00
|
|
|
} else {
|
2020-06-04 19:54:12 -04:00
|
|
|
run('yarn babel');
|
|
|
|
run('yarn type');
|
|
|
|
run('yarn build:assets');
|
2020-04-01 21:53:41 -04:00
|
|
|
}
|