/** * Returns an identifier for an --entry_point flag value. * * @param flagValue The flag value. If it is in one of the formats `goog:name.space` or * `goog:moduleName:name.space`, it is interpreted as a Closure namespace. Otherwise, it is * interpreted as the path to an ES or CommonJS module. */ public static ModuleIdentifier forFlagValue(String flagValue) { if (flagValue.startsWith("goog:")) { return ModuleIdentifier.forClosure(flagValue); } else { return ModuleIdentifier.forFile(flagValue); } } }
@Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof ModuleIdentifier) { ModuleIdentifier that = (ModuleIdentifier) o; return (this.name.equals(that.getName())) && (this.closureNamespace.equals(that.getClosureNamespace())) && (this.moduleName.equals(that.getModuleName())); } return false; }
/** * @param name Closure namespace used as an entry point. May start * "goog:" when provided as a flag from the command line. * * Closure entry points may also be formatted as: * 'goog:moduleName:name.space' * which specifies that the module name and provided namespace * are different */ public static ModuleIdentifier forClosure(String name) { String normalizedName = name; if (normalizedName.startsWith("goog:")) { normalizedName = normalizedName.substring("goog:".length()); } String namespace = normalizedName; String moduleName = normalizedName; int splitPoint = normalizedName.indexOf(':'); if (splitPoint != -1) { moduleName = normalizedName.substring(0, splitPoint); namespace = normalizedName.substring(Math.min(splitPoint + 1, normalizedName.length() - 1)); } return new ModuleIdentifier(normalizedName, namespace, moduleName); }
@Override public final String toString() { if (getClosureNamespace().equals(getModuleName())) { return getClosureNamespace(); } return getModuleName() + ":" + getClosureNamespace(); }
entryPointsBuilder.add(ModuleIdentifier.forFile(commonJsEntryModuleFlag)); entryPointsBuilder.add(ModuleIdentifier.forFlagValue(entryPoint)); entryPointsBuilder.add(ModuleIdentifier.forClosure(closureEntryPoint));
/** * Helper method to convert a list of closure entry points a list of the new * ModuleIdentifier values */ static List<ModuleIdentifier> entryPointsFromClosureEntryPoints( List<String> closureEntryPoints) { List<ModuleIdentifier> entryPoints = new ArrayList<ModuleIdentifier>(); for (String closureEntryPoint : closureEntryPoints) { entryPoints.add(ModuleIdentifier.forClosure(closureEntryPoint)); } return entryPoints; }
private String getImportedModuleName(NodeTraversal t, Node n, String importPath) { ModulePath modulePath = t.getInput() .getPath() .resolveJsModule(importPath, n.getSourceFileName(), n.getLineno(), n.getCharno()); if (modulePath == null) { return ModuleIdentifier.forFile(importPath).getModuleName(); } return modulePath.toModuleName(); }
if (input.getKnownProvides().isEmpty()) { ModuleIdentifier modInfo = ModuleIdentifier.forFile(input.getSourceFile().getOriginalPath()); inputModuleIdentifiers.put(modInfo.getClosureNamespace(), input);
ModuleIdentifier.forFile(input.getPath().toString()).toString(), input); for (String provide : input.getProvides()) { if (!provide.startsWith("module$")) { CompilerInput input = inputsByProvide.get(moduleIdentifier.toString()); if (input == null) { input = inputsByIdentifier.get(moduleIdentifier.toString());
private static List<ModuleIdentifier> getEntryPoints(List<String> entryFiles) { List<ModuleIdentifier> entryPoints = new ArrayList<ModuleIdentifier>(); for (String s : entryFiles) { entryPoints.add(ModuleIdentifier.forFile(s)); } return entryPoints; } }
/** * Sort inputs by their goog.provide/goog.require calls. * * @param entryPoints Entry points to the program. Must be goog.provide'd * symbols. Any goog.provide'd symbols that are not a transitive * dependency of the entry points will be deleted. * Files without goog.provides, and their dependencies, * will always be left in. */ public void setManageClosureDependencies(List<String> entryPoints) { Preconditions.checkNotNull(entryPoints); setManageClosureDependencies(true); List<ModuleIdentifier> normalizedEntryPoints = new ArrayList<ModuleIdentifier>(); for (String entryPoint : entryPoints) { normalizedEntryPoints.add(ModuleIdentifier.forClosure(entryPoint)); } dependencyOptions.setEntryPoints(normalizedEntryPoints); }
CompilerInput entryPointInput = null; try { if (entryPoint.getClosureNamespace().equals(entryPoint.getModuleName())) { entryPointInput = sorter.maybeGetInputProviding(entryPoint.getClosureNamespace()); entryPointInput = sorter.getInputProviding(entryPoint.getName()); JSModule module = modulesByName.get(entryPoint.getModuleName()); if (module == null) { throw new MissingModuleException(entryPoint.getModuleName()); } else { entryPointInput = sorter.getInputProviding(entryPoint.getClosureNamespace()); entryPointInput.overrideModule(module); throw new MissingProvideException(entryPoint.getName(), e);
if (flags.commonJsEntryModule != null) { if (flags.entryPoints.isEmpty()) { entryPoints.add(ModuleIdentifier.forFile(flags.commonJsEntryModule)); } else { reportError("--common_js_entry_module cannot be used with --entry_point."); entryPoints.add(ModuleIdentifier.forClosure(entryPoint)); } else { entryPoints.add(ModuleIdentifier.forFile(entryPoint)); } else { for (String entryPoint : flags.closureEntryPoint) { entryPoints.add(ModuleIdentifier.forClosure(entryPoint));
/** * Converts {@code <entrypoint/>} nested elements into Compiler entrypoint * replacements. */ private void convertEntryPointParameters(CompilerOptions options) { ImmutableList.Builder<ModuleIdentifier> entryPointsBuilder = ImmutableList.builder(); for (Parameter p : entryPointParams) { entryPointsBuilder.add(ModuleIdentifier.forClosure(p.getName())); } if (this.manageDependencies) { options.setDependencyOptions( DependencyOptions.pruneLegacyForEntryPoints(entryPointsBuilder.build())); } }
/** * @param filepath ES6 or CommonJS module used as an entry point. */ public static ModuleIdentifier forFile(String filepath) { String normalizedName = ES6ModuleLoader.toModuleName(ES6ModuleLoader.createUri(filepath)); return new ModuleIdentifier(filepath, normalizedName, normalizedName); } }
CompilerInput entryPointInput = null; try { if (entryPoint.getClosureNamespace().equals(entryPoint.getModuleName())) { entryPointInput = sorter.maybeGetInputProviding(entryPoint.getClosureNamespace()); entryPointInput = sorter.getInputProviding(entryPoint.getName()); JSModule module = modulesByName.get(entryPoint.getModuleName()); if (module == null) { throw new MissingModuleException(entryPoint.getModuleName()); } else { entryPointInput = sorter.getInputProviding(entryPoint.getClosureNamespace()); entryPointInput.overrideModule(module); throw new MissingProvideException(entryPoint.getName(), e);
entryPoints.add(ModuleIdentifier.forClosure(projectName)); dopts.setDependencyPruning(manageDependencies) .setDependencySorting(manageDependencies)