Plugin File Structure
Overview
Here file structure of a plugin is described
Notable directories and files of a plugin are following:
plugin
├── assets
│ └── icon.png
├── src
│ └── entrypoint.tsx
├── dist
├── node_modules
├── gauntlet.toml
├── package-lock.json
├── package.json
└── tsconfig.json
Plugin manifest
gauntlet.toml is a plugin manifest.
It is used to describe the plugin, what entrypoints does it have, what preferences, what permissions it requires
See Plugin Manifest
Source Code
All source files go into src directory. Currently, only TypeScript language is officially supported, which uses .ts or .tsx file extensions.
.tsx is used everywhere where some kind of UI is being created
Assets
assets directory contains files which will be downloaded together with the plugin itself.
It is optional and is only required if plugin has at least one asset
See Assets
dist directory
dist directory contains compiled plugin. It is created when starting dev server or when publishing the plugin
Dependency management
node_modules, package-lock.json and package.json all belong to Node.js and npm.
Even though Gauntlet uses Deno to run plugins, Node.js is used to run tooling: gather dependencies, run dev server, publish, etc.
Other
tsconfig.json is a configuration file for TypeScript language compiler