JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 155
  • Score
    100M100P100Q110899F
  • License Apache-2.0

TypeScript SDK for Phala Cloud API

Package Exports

  • @phala/cloud
  • @phala/cloud/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@phala/cloud) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Phala Cloud JavaScript SDK

TypeScript SDK for Phala Cloud API.

Installation

# Using npm
npm install @phala/cloud

# Using yarn
yarn add @phala/cloud

# Using pnpm
pnpm add @phala/cloud

# Using bun
bun add @phala/cloud

Usage

Basic Usage

import { createClient } from '@phala/cloud';

// Create client with API key
const client = createClient({
  apiKey: 'your-api-key',
  // Optional: override base URL
  // baseURL: 'https://custom-api.example.com'
});

// Make API requests
const result = await client.get('/kms');
console.log(result);

// Using safe methods that return a SafeResult
const safeResult = await client.safeGet('/kms');
if (safeResult.success) {
  console.log('Success:', safeResult.data);
} else {
  console.error('Error:', safeResult.error);
}

Environment Variables

You can configure the client using environment variables:

  • PHALA_CLOUD_API_KEY: API key for authentication
  • PHALA_CLOUD_API_PREFIX: Base URL prefix for the API
// Using environment variables (set PHALA_CLOUD_API_KEY)
const client = createClient();

Debug Logging

The SDK includes built-in debug logging that can display cURL-like request and response information. To enable it, set the DEBUG environment variable to phala::api-client:

# Enable debug logging
DEBUG=phala::api-client node your-script.js

# Or with bun
DEBUG=phala::api-client bun run your-script.ts

This will print detailed information about each API call in a format similar to cURL:

=== REQUEST ===
> curl -X GET "https://cloud-api.phala.network/api/v1/kms"
    -H "X-API-Key: your-api-key"
    -H "X-Phala-Version: 2025-05-31"
    -H "Content-Type: application/json"

=== RESPONSE [GET /kms] (123ms) ===
< HTTP/1.1 200 OK
< content-type: application/json
< x-response-time: 123

{
  "data": [
    {
      "id": "example-id",
      "name": "Example Key"
    }
  ]
}

Available Methods

Direct Methods (throw on error)

  • client.get<T>(request, options?): Promise<T>
  • client.post<T>(request, body?, options?): Promise<T>
  • client.put<T>(request, body?, options?): Promise<T>
  • client.patch<T>(request, body?, options?): Promise<T>
  • client.delete<T>(request, options?): Promise<T>

Safe Methods (return SafeResult)

  • client.safeGet<T>(request, options?): Promise<SafeResult<T>>
  • client.safePost<T>(request, body?, options?): Promise<SafeResult<T>>
  • client.safePut<T>(request, body?, options?): Promise<SafeResult<T>>
  • client.safePatch<T>(request, body?, options?): Promise<SafeResult<T>>
  • client.safeDelete<T>(request, options?): Promise<SafeResult<T>>

License

Apache-2.0