|
| 1 | +// Generates missing output source and AST files for the test cases |
| 2 | +// IMPORTANT: Always verify the generated files when using this! |
| 3 | + |
| 4 | +var fs = require('fs'); |
| 5 | +var path = require('path'); |
| 6 | +var parse = require('./').parse; |
| 7 | +var stringify = require('./').stringify; |
| 8 | + |
| 9 | +var casesDir = path.join(__dirname, 'test', 'cases'); |
| 10 | +var cases = fs.readdirSync(casesDir) |
| 11 | + .map(function(f) { return path.join(casesDir, f); }); |
| 12 | + |
| 13 | +cases.forEach(function(dir) { |
| 14 | + var inputFile = path.join(dir, 'input.css'); |
| 15 | + if (!fs.existsSync(inputFile)) |
| 16 | + throw new Error('Missing input file ' + inputFile); |
| 17 | + |
| 18 | + var input = fs.readFileSync(inputFile, 'utf8'); |
| 19 | + var parsed; |
| 20 | + try { |
| 21 | + parsed = parse(input, { source: 'input.css' }); |
| 22 | + } catch(e) { |
| 23 | + console.log('Failed to parse', inputFile); |
| 24 | + throw e; |
| 25 | + } |
| 26 | + |
| 27 | + var outputFile = path.join(dir, 'output.css'); |
| 28 | + if (!fs.existsSync(outputFile)) { |
| 29 | + console.log('Generating', outputFile); |
| 30 | + var output = stringify(parsed); |
| 31 | + fs.writeFileSync(outputFile, output, 'utf8'); |
| 32 | + } |
| 33 | + |
| 34 | + var compressedFile = path.join(dir, 'compressed.css'); |
| 35 | + if (!fs.existsSync(compressedFile)) { |
| 36 | + console.log('Generating', compressedFile); |
| 37 | + var compressed = stringify(parsed, { compress: true }); |
| 38 | + fs.writeFileSync(compressedFile, compressed, 'utf8'); |
| 39 | + } |
| 40 | + |
| 41 | + var astFile = path.join(dir, 'ast.json'); |
| 42 | + if (!fs.existsSync(astFile)) { |
| 43 | + console.log('Generating', astFile); |
| 44 | + var ast = JSON.stringify(parsed, null, ' '); |
| 45 | + fs.writeFileSync(astFile, ast, 'utf8'); |
| 46 | + } |
| 47 | +}); |
0 commit comments