scriptable-abstract
TypeScript icon, indicating that this package has built-in type declarations

1.8.0 • Public • Published

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
# or
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> {
    // Mock implementation
    return 0;
  }
}

Using Generic Types

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

Package Sidebar

Install

npm i scriptable-abstract

Weekly Downloads

46

Version

1.8.0

License

MIT

Unpacked Size

1.81 MB

Total Files

8

Last publish

Collaborators

  • hexxspark