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.
		
		
		
		
		
			
		
			
				
					
					
						
							47 lines
						
					
					
						
							923 B
						
					
					
				
			
		
		
	
	
							47 lines
						
					
					
						
							923 B
						
					
					
				
 | 
						|
/** | 
						|
 * Module dependencies. | 
						|
 */ | 
						|
 | 
						|
var Compressed = require('./compress'); | 
						|
var Identity = require('./identity'); | 
						|
 | 
						|
/** | 
						|
 * Stringfy the given AST `node`. | 
						|
 * | 
						|
 * Options: | 
						|
 * | 
						|
 *  - `compress` space-optimized output | 
						|
 *  - `sourcemap` return an object with `.code` and `.map` | 
						|
 * | 
						|
 * @param {Object} node | 
						|
 * @param {Object} [options] | 
						|
 * @return {String} | 
						|
 * @api public | 
						|
 */ | 
						|
 | 
						|
module.exports = function(node, options){ | 
						|
  options = options || {}; | 
						|
 | 
						|
  var compiler = options.compress | 
						|
    ? new Compressed(options) | 
						|
    : new Identity(options); | 
						|
 | 
						|
  // source maps | 
						|
  if (options.sourcemap) { | 
						|
    var sourcemaps = require('./source-map-support'); | 
						|
    sourcemaps(compiler); | 
						|
 | 
						|
    var code = compiler.compile(node); | 
						|
    compiler.applySourceMaps(); | 
						|
 | 
						|
    var map = options.sourcemap === 'generator' | 
						|
      ? compiler.map | 
						|
      : compiler.map.toJSON(); | 
						|
 | 
						|
    return { code: code, map: map }; | 
						|
  } | 
						|
 | 
						|
  var code = compiler.compile(node); | 
						|
  return code; | 
						|
};
 | 
						|
 |