ExMacOSControl.Adapter behaviour (ExMacOSControl v0.1.2)

View Source

Behaviour defining the adapter interface for macOS automation.

This behaviour defines the callbacks that must be implemented by adapter modules to provide macOS automation functionality. Adapters are responsible for executing AppleScript code, JavaScript for Automation (JXA) code, and running Shortcuts on macOS.

The default implementation is ExMacOSControl.OSAScriptAdapter, which uses the osascript command-line tool. Alternative implementations can be provided for testing or to support different execution strategies.

Summary

Types

option()

@type option() ::
  {:timeout, pos_integer()}
  | {:args, [String.t()]}
  | {:language, :applescript | :javascript}
  | {:input, String.t() | number() | map() | list()}

options()

@type options() :: [option()]

Callbacks

list_shortcuts()

@callback list_shortcuts() :: {:ok, [String.t()]} | {:error, term()}

run_applescript(t)

@callback run_applescript(String.t()) :: {:ok, String.t()} | {:error, term()}

run_applescript(t, options)

@callback run_applescript(String.t(), options()) :: {:ok, String.t()} | {:error, term()}

run_javascript(t)

@callback run_javascript(String.t()) :: {:ok, String.t()} | {:error, term()}

run_javascript(t, options)

@callback run_javascript(String.t(), options()) :: {:ok, String.t()} | {:error, term()}

run_script_file(t, options)

@callback run_script_file(String.t(), options()) :: {:ok, String.t()} | {:error, term()}

run_shortcut(t)

@callback run_shortcut(String.t()) :: :ok | {:ok, String.t()} | {:error, term()}

run_shortcut(t, options)

@callback run_shortcut(String.t(), options()) ::
  :ok | {:ok, String.t()} | {:error, term()}