A set of TypeScript interfaces and enums, API documentation, JSON file typings and JSON schema for Aseprite JSON files.
npm install @kayahr/aseprite
You can use the provided interfaces and enums to work with Aseprite JSON data in a type-safe way:
import * as aseprite from "@kayahr/aseprite";
const response = await fetch("spaceship.aseprite.json");
const spaceship = (await response.json()) as aseprite.SpriteSheet;
const image = spaceship.meta.image;
const isRGBA = spaceship.meta.format === aseprite.Format.RGBA8888;
This project provides typings for JSON files with the file pattern *.aseprite.json
. So when you name your JSON files like this and your module loader supports importing JSON files then you can import the sprite sheets right away and TypeScript already knows the type and can validate your code:
import spaceship from "../sprites/spaceship.aseprite.json";
const image = spaceship.meta.image;
const isRGBA = spaceship.meta.format === aseprite.Format.RGBA8888;
Note that you have to import @kayahr/aseprite
somewhere in your application at least once or otherwise TypeScript doesn't load the typings for *.aseprite.json
files. If you don't actually need to import an actual type then simply do import "@kayahr/aseprite"
somewhere in your code or add node_modules/@kayahr/aseprite/lib/main/aseprite.json.d.ts
to the include list in your tsconfig.json
.
In case you want to validate Aseprite JSON files or benefit from completion while editing these files there is also a JSON schema file which is automatically generated from the TypeScript types.
You can also access the schema file via your module loader by importing @kayahr/aseprite/aseprite.schema.json
.
The interfaces and enums describing the Aseprite JSON format are documented so VSCode displays the documentation during completion and in tooltips. There is also a HTML API documentation.