p

org.scalajs.linker

interface

package interface

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. All

Type Members

  1. sealed abstract class CheckedBehavior extends AnyRef
  2. trait ClearableLinker extends Linker

    A box around a Linker to support clearing.

    A box around a Linker to support clearing.

    Calling clear() completely resets the state of this ClearableLinker, so that it can be used again without being affected by previous calls to link, even of those would have corrupted the internal state.

    In addition to the contract of Linker, if {{Linker.link}} throws an exception, the ClearableLinker is automatically clear()'ed.

    Implementations are allowed to automatically clear() in other cases, but never while a linking is in progress.

    Unless otherwise specified, instances of this trait are not thread-safe.

  3. final class ESFeatures extends AnyRef

    ECMAScript features to use when linking to JavaScript.

    ECMAScript features to use when linking to JavaScript.

    The options in ESFeatures specify what features of modern versions of JavaScript are used by the Scala.js linker.

    • Options whose name is of the form useX *force* the linker to use the corresponding features, guaranteeing that the specific semantics that they provide will be used.
    • Options whose name is of the form allowX *allow* the linker to use the corresponding features if it supports them. Support for such options can be dropped in any subsequent version of the linker, including patch versions.
    • Options whose name is of the form avoidX *hint* at the linker to avoid the corresponding features *when it does not affect observable semantics*. They are related to optimizations (for performance or code size). The linker is free to ignore those options.
    • The esVersion setting does not follow any of the schemes above. It is both a hint not to include support for old versions of ECMAScript, and a command to enable library or language features that rely on recent versions of ECMAScript.

    As of Scala.js 1.6.0, the setting useECMAScriptSemantics2015 is derived from esVersion. In the future, it might become independently configurable.

  4. final class ESVersion extends Ordered[ESVersion]
  5. abstract class IRContainer extends AnyRef
  6. abstract class IRFile extends AnyRef
  7. abstract class IRFileCache extends AnyRef

    Centralized Scala.js IR cache.

    Centralized Scala.js IR cache.

    Caches all Scala.js IR used in a given JVM. It supports creating of multiple sub-caches (IRFileCache.Cache) that track individual file sets. The global cache is fully thread-safe. However, the sub-caches are not.

  8. final class IRFileCacheConfig extends AnyRef

    Configuration of an IRFileCache.

  9. abstract class Linker extends AnyRef

    A Scala.js linker, with its most abstract API.

    A Scala.js linker, with its most abstract API.

    A linker can take a sequence of virtual .sjsir files and a sequence of module initializers, link them together, and write the resulting JS file(s) to a directory.

    Further, the linker returns a Report about the run.

  10. class LinkingException extends Exception

    Thrown by the linker when linking cannot be performed.

  11. final class ModuleInitializer extends AnyRef

    A module initializer for a Scala.js application.

    A module initializer for a Scala.js application.

    When linking a Scala.js application, a sequence of ModuleInitializers can be given. Those module initializers will be executed at the startup of the application. More specifically, the top-level code of the relevant ECMAScript 2015 module emitted will invoke the specified module initializers in the specified order, after having initialized everything else (notably static initializers).

    Instances of ModuleInitializer can be created with methods of the ModuleInitializer companion object.

    The module in which a ModuleInitializer is going to be placed can be adjusted using withModuleID.

  12. abstract class ModuleKind extends AnyRef

    Kind of module structure emitted for the Scala.js output.

  13. abstract class ModuleSplitStyle extends AnyRef

    How to split the output into modules.

  14. abstract class OutputDirectory extends AnyRef

    Directory where the linker will write its output files.

  15. final class OutputPatterns extends AnyRef

    Output patterns configure how the linker names/refers to modules it created.

    Output patterns configure how the linker names/refers to modules it created.

    Internally, the linker refers to every module using an abstract module ID.

    For public modules (i.e. modules that can be imported), the module ID is provided by the user.

    For internal modules (i.e. modules used to share code), the module ID is generated by the linker.

    Currently, all with* methods expect a Formatter pattern taking the module ID as sole string (%s) argument.

  16. abstract class Report extends AnyRef

    Information about a linker run.

  17. final class Semantics extends AnyRef
  18. final class StandardConfig extends AnyRef

    Configuration of a standard linker.

  19. final class LinkerOutput extends AnyRef

    Output specification for a linker run.

    Output specification for a linker run.

    Annotations
    @deprecated
    Deprecated

    (Since version 1.3.0) Part of old Linker interface

Deprecated Value Members

  1. object LinkerOutput
    Annotations
    @deprecated
    Deprecated

    (Since version 1.3.0) Part of old Linker interface

  2. object ReportToLinkerOutputAdapter

    Backwards compatibility implementation for pre 1.3.0 link method.

    Backwards compatibility implementation for pre 1.3.0 link method.

    The major interface change in 1.3.0 is that the linker (and not the caller) determines the set of files to be written. As a consequence, the post 1.3.0 API does not offer as much control over cross-file references (i.e. source map links): it is based on patterns rather than simply asking the caller to verbatim provide the URI to reference in each file.

    To provide a backwards compatible interface, we do the following post-run processing:

    • Match and copy the produced set of files (in the OutputDirectory) to the files provided by the caller (in LinkerOutput).
    • Replace the pattern generated cross-file references with the ones provided by the caller. This is necessary as a post-processing step, because of the reduced flexibility of the 1.3.0 API: we cannot express all legacy requests in the new API.
    Annotations
    @deprecated
    Deprecated

    (Since version 1.3.0) Part of legacy API.

Ungrouped