@scml-dol-maplebirch/types
v5.0.4
Published
TypeScript definitions for maplebirchFramework.
Readme
@scml-dol-maplebirch/types
TypeScript declarations for the public APIs and globals exposed by maplebirchFramework.
This package contains declarations only. It improves editor completion and type checking for DoL mods, but does not install or load maplebirchFramework at runtime.
Installation
npm install --save-dev @scml-dol-maplebirch/typesConfiguration
Add the package to the types list in your mod project's tsconfig.json:
{
"compilerOptions": {
"types": ["@types/twine-sugarcube", "@scml-dol-maplebirch/types"],
"skipLibCheck": true
}
}skipLibCheck is currently recommended because declarations supplied by the wider ModLoader ecosystem
are not yet fully compatible with TypeScript 7's stricter declaration checks. Your own source files are
still checked normally.
If your project does not restrict compilerOptions.types, installing the package and importing it from
one source file is sufficient:
import type {} from '@scml-dol-maplebirch/types';Global API
The package declares the global maplebirch instance and the framework's public utility globals:
maplebirch.log('module loaded', 'INFO');
maplebirch.tool.addTo('Options', 'MyModOptions');
maplebirch.on(':passagestart', passage => {
maplebirch.log(`entered passage: ${passage.title}`, 'DEBUG');
});
const copy = clone({ enabled: true });Importing the API type
Use a type-only import when a named type is more convenient than the global declaration:
import type maplebirch from '@scml-dol-maplebirch/types';
type Maplebirch = typeof maplebirch;Version compatibility
Package versions follow maplebirchFramework versions. For the most accurate declarations, use the same version as the framework loaded by your mod rather than relying on an unpinned latest version.
Related dependencies
Declarations from SugarCube, ModLoader, and SC2 are installed transitively. You normally do not need to install them separately unless your project imports those packages directly.
License
This package, like the whole project, is dual-licensed: choose either MIT or CC BY-NC-SA 4.0. Both license texts are included in the package. Third-party dependencies retain their own licenses.
