1.8.0 • Published 5 months ago

scriptable-abstract v1.8.0

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

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
1.8.0

5 months ago

1.7.0

6 months ago

1.6.1

6 months ago

1.6.0

6 months ago

1.5.1

6 months ago

1.5.0

6 months ago

1.4.0

7 months ago

1.3.2

7 months ago

1.3.1

7 months ago

1.3.0

7 months ago

1.2.0

7 months ago

1.1.0

7 months ago

1.0.12

7 months ago

1.0.11

7 months ago

1.0.10

7 months ago

1.0.9

7 months ago

1.0.8

7 months ago

1.0.7

7 months ago

1.0.6

7 months ago

1.0.5

7 months ago

1.0.4

7 months ago

1.0.3

7 months ago

1.0.2

7 months ago

1.7.7-1

7 months ago

1.0.1

7 months ago