@spaced-out/ui-design-system
Version:
Sense UI components library
72 lines (58 loc) • 1.58 kB
JavaScript
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;