UNPKG

wix-style-react

Version:
100 lines (95 loc) 2.63 kB
/* eslint no-console: 0 */ const ProgressBar = require('progress'); const tasks = [ { task: () => require('./tasks/clean-dist'), description: 'cleaned ./dist', }, { task: () => require('./tasks/transpile-src'), description: '** dist/cjs & dist/esm & dist/types', }, { task: () => require('./tasks/copy-d-ts'), description: '** src/**/*.d.ts => dist/types', }, { task: () => require('./tasks/export-testkits'), description: '** driver => testkit', }, { task: () => require('./tasks/transpile-files'), args: { folder: 'dist/testkit' }, description: '** transpiling testkit', }, { task: () => require('./tasks/copy-folders'), args: { srcDir: 'src/polyfills', destDir: 'dist/testkit/polyfills' }, description: '** polyfills => dist/testkit/polyfills', }, { task: () => require('./tasks/transpile-files'), args: { folder: 'dist/testkit/polyfills' }, description: '** transpiling polyfills', }, { task: () => require('./tasks/mv-folders'), args: { srcDir: 'dist/cjs', destDir: 'dist/src' }, description: '** dist/cjs - dist/src', }, { task: () => require('./tasks/copy-folders'), args: { srcDir: 'dist/types/.', destDir: 'dist/src' }, description: '** dist/types - dist/src', }, { task: () => require('./tasks/mv-folders'), args: { srcDir: 'dist/esm', destDir: 'dist/es/src', createFolder: 'dist/es', }, description: '** dist/esm - dist/es', }, { task: () => require('./tasks/copy-folders'), args: { srcDir: 'dist/types/.', destDir: 'dist/es/src' }, description: '** dist/types - dist/es/src', }, { task: () => require('./tasks/export-stylesheets'), description: '** index.st.css & index.es.st.css', }, { task: () => require('./tasks/patch-ssr-stylable'), description: '** dist/*.st.css patch ssr', }, ]; const STEPS = tasks.length; const TOTAL_STEPS_WIDTH = 20; const START_TIME = new Date(); const STEP_WIDTH = TOTAL_STEPS_WIDTH / STEPS; const progress = new ProgressBar( 'Transpiling `src` -> `dist` :bar :percent :dir', { total: STEP_WIDTH * STEPS, }, ); tasks .reduce( (promise, { task, description, args = {} }) => promise .then(() => { progress.tick(STEP_WIDTH, { dir: description }); }) .then(() => task()(args)) .catch(e => { progress.terminate('Error'); console.error(e); process.exit(1); }), Promise.resolve(), ) .then(() => console.log(`🚀 Done in ${Math.round(new Date() - START_TIME) / 1000}s`), );