UNPKG

@spaced-out/ui-design-system

Version:
72 lines (58 loc) 1.58 kB
const gulp = require('gulp'); const babel = require('gulp-babel'); const rename = require('gulp-rename'); const replace = require('gulp-replace'); const {spawnSync} = require('child_process'); const path = require('path'); const babelRc = require('./babel.config'); const doNotBuildThese = [ 'src/__tests__/**', 'src/**/*.test.js', 'src/**/*.stories.jsx', 'src/**/*.stories.module.css', 'src/stories/**', ]; function getJsStream() { return gulp.src('src/**/*.{js,jsx}', { ignore: doNotBuildThese, }); } function buildCjs() { return getJsStream() .pipe(babel(babelRc)) .pipe(replace('.jsx', '.js')) .pipe(gulp.dest('lib')); } function copyFlow() { return getJsStream() .pipe(replace('.jsx', '.js')) .pipe( rename((path) => { path.extname = path.extname.replace('jsx', 'js') + '.flow'; }), ) .pipe(gulp.dest('lib')); } function copyOther() { return gulp .src('src/**/*', { ignore: ['src/**/*.{js,jsx}', ...doNotBuildThese], }) .pipe(gulp.dest('lib')); } function generateDts(done) { const result = spawnSync('yarn', ['generate'], { stdio: 'inherit', cwd: path.resolve(__dirname, 'dts-generator'), shell: true, }); if (result.status !== 0) { return done(new Error('Failed to generate .d.ts files')); } done(); } const coreBuild = gulp.parallel(buildCjs, copyFlow, copyOther); // Note(Nishant): To unblock flow to ts migration // const fullBuild = gulp.series(coreBuild, generateDts); module.exports.build = coreBuild; // module.exports.build = fullBuild;