This repository has been archived on 2023-11-26. You can view files and clone it, but cannot push or open issues or pull requests.
ScriptCraft/docs/ARCHITECTURE.md

1.3 KiB

Architecture

JavaScript

Inside the JAR, JS source files are in <JAR Root>/scriptcraft, and inside a typical Gradle project they are in src/main/resources/scriptcraft.

External Libraries

An external libraries API can be accessed using an import statement.

TypeScript

TypeScript-based projects use the com.thebrokenrail.scriptcraft.plugin Gradle plugin, this plugin will handle installing TypeScript and download any API type declarations. The TypeScript root using this Gradle plugin is at src/main/ts.

Custom TypeScript Root

The root for the TypeScript sub-project can be changed with:

scriptcraft {
    root = new File(project.rootDir, "a/b/c")
}

External Libraries

To access an external libraries' API in addition to an import statement, the TypeScript compiler must have access to the external libraries' type declarations. The ScriptCraft Gradle plugin generates and downloads these using JAR files called API JARs.

To generate an API JAr from your project, run ./gradlew apiJar, or add the apiJar task to your Maven publication.

To add an API JAR to your project, add it to the typescript configuration in your dependencies block.

API JAR File Structure

- API JAR Root
  - src/
    - Source Root
  - types/
    - File structure of node_modules/@types