Skip to main content

toolchain info

v1.38.0

The moon toolchain info <id> [plugin] command will display detailed information about a toolchain, like what files are scanned, what configuration settings are available, and what tier APIs are supported. To do this, the command will download the WASM plugin, extract information, and call specific functions.

For built-in toolchains, the [plugin locator][locator] argument is optional, and will be derived from the identifier.

$ moon toolchain info typescript

For third-party toolchains, the [plugin locator][locator] argument is required, and must point to the WASM plugin.

$ moon toolchain info custom https://example.com/path/to/plugin.wasm

Arguments

  • <id> - ID of the toolchain to view.
  • [plugin] - Optional [plugin locator][locator] for third-party toolchains.

Example output

Toolchain ─────────────────────────────────────────────────────────────────

Provides sync operations that keep tsconfig.json's in a healthy state.

ID: typescript
Name: TypeScript
Version: 0.2.0

Configuration ─────────────────────────────────────────────────────────────

createMissingConfig: bool
When `syncProjectReferences` is enabled, will create a `tsconfig.json`
in referenced projects if it does not exist.

includeProjectReferenceSources: bool
Appends sources of project reference to `include` in `tsconfig.json`,
for each project.

includeSharedTypes: bool
Appends shared types to `include` in `tsconfig.json`, for each project.

projectConfigFileName: string
Name of the `tsconfig.json` file within each project.

root: string
The relative root to the TypeScript root. Primarily used for
resolving project references.

rootConfigFileName: string
Name of the `tsconfig.json` file at the workspace root.

rootOptionsConfigFileName: string
Name of the shared compiler options `tsconfig.json` file
at the workspace root.

routeOutDirToCache: bool
Updates and routes `outDir` in `tsconfig.json` to moon's cache,
for each project.

syncProjectReferences: bool
Syncs all project dependencies as `references` in `tsconfig.json`,
for each project.

syncProjectReferencesToPaths: bool
Syncs all project dependencies as `paths` in `tsconfig.json`,
for each project.

Tier 1 - Usage detection ──────────────────────────────────────────────────

Config files: tsconfig.json, tsconfig.*.json, *.tsconfig.json, .tsbuildinfo, *.tsbuildinfo
Executable names: tsc, tsserver
APIs:
🟢 register_toolchain (required)
🟢 define_toolchain_config
🟢 initialize_toolchain
⚫️ detect_version_files
⚫️ parse_version_file
🟢 define_docker_metadata
⚫️ scaffold_docker
⚫️ prune_docker
🟢 sync_project
⚫️ sync_workspace

Tier 2 - Platform integration ─────────────────────────────────────────────

APIs:
⚫️ extend_project_graph
⚫️ extend_task_command
⚫️ extend_task_script
⚫️ locate_dependencies_root
⚫️ install_dependencies
🟢 hash_task_contents
⚫️ parse_lock
⚫️ parse_manifest
⚫️ setup_environment

Tier 3 - Tool management ──────────────────────────────────────────────────

APIs:
⚫️ register_tool (required)
⚫️ load_versions
⚫️ resolve_version
⚫️ download_prebuilt (required)
⚫️ unpack_archive
⚫️ locate_executables (required)
⚫️ setup_toolchain
⚫️ teardown_toolchain