https://github.com/vixalien/peachy-types
https://github.com/vixalien/peachy-types
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/vixalien/peachy-types
- Owner: vixalien
- Created: 2024-07-28T21:02:19.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2026-03-29T00:17:42.000Z (3 months ago)
- Last Synced: 2026-03-29T03:04:21.226Z (3 months ago)
- Language: Shell
- Size: 61.6 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# @peachy/types
> **Note:** This package is meant to be used with [peachy]
TypeScript type definitions for GJS and GNOME libraries. Get full autocomplete, type-checking, and inline documentation in your editor when building GNOME apps with TypeScript.
Types are auto-generated with [girgen] data shipped with the GNOME SDK `master` branch.
> **Note:** The full list of available types depends on the libraries present in the GNOME SDK at the time of generation. You can find the list of all generated types here: [./types](./types).
## Installation
```bash
npm install @peachy/types
```
## Usage
Add `@peachy/types` to your `tsconfig.json`:
```json
{
"compilerOptions": {
"types": ["@peachy/types"]
}
}
```
Then import GNOME libraries with full type support:
```ts
import Gtk from "gi://Gtk?version=4.0";
import Adw from "gi://Adw?version=1";
const app = new Adw.Application({
applicationId: "com.example.MyApp",
});
app.connect("activate", () => {
const window = new Adw.ApplicationWindow({ application: app });
const label = new Gtk.Label({ label: "Hello from TypeScript!" });
window.set_content(label);
window.present();
});
app.run([]);
```
## Versioning
Types track the GNOME SDK `master` branch from [GNOME Nightly][nightly]. This means they reflect the latest development state of GNOME libraries, which may include APIs not yet available in stable releases.
| @peachy/types version | GNOME SDK |
|-----------------------|------------------|
| `latest` | `master` |
In the future, we plan to support specific stable GNOME releases (48, 49, etc...).
## License
MIT
[nightly]: https://nightly.gnome.org/
[peachy]: https://gitlab.gnome.org/vixalien/peachy
[girgen]: https://github.com/Aylur/girgen