You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							63 lines
						
					
					
						
							1.7 KiB
						
					
					
				
			
		
		
	
	
							63 lines
						
					
					
						
							1.7 KiB
						
					
					
				#!/usr/bin/env node | 
						|
(function() { | 
						|
 | 
						|
  var fs = require('fs'); | 
						|
  var path = require('path'); | 
						|
  var parse = require('../parser').parse; | 
						|
  var jsesc = require('jsesc'); | 
						|
  var regexes = process.argv.splice(2); | 
						|
  var first = regexes[0]; | 
						|
  var data; | 
						|
  var log = console.log; | 
						|
  var flags = ''; | 
						|
  var main = function() { | 
						|
    if (/^(?:-h|--help|undefined)$/.test(first)) { | 
						|
      log([ | 
						|
        '\nUsage:\n', | 
						|
        '\tregjsparser [regex ...]', | 
						|
        '\tregjsparser [-f | --flags] u [regex ...]', | 
						|
        '\tregjsparser [-v | --version]', | 
						|
        '\tregjsparser [-h | --help]', | 
						|
        '\nExamples:\n', | 
						|
        '\tregjsparser \'^foo.bar$\'', | 
						|
        '\tregjsparser \'[a-zA-Z0-9]\'' | 
						|
      ].join('\n')); | 
						|
      return process.exit(1); | 
						|
    } | 
						|
 | 
						|
    if (/^(?:-v|--version)$/.test(first)) { | 
						|
      log('v%s', require(path.resolve(__dirname, '../package.json')).version); | 
						|
      return process.exit(1); | 
						|
    } | 
						|
 | 
						|
    if (/^(?:-f|--flags)$/.test(first)) { | 
						|
      flags = regexes[1]; | 
						|
      regexes = regexes.slice(2); | 
						|
    } | 
						|
 | 
						|
    regexes.forEach(function(snippet) { | 
						|
      try { | 
						|
        result = parse(snippet, flags); | 
						|
        log(jsesc(result, { | 
						|
          'json': true, | 
						|
          'compact': false, | 
						|
          'indent': '\t' | 
						|
        })); | 
						|
      } catch(error) { | 
						|
        log(error.message + '\n'); | 
						|
        log('Error: failed to parse. Make sure the regular expression is valid.'); | 
						|
        log('If you think this is a bug in regjsparser, please report it:'); | 
						|
        log('\thttps://github.com/jviereck/regjsparser/issues/new'); | 
						|
        log('\nStack trace:\n'); | 
						|
        log(error.stack); | 
						|
        return process.exit(1); | 
						|
      } | 
						|
    }); | 
						|
    // Return with exit status 0 outside of the `forEach` loop, in case | 
						|
    // multiple regular expressions were passed in. | 
						|
    return process.exit(0); | 
						|
  }; | 
						|
 | 
						|
  main(); | 
						|
 | 
						|
}());
 | 
						|
 |