@fastybird/web-ui-theme-chalk
Version:
FastyBird IoT application UI components chalk theme
72 lines (62 loc) • 2.06 kB
text/typescript
import path, { resolve } from 'path';
import chalk from 'chalk';
import { dest, parallel, series, src } from 'gulp';
import gulpSass from 'gulp-sass';
import dartSass from 'sass';
import autoprefixer from 'gulp-autoprefixer';
import cleanCSS from 'gulp-clean-css';
import consola from 'consola';
const webUiLibraryOutput = resolve(__dirname, '..', '..', 'web-ui-library', 'dist');
const distFolder = path.resolve(__dirname, 'dist');
const distBundle = path.resolve(webUiLibraryOutput, 'theme-chalk');
/**
* compile theme-chalk scss & minify
* not use sass.sync().on('error', sass.logError) to throw exception
* @returns
*/
function buildThemeChalk() {
const sass = gulpSass(dartSass);
return src(path.resolve(__dirname, 'src/*.scss'))
.pipe(sass.sync())
.pipe(autoprefixer({ cascade: false }))
.pipe(
cleanCSS({}, (details) => {
consola.success(
`${chalk.cyan(details.name)}: ${chalk.yellow(details.stats.originalSize / 1000)} KB -> ${chalk.green(details.stats.minifiedSize / 1000)} KB`
);
})
)
.pipe(dest(distFolder));
}
/**
* Build dark Css Vars
* @returns
*/
function buildDarkCssVars() {
const sass = gulpSass(dartSass);
return src(path.resolve(__dirname, 'src/dark/css-vars.scss'))
.pipe(sass.sync())
.pipe(autoprefixer({ cascade: false }))
.pipe(
cleanCSS({}, (details) => {
consola.success(
`${chalk.cyan(details.name)}: ${chalk.yellow(details.stats.originalSize / 1000)} KB -> ${chalk.green(details.stats.minifiedSize / 1000)} KB`
);
})
)
.pipe(dest(`${distFolder}/dark`));
}
/**
* copy from packages/theme-chalk/dist to dist/web-ui-library/theme-chalk
*/
export function copyThemeChalkBundle() {
return src(`${distFolder}/**`).pipe(dest(distBundle));
}
/**
* copy source file to packages
*/
export function copyThemeChalkSource() {
return src(path.resolve(__dirname, 'src/**')).pipe(dest(path.resolve(distBundle, 'src')));
}
export const build = parallel(copyThemeChalkSource, series(buildThemeChalk, buildDarkCssVars, copyThemeChalkBundle));
export default build;