@raystack/proton
v0.1.0-d8accdc231fe7e3b23b38c0535b2aa92da42cf24
Published
TypeScript/JavaScript client library for Raystack APIs generated from Protocol Buffer definitions
Readme
@raystack/proton
TypeScript/JavaScript client library for Raystack APIs generated from Protocol Buffer definitions.
NPM: https://npmjs.com/package/@raystack/proton
Installation
npm install @raystack/protonFor browser applications using TanStack Query:
npm install @raystack/proton @tanstack/react-queryUsage
Browser (React)
import { FrontierService } from '@raystack/proton/frontier';
import { createConnectTransport } from '@connectrpc/connect-web';
import { createPromiseClient } from '@connectrpc/connect';
const transport = createConnectTransport({
baseUrl: 'https://api.example.com'
});
const client = createPromiseClient(FrontierService, transport);
const users = await client.listUsers({ pageSize: 10 });Node.js
import { FrontierService } from '@raystack/proton/frontier';
import { createConnectTransport } from '@connectrpc/connect-node';
import { createPromiseClient } from '@connectrpc/connect';
const transport = createConnectTransport({
baseUrl: 'https://api.example.com',
httpVersion: '2'
});
const client = createPromiseClient(FrontierService, transport);
const users = await client.listUsers({ pageSize: 10 });With TanStack Query
import { FrontierServiceQueries } from '@raystack/proton/frontier';
import { useQuery } from '@tanstack/react-query';
function UsersList() {
const { data, isLoading } = useQuery(
FrontierServiceQueries.listUsers(transport, { pageSize: 10 })
);
if (isLoading) return <div>Loading...</div>;
return (
<ul>
{data?.users?.map(user => (
<li key={user.id}>{user.name}</li>
))}
</ul>
);
}Available Services
@raystack/proton/frontier- Frontier API@raystack/proton/compass- Compass API@raystack/proton/assets- Assets API@raystack/proton/guardian- Guardian API@raystack/proton/entropy- Entropy API@raystack/proton/optimus- Optimus API@raystack/proton/predator- Predator API@raystack/proton/raccoon- Raccoon API@raystack/proton/siren- Siren API@raystack/proton/stencil- Stencil API@raystack/proton/common- Common utilities
Each service export includes:
- Service client (e.g.,
FrontierService) - TanStack Query helpers (e.g.,
FrontierServiceQueries) - optional - TypeScript types and interfaces
Dependencies
This package requires:
@bufbuild/protobuf- Protocol Buffer runtime@connectrpc/connect- Connect RPC library@connectrpc/connect-query- Connect Query integration
Optional peer dependencies:
@tanstack/react-query- For query hooks (browser only)
Documentation
For complete API documentation, visit the Raystack Documentation.
Repository
Source code and protobuf definitions: raystack/proton
License
Apache 2.0
