Scriptable Abstract
Abstract class definitions and type structures for Scriptable-iOS, providing the foundation for building mock implementations and type-safe Scriptable development tools.
Features
- Complete type definitions extracted from @types/scriptable-ios
- Abstract class implementations with structural information
- Automatic code generation for class structures
- Used as the foundation for scriptable-mocks and other tools
- ESM and CommonJS module support
- Version tracking of source type definitions
Installation
npm install scriptable-abstract
pnpm add scriptable-abstract
Usage
Building Mock Implementations
import { AbsAlert } from 'scriptable-abstract';
class MockAlert extends AbsAlert {
private _title: string = '';
private _message: string = '';
get title(): string {
return this._title;
}
set title(value: string) {
this._title = value;
}
get message(): string {
return this._message;
}
set message(value: string) {
this._message = value;
}
async present(): Promise<number> {
return 0;
}
}
Using Generic Types
import { AbsCallbackURL } from 'scriptable-abstract';
const shortcutURL = new AbsCallbackURL<`shortcuts://x-callback-url/${string}`>();
Project Structure
scriptable-abstract/
├── src/
│ ├── core/ # Core parsing and generation
│ ├── generators/ # Structure generators
│ └── types/ # Type definitions
├── generated/ # Generated class structures
└── dist/ # Compiled output
Scripts
pnpm generate
- Generate abstract structurespnpm build
- Build the projectpnpm clean
- Clean generated filespnpm format
- Format codepnpm lint
- Lint code
License
MIT
Version Compatibility
This package uses semantic versioning independently from @types/scriptable-ios
. Each version specifies the compatible version of @types/scriptable-ios
in its dependencies.
For example:
- Package version:
1.0.0
works with @types/scriptable-ios@1.7.7 - Package version:
1.1.0
works with @types/scriptable-ios@1.7.8
Version Management
This package uses automated version management to stay in sync with @types/scriptable-ios:
- Automatic daily checks for updates
- Version synchronization across all dependencies
- Automated releases for minor and patch updates
- Manual review process for major version updates
Scripts
pnpm sync
- Check version consistencypnpm check-update
- Check for updatespnpm auto-release
- Automated release process
Automated Workflow
- Daily checks for @types/scriptable-ios updates
- Automatic version synchronization
- Automated testing and building
- Automatic releases for compatible updates
- Issue creation for major version changes