Packages
ash_typescript
0.6.3
0.17.3
0.17.2
0.17.1
0.17.0
0.16.0
0.15.3
0.15.2
retired
0.15.1
retired
0.15.0
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
retired
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.6
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.2
0.10.1
0.10.0
0.9.1
0.9.0
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.1
0.7.0
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.0
0.4.0
0.3.3
0.3.2
0.3.1
0.2.0
0.1.2
0.1.0
Generate type-safe TypeScript clients directly from your Ash resources and actions, ensuring end-to-end type safety between your backend and frontend.
Current section
Files
Jump to
Current section
Files
documentation/dsls/DSL-AshTypescript.Rpc.md
<!--
This file was generated by Spark. Do not edit it by hand.
-->
# AshTypescript.Rpc
## typescript_rpc
Define available RPC-actions for resources in this domain.
### Nested DSLs
* [resource](#typescript_rpc-resource)
* rpc_action
* typed_query
### typescript_rpc.resource
```elixir
resource resource
```
Define available RPC-actions for a resource
### Nested DSLs
* [rpc_action](#typescript_rpc-resource-rpc_action)
* [typed_query](#typescript_rpc-resource-typed_query)
### Arguments
| Name | Type | Default | Docs |
|------|------|---------|------|
| [`resource`](#typescript_rpc-resource-resource){: #typescript_rpc-resource-resource } | `module` | | The resource being configured |
### typescript_rpc.resource.rpc_action
```elixir
rpc_action name, action
```
Define an RPC action that exposes a resource action to TypeScript clients.
Metadata fields: Action metadata can be exposed via `show_metadata` option.
Set to `nil` (default) to expose all metadata fields, `false` or `[]` to disable,
or provide a list of atoms to expose specific fields.
Metadata field naming: Use `metadata_field_names` to map invalid metadata field names
(e.g., `field_1`, `is_valid?`) to valid TypeScript identifiers.
Example: `metadata_field_names [field_1: :field1, is_valid?: :isValid]`
### Arguments
| Name | Type | Default | Docs |
|------|------|---------|------|
| [`name`](#typescript_rpc-resource-rpc_action-name){: #typescript_rpc-resource-rpc_action-name } | `atom` | | The name of the RPC-action |
| [`action`](#typescript_rpc-resource-rpc_action-action){: #typescript_rpc-resource-rpc_action-action } | `atom` | | The resource action to expose |
### Options
| Name | Type | Default | Docs |
|------|------|---------|------|
| [`show_metadata`](#typescript_rpc-resource-rpc_action-show_metadata){: #typescript_rpc-resource-rpc_action-show_metadata } | `nil \| boolean \| list(atom)` | | Which metadata fields to expose (nil=all, false/[]=none, list=specific fields) |
| [`metadata_field_names`](#typescript_rpc-resource-rpc_action-metadata_field_names){: #typescript_rpc-resource-rpc_action-metadata_field_names } | `list({atom, atom})` | `[]` | Map metadata field names to valid TypeScript identifiers |
### Introspection
Target: `AshTypescript.Rpc.RpcAction`
### typescript_rpc.resource.typed_query
```elixir
typed_query name, action
```
### Arguments
| Name | Type | Default | Docs |
|------|------|---------|------|
| [`name`](#typescript_rpc-resource-typed_query-name){: #typescript_rpc-resource-typed_query-name } | `atom` | | The name of the RPC-action |
| [`action`](#typescript_rpc-resource-typed_query-action){: #typescript_rpc-resource-typed_query-action } | `atom` | | The read action on the resource to query |
### Options
| Name | Type | Default | Docs |
|------|------|---------|------|
| [`ts_result_type_name`](#typescript_rpc-resource-typed_query-ts_result_type_name){: #typescript_rpc-resource-typed_query-ts_result_type_name } | `String.t` | | The name of the TypeScript type for the query result |
| [`ts_fields_const_name`](#typescript_rpc-resource-typed_query-ts_fields_const_name){: #typescript_rpc-resource-typed_query-ts_fields_const_name } | `String.t` | | The name of the constant for the fields, that can be reused by the client to re-run the query |
| [`fields`](#typescript_rpc-resource-typed_query-fields){: #typescript_rpc-resource-typed_query-fields } | `list(any)` | | The fields to query |
### Introspection
Target: `AshTypescript.Rpc.TypedQuery`
### Introspection
Target: `AshTypescript.Rpc.Resource`
<style type="text/css">.spark-required::after { content: "*"; color: red !important; }</style>