@croffledev/croffle-types provides the essential type definitions and interfaces required to build, extend, and integrate plugins for the CROFFLE ecosystem.
By using this package, developers can ensure type safety and leverage IntelliSense when interacting with the Croffle Core API, IPC events, and the plugin lifecycle.
This package should be installed as a development dependency in your plugin project.
# Using npm
npm install -D @croffledev/croffle-types
# Using yarn
yarn add -D @croffledev/croffle-types
# Using pnpm
pnpm add -D @croffledev/croffle-typesImport the types to define your plugin structure. This ensures your plugin correctly implements the required lifecycle hooks and metadata.
import type { ICrofflePlugin, PluginContext } from "@croffledev/croffle-types";
const myPlugin: ICrofflePlugin = {
name: "MyAwesomePlugin",
version: "1.0.0",
onLoad(context: PluginContext) {
console.log("Croffle Plugin Loaded!", context.appVersion);
},
onUnload() {
console.log("Cleaning up...");
},
};
export default myPlugin;If your plugin extends the global window object or adds custom IPC channels, you can use these types to maintain a robust development environment.
| Type / Interface | Description |
|---|---|
ICrofflePlugin |
The base interface for every Croffle plugin. |
PluginContext |
Provides access to Croffle's internal APIs (Database, Storage, Notifications). |
BridgeAPI |
Types for IPC communication between the Renderer and Main process. |
ThemeConfig |
Interfaces for accessing Croffle's CSS variables and theme state. |
If you want to contribute to the type definitions or add support for new Core APIs:
- Fork the Croffle Main Repository.
- Navigate to the types workspace (or this standalone repo).
- Update
index.d.ts. - Submit a Pull Request with a clear description of the changes.
This package is distributed under the MIT License.
Copyright (c) 2026 Croffle Dev. & Croffle Contributors
