UNPKG

1.31 kBJavaScriptView Raw
1import fs from 'fs';
2import path from 'path';
3import minify from '../';
4
5export function getFilesAndMinify(argv, opts) {
6 argv.results = argv._
7 .map(fileOrDir => {
8 if (fs.statSync(fileOrDir).isDirectory()) {
9 opts.logger.error('Directories are not supported.');
10 throw new Error('Input file is a Directory');
11 }
12 return fileOrDir;
13 })
14 .map(file => ({
15 contents: String(fs.readFileSync(file)),
16 filename: file
17 }))
18 .map(({contents, filename}) => ({
19 contents: minify(contents, argv),
20 filename
21 }));
22}
23
24export function putFiles(argv, opts) {
25 argv.results
26 .forEach(({contents, filename}) => {
27 if (argv._.length === 1) {
28 if (argv.output)
29 fs.writeFileSync(argv.output, contents);
30 else
31 opts.logger.log(contents);
32 } else {
33 if (argv.outputDir) {
34 const basename = path.basename(filename);
35 fs.writeFileSync(path.join(argv.outputDir, basename), contents);
36 } else {
37 opts.logger.error('Output Directory unspecified');
38 throw new Error('Output Directory unspecified');
39 }
40 }
41 });
42}
43
44export function runTasks(argv, opts) {
45 const tasks = [
46 getFilesAndMinify,
47 putFiles
48 ];
49 tasks.forEach(task => task(argv, opts));
50}