import com.google.javascript.jscomp.CompilationLevel;
import com.google.javascript.jscomp.Compiler;
import com.google.javascript.jscomp.CompilerOptions;
import com.google.javascript.jscomp.SourceMap;
import com.google.javascript.jscomp.SourceMap.Format;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class SourceMapDemo {
public static void main(String[] args) {
try {
Compiler compiler = new Compiler();
CompilerOptions options = new CompilerOptions();
CompilationLevel.SIMPLE_OPTIMIZATIONS.setOptionsForCompilationLevel(options);
String inputFileName = "src/main/java/OriginalCode.java";
String outputFileName = "src/main/java/CompiledCode.js";
String sourceMapFileName = "src/main/java/SourceMap.js.map";
compiler.compile(createExterns(), createInputsFromFiles(new String[]{inputFileName}), options);
String sourceMapJson = compiler.getSourceMap().toJSON();
OutputStream outputStream = new FileOutputStream(outputFileName);
compiler.toSource(outputStream);
outputStream.close();
OutputStream sourceMapOutputStream = new FileOutputStream(sourceMapFileName);
sourceMapOutputStream.write(sourceMapJson.getBytes());
sourceMapOutputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
private static com.google.javascript.jscomp.SourceFile[] createInputsFromFiles(String[] fileNames) {
com.google.javascript.jscomp.SourceFile[] inputs = new com.google.javascript.jscomp.SourceFile[fileNames.length];
for (int i = 0; i < fileNames.length; i++) {
inputs[i] = com.google.javascript.jscomp.SourceFile.fromFile(fileNames[i]);
}
return inputs;
}
private static com.google.javascript.jscomp.SourceFile[] createExterns() {
return null;
}
}