README

moonbit-community/proton/command does not have a README file

#
AppCommandRequestContext

Request-scoped context for one bridged app command dispatch.

#
CommandContext

Request-scoped context supplied to typed application command handlers.

Lifecycle-owned task and event capabilities are added by the application runner; the registrar keeps handlers independent from transport details.

#
ExtensionSpecError

pub(all) suberror ExtensionSpecError {
InvalidContract(detail~ : String)
ForeignCommandRoute(extension_id~ : String, operation_name~ : String)
} derive(Eq)

Invalid typed metadata supplied while constructing an extension spec.

#
ExtensionSpecError::message

fn ExtensionSpecError::message(self : ExtensionSpecError) -> String

#
PermissionScopeValidationError

pub(all) suberror PermissionScopeValidationError {
Invalid(detail~ : String)
} derive(Eq)

A stable validation failure for an extension's renderer permission scope.

#
PermissionScopeValidationError::message

#
AppCommandApiDescriptor

pub struct AppCommandApiDescriptor {
api_name : String
}

One JavaScript-facing API descriptor exposed by a user app command extension.

#
AppCommandApiDescriptor::api_name

fn AppCommandApiDescriptor::api_name(self : AppCommandApiDescriptor) -> String

#
AppCommandApiDescriptor::new

fn AppCommandApiDescriptor::new(api_name : String) -> AppCommandApiDescriptor

#
AppCommandExtensionDescriptor

pub struct AppCommandExtensionDescriptor {
id : String
js_namespace : String
apis : Array[AppCommandApiDescriptor]
scripts : Array[String]
}

JavaScript bridge metadata exposed by a user app command extension.

#
AppCommandExtensionDescriptor::new

fn AppCommandExtensionDescriptor::new(id : String, js_namespace : String, apis : Array[AppCommandApiDescriptor], scripts? : Array[String]) -> AppCommandExtensionDescriptor

#
AppCommandExtensionRegistry

pub struct AppCommandExtensionRegistry {
specs : Map[String, AppCommandExtensionSpec]
registration_order : Array[String]
}

Registry of command extension specs available to one user app process.

#
AppCommandExtensionRegistry::get

#
AppCommandExtensionRegistry::new

#
AppCommandExtensionRegistry::ordered_names

#
AppCommandExtensionRegistry::registered_ids

fn AppCommandExtensionRegistry::registered_ids(self : AppCommandExtensionRegistry) -> Array[String]

#
AppCommandExtensionRegistry::spec_map

#
AppCommandExtensionSpec

pub struct AppCommandExtensionSpec {
id : String
js_namespace : String
apis : Array[AppCommandApiDescriptor]
scripts : Array[String]
dependencies : Array[String]
register : (CommandRegistrar) -> Unit raise
resolve_permission : (Json, String) -> Json raise PermissionScopeValidationError
on_destroy : () -> Unit raise
}

Declarative user-process command extension spec.

#
AppCommandExtensionSpec::apis

#
AppCommandExtensionSpec::dependencies

fn AppCommandExtensionSpec::dependencies(self : AppCommandExtensionSpec) -> Array[String]

#
AppCommandExtensionSpec::destroy

fn AppCommandExtensionSpec::destroy(self : AppCommandExtensionSpec) -> Unit raise

#
AppCommandExtensionSpec::id

#
AppCommandExtensionSpec::js_namespace

fn AppCommandExtensionSpec::js_namespace(self : AppCommandExtensionSpec) -> String

#
AppCommandExtensionSpec::op_names

fn AppCommandExtensionSpec::op_names(self : AppCommandExtensionSpec) -> Array[String]

#
AppCommandExtensionSpec::register

fn AppCommandExtensionSpec::register(self : AppCommandExtensionSpec, registrar : CommandRegistrar) -> Unit raise

#
AppCommandExtensionSpec::resolve_permission

fn AppCommandExtensionSpec::resolve_permission(self : AppCommandExtensionSpec, scope : Json, base_path : String) -> Json raise PermissionScopeValidationError

#
AppCommandExtensionSpec::scripts

#
AppCommandExtensionSpec::typed

fn AppCommandExtensionSpec::typed(contract :
ExtensionContract
, command_routes : Array[
ContractRoute
], register : (CommandRegistrar) -> Unit raise, scripts? : Array[String], dependencies? : Array[String], resolve_permission? : (Json, String) -> Json raise PermissionScopeValidationError, on_destroy? : () -> Unit raise) -> AppCommandExtensionSpec raise ExtensionSpecError

Creates an extension spec whose JavaScript APIs and native operation names are derived from typed extension command descriptors.

#
AppCommandsConfig

pub struct AppCommandsConfig {
op_names : Array[String]
extensions : Array[
IpcExtensionDescriptor
]
framework_extension_ids : Array[String]
}

Commands exposed by the user app process to the framework runtime.

#
AppCommandsConfig::framework_extension_ids

fn AppCommandsConfig::framework_extension_ids(self : AppCommandsConfig) -> Array[String]

#
AppCommandsConfig::from_ipc_descriptors

fn AppCommandsConfig::from_ipc_descriptors(op_names : Array[String], extensions : Array[
IpcExtensionDescriptor
], framework_extension_ids : Array[String]) -> AppCommandsConfig

#
AppCommandsConfig::new

fn AppCommandsConfig::new(op_names : Array[String], extensions? : Array[AppCommandExtensionDescriptor], framework_extension_ids? : Array[String]) -> AppCommandsConfig

#
AppCommandsConfig::op_names

fn AppCommandsConfig::op_names(self : AppCommandsConfig) -> Array[String]

#
CommandRegistrar

Startup-only capability for binding typed command descriptors to handlers.

#
CommandRegistrar::bind

Binds one typed descriptor to an asynchronous command handler.

Request decoding and response encoding are selected from the descriptor's type parameters. The descriptor is the only source of command identity.

#
app_command_extension_op_name

fn app_command_extension_op_name(js_namespace : String, api_name : String) -> String

#
app_command_js_property_is_reserved

fn app_command_js_property_is_reserved(name : String) -> Bool

Powered by MoonBit

Site sourceReport issuePackagesBuild queueSkillsStatistics

© 2026 mooncakes.io