Class DependencyOptions

  • All Implemented Interfaces:
    java.io.Serializable

    @Immutable
    public abstract class DependencyOptions
    extends java.lang.Object
    implements java.io.Serializable
    Options for how to manage dependencies between input files.

    Dependency information is pulled out from the JS code by looking for import and export primitives (like ES import and export statements, Closure Library's goog.module, goog.provide and goog.require calls, or CommonJS require calls). The compiler can optionally use this information to sort input files in dependency order and/or prune unnecessary input files.

    Also see CodingConvention.extractClassNameIfProvide(Node, Node) and CodingConvention.extractClassNameIfRequire(Node, Node), which affect what the compiler considers to be goog.provide and goog.require statements.

    See Also:
    Serialized Form
    • Constructor Detail

      • DependencyOptions

        public DependencyOptions()
    • Method Detail

      • getEntryPoints

        public abstract com.google.common.collect.ImmutableList<ModuleIdentifier> getEntryPoints()
        Returns the list of explicit entry points.
      • needsManagement

        public boolean needsManagement()
        Returns whether dependency management is enabled.
      • shouldSort

        public boolean shouldSort()
        Returns whether files should be sorted.

        If true, the input files should be sorted in dependency order. Otherwise, input files should not be reordered.

      • shouldPrune

        public boolean shouldPrune()
        Returns whether files should be pruned.

        If true, an input file should be excluded from the compilation if it is not a transitive dependency of an entry point. Otherwise, all input files should be included.

      • shouldDropMoochers

        public boolean shouldDropMoochers()
        Returns whether moochers should be dropped.

        A moocher is a strong file that does not goog.provide a namespace and is not a goog.module, ES module or CommonJS module. Weak files are never considered moochers.

        If true, moochers should not be considered implicit entry points.

      • fromFlags

        @Nullable
        public static DependencyOptions fromFlags​(@Nullable
                                                  DependencyOptions.DependencyMode dependencyModeFlag,
                                                  java.util.List<java.lang.String> entryPointFlag,
                                                  java.util.List<java.lang.String> closureEntryPointFlag,
                                                  java.lang.String commonJsEntryModuleFlag,
                                                  boolean manageClosureDependenciesFlag,
                                                  boolean onlyClosureDependenciesFlag)
        A helper function for validating dependency management flags and converting them into a DependencyOptions object.

        Returns null when no dependency management flags have been specified.

        TODO(tjgq): Simplify this once we deprecate and remove all legacy flags and standardize on --dependency_mode and --entry_point.