Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
return new Promise((resolve, reject) => {
if (source.fileContent && !source.content && source.type == 'css') {
try {
source.content = source.compress
? require('csso').minify(source.fileContent).css
: source.fileContent;
// Change tag type
source.tag = 'style';
} catch (err) {
reject(err);
}
}
resolve();
});
};
await step('3. generate style.css', async () => {
const csso = require('csso');
const stylePaths = [];
stylePaths.push(...(await globAsync(SRC_PATH, 'ui/**/*.css')));
stylePaths.push(...(await globAsync(SRC_PATH, 'pptr/**/*.css')));
stylePaths.push(...(await globAsync(SRC_PATH, 'third_party/**/*.css')));
const styles = stylePaths.map(stylePath => fs.readFileSync(stylePath, 'utf8'));
const styleContent = '/* THIS FILE IS GENERATED BY build.js */\n\n' + csso.minify(styles.join('\n'), {restructure: false}).css;
fs.writeFileSync(path.join(DST_PATH, 'style.css'), styleContent, 'utf8');
});
formatStyles: (styles: string): Promise => {
return minify(styles).css; // TODO filter out mapbox styles automatically
},
extractStyles: true,
protected isMinified(result: any): boolean {
const r = CSSO.minify(result.body, {restructure: false}).css;
return r === result.body;
}
}
async processCss(assetName, asset, assets) {
let css = asset.source();
css = await postcss([autoprefixer({browsers: this.options.browsers})]).process(css).css;
const result = csso.minify(css, Object.assign({filename: assetName}, this.options));
css = result.css;
if (this.options.sourceMap) {
assets.setAsset(`${assetName}.map`, result.map.toString());
css += `/*# sourceMappingURL=${path.basename(assetName)}.map */`;
}
return css;
}
}
export async function combineCss(cssFiles: string[]) {
const cssPromises = await cssFiles.map((path: string) => utils.readFile(path));
const cssContent = await Promise.all(cssPromises);
const cssCombined = cssContent.join('\n');
const compressedCss = csso.minify(cssCombined).css;
return compressedCss;
}
function readCSS(...args) {
return csso.minify(fs.readFileSync(path.resolve(...args), "utf8")).css;
}
minimize: function(content) {
return require('csso').minify(content).css;
},
function applyOptimization(css = '', cb: Function) {
try {
const autoprefixed = postcss([autoprefixer]).process(css).css;
const minified = csso.minify(autoprefixed).css;
cb(null, minified);
}
catch (err) {
Logger.error('Problem with autoprefixer/csso. Please create an issue https://github.com/bmvantunes/angular-library-builder');
cb(err);
}
}