Method: Condenser::UglifyMinifier#call

Defined in:
lib/condenser/minifiers/uglify_minifier.rb

#call(environment, input) ⇒ Object

Raises:



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/condenser/minifiers/uglify_minifier.rb', line 17

def call(environment, input)
  opts = {
    # 'moduleRoot' => nil,
    # 'filename' => input[:filename],
    # 'moduleId' => input[:filename].sub(/(\..+)+/, ''),
    # 'filenameRelative' => input[:filename],#split_subpath(input[:load_path], input[:filename]),
    # 'sourceFileName' => input[:filename],
    # 'sourceMapTarget' => input[:filename]
    # # 'inputSourceMap'
  }.merge(@options)
  
  result = exec_runtime("    const UglifyJS = require(\"\#{File.expand_path('../node_modules', __FILE__)}/uglify-js\");\n    const source = \#{JSON.generate(input[:filename] => input[:source])}\n    const options = \#{JSON.generate(opts)};\n\n    // {\n    //     sourceMap: {\n    //         content: \"content from compiled.js.map\",\n    //         url: \"minified.js.map\"\n    //     }\n    // });\n    \n    try {\n      var result = UglifyJS.minify(source, options);\n      console.log(JSON.stringify(result));\n    } catch(e) {\n      console.log(JSON.stringify({'error': e.name + \": \" + e.message}));\n      process.exit(1);\n    }\n  JS\n\n  raise Error, result['error'] if result['error']\n  \n  if result['warnings']\n    result['warnings'].each { |w| environment.logger.warn(w) }\n  end\n  \n  input[:source] = result['code']\n  input[:map] = result['map']\nend\n")