UNPKG

scriptable-abstract

Version:

Abstract class definitions and type structures for Scriptable-iOS, providing the foundation for building mock implementations and type-safe Scriptable development tools.

118 lines (85 loc) 2.95 kB
# 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 ```bash npm install scriptable-abstract # or pnpm add scriptable-abstract ``` ## Usage ### Building Mock Implementations ```typescript 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> { // Mock implementation return 0; } } ``` ### Using Generic Types ```typescript import { AbsCallbackURL } from 'scriptable-abstract'; // With type parameter for shortcuts 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 structures - `pnpm build` - Build the project - `pnpm clean` - Clean generated files - `pnpm format` - Format code - `pnpm 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 consistency - `pnpm check-update` - Check for updates - `pnpm auto-release` - Automated release process ### Automated Workflow 1. Daily checks for @types/scriptable-ios updates 2. Automatic version synchronization 3. Automated testing and building 4. Automatic releases for compatible updates 5. Issue creation for major version changes