JS: make -meta-info cli option boolean

This commit is contained in:
Michael Nedzelsky
2015-05-16 02:39:56 +03:00
parent 572ce47c25
commit d629271510
12 changed files with 42 additions and 51 deletions
@@ -54,8 +54,7 @@ public abstract class Config {
private final String moduleId;
private final boolean sourcemap;
@Nullable
private final String metaFileOutputPath;
private final boolean metaInfo;
@NotNull
protected final List<KotlinJavascriptMetadata> metadata = new SmartList<KotlinJavascriptMetadata>();
@@ -71,23 +70,22 @@ public abstract class Config {
@NotNull EcmaVersion ecmaVersion,
boolean sourcemap,
boolean inlineEnabled,
@Nullable String metaFileOutputPath
boolean metaInfo
) {
this.project = project;
this.target = ecmaVersion;
this.moduleId = moduleId;
this.sourcemap = sourcemap;
this.inlineEnabled = inlineEnabled;
this.metaFileOutputPath = metaFileOutputPath;
this.metaInfo = metaInfo;
}
public boolean isSourcemap() {
return sourcemap;
}
@Nullable
public String getMetaInfo() {
return metaFileOutputPath;
public boolean isMetaInfo() {
return metaInfo;
}
public boolean isInlineEnabled() {
@@ -71,9 +71,9 @@ public class LibrarySourcesConfig extends Config {
boolean sourceMap,
boolean inlineEnabled,
boolean isUnitTestConfig,
@Nullable String metaFileOutputPath
boolean metaInfo
) {
super(project, moduleId, ecmaVersion, sourceMap, inlineEnabled, metaFileOutputPath);
super(project, moduleId, ecmaVersion, sourceMap, inlineEnabled, metaInfo);
this.files = files;
this.isUnitTestConfig = isUnitTestConfig;
}
@@ -186,7 +186,7 @@ public class LibrarySourcesConfig extends Config {
boolean sourceMap = false;
boolean inlineEnabled = true;
boolean isUnitTestConfig = false;
String metaFileOutputPath;
boolean metaInfo = false;
public Builder(@NotNull Project project, @NotNull String moduleId, @NotNull List<String> files) {
this.project = project;
@@ -214,13 +214,13 @@ public class LibrarySourcesConfig extends Config {
return this;
}
public Builder metaFileOutputPath(@Nullable String metaFileOutputPath) {
this.metaFileOutputPath = metaFileOutputPath;
public Builder metaInfo(boolean metaInfo) {
this.metaInfo = metaInfo;
return this;
}
public Config build() {
return new LibrarySourcesConfig(project, moduleId, files, ecmaVersion, sourceMap, inlineEnabled, isUnitTestConfig, metaFileOutputPath);
return new LibrarySourcesConfig(project, moduleId, files, ecmaVersion, sourceMap, inlineEnabled, isUnitTestConfig, metaInfo);
}
}
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.js.sourceMap.SourceMapBuilder
import org.jetbrains.kotlin.psi.JetFile
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
import org.jetbrains.kotlin.serialization.js.KotlinJavascriptSerializationUtil
import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils
import org.jetbrains.kotlin.utils.fileUtils.readTextOrEmpty
import java.io.File
import java.util.ArrayList
@@ -71,11 +72,11 @@ public abstract class TranslationResult protected (public val diagnostics: Diagn
val jsFile = SimpleOutputFile(sourceFiles, outputFile.getName(), prefix + code + postfix)
val outputFiles = arrayListOf(jsFile)
config.getMetaInfo()?.let {
val metaFile = File(it)
if (config.isMetaInfo()) {
val metaFileName = KotlinJavascriptMetadataUtils.replaceSuffix(outputFile.getName())
val metaFileContent = KotlinJavascriptSerializationUtil.metadataAsString(config.getModuleId(), moduleDescriptor)
val sourceFilesForMetaFile = ArrayList<File>(sourceFiles)
val jsMetaFile = SimpleOutputFile(sourceFilesForMetaFile, metaFile.getName(), metaFileContent)
val sourceFilesForMetaFile = ArrayList(sourceFiles)
val jsMetaFile = SimpleOutputFile(sourceFilesForMetaFile, metaFileName, metaFileContent)
outputFiles.add(jsMetaFile)
}