| #!/usr/bin/env node |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| 'use strict'; |
| const {getNativeImagePath, getFirstSupportedPlatform} = require('./lib/utils'); |
| const parseArgs = require('minimist'); |
|
|
| const compilerFlags = parseArgs(process.argv.slice(2)); |
|
|
| |
| |
| let platform; |
| if (compilerFlags.hasOwnProperty('platform')) { |
| platform = getFirstSupportedPlatform(compilerFlags.platform.split(',')); |
| delete compilerFlags.platform; |
| } else { |
| platform = getFirstSupportedPlatform(['native', 'java']); |
| } |
|
|
| |
| |
| |
| if (compilerFlags.hasOwnProperty('_') && compilerFlags['_'].length > 0) { |
| let existingJsFlags = []; |
| if (compilerFlags.js) { |
| if (Array.isArray(compilerFlags.js)) { |
| existingJsFlags = compilerFlags.js; |
| } else { |
| existingJsFlags = [compilerFlags.js]; |
| } |
| } |
| compilerFlags.js = existingJsFlags.concat(compilerFlags['_']); |
| delete compilerFlags['_']; |
| } else { |
| delete compilerFlags['_']; |
| } |
|
|
| |
| |
| |
| Object.keys(compilerFlags).forEach((flag) => { |
| if (compilerFlags[flag] === 'true') { |
| compilerFlags[flag] = true; |
| } else if (compilerFlags[flag] === 'false') { |
| compilerFlags[flag] = false; |
| } |
| }); |
|
|
| const Compiler = require('./lib/node/closure-compiler'); |
| let args = process.argv.slice(2); |
| for (let i = 0; i < args.length; i++) { |
| if (/^--platform/.test(args[i])) { |
| let delCount = 1; |
| if (args[i].indexOf('=') < 0 && args.length > i + 1) { |
| delCount++; |
| } |
| args.splice(i, delCount); |
| break; |
| } |
| } |
|
|
| const compiler = new Compiler(args); |
|
|
| compiler.spawnOptions = {stdio: 'inherit'}; |
| if (platform === 'native') { |
| compiler.JAR_PATH = null; |
| compiler.javaPath = getNativeImagePath(); |
| } |
|
|
| compiler.run((exitCode) => { |
| process.exitCode = exitCode; |
| }); |
|
|