JSPM

  • Created
  • Published
  • Downloads 15228
  • Score
    100M100P100Q172732F
  • License Apache-2.0

III SDK for Node.js

Package Exports

  • iii-sdk
  • iii-sdk/state
  • iii-sdk/stream
  • iii-sdk/telemetry

Readme

iii-sdk

Node.js / TypeScript SDK for the iii engine.

npm License

Install

npm install iii-sdk

Hello World

import { registerWorker } from 'iii-sdk'

const iii = registerWorker('ws://localhost:49134')

iii.registerFunction('greet', async (input) => {
  return { message: `Hello, ${input.name}!` }
})

iii.registerTrigger({
  type: 'http',
  function_id: 'greet',
  config: { api_path: '/greet', http_method: 'POST' },
})

const result = await iii.trigger({ function_id: 'greet', payload: { name: 'world' } })

API

Operation Signature Description
Initialize registerWorker(url, options?) Create and connect to the engine. Returns an ISdk instance
Register function iii.registerFunction(id, handler, options?) Register a function that can be invoked by name
Register trigger iii.registerTrigger({ type, function_id, config }) Bind a trigger (HTTP, cron, queue, etc.) to a function
Invoke (await) await iii.trigger({ function_id, payload }) Invoke a function and wait for the result
Invoke (fire-and-forget) iii.trigger({ function_id, payload, action: TriggerAction.Void() }) Invoke without waiting

Registering Functions

iii.registerFunction('orders.create', async (input) => {
  return { status_code: 201, body: { id: '123', item: input.body.item } }
})

Registering Triggers

iii.registerTrigger({
  type: 'http',
  function_id: 'orders.create',
  config: { api_path: '/orders', http_method: 'POST' },
})

Invoking Functions

import { registerWorker, TriggerAction } from 'iii-sdk'

const iii = registerWorker('ws://localhost:49134')

const result = await iii.trigger({ function_id: 'orders.create', payload: { item: 'widget' } })

iii.trigger({ function_id: 'analytics.track', payload: { event: 'page_view' }, action: TriggerAction.Void() })

Node Modules

Import What it provides
iii-sdk Core SDK (registerWorker, types)
iii-sdk/stream Stream client for real-time state
iii-sdk/state State client for key-value operations
iii-sdk/telemetry OpenTelemetry integration

Removed methods

call, callVoid, and triggerVoid have been removed. Use trigger() for all invocations. For fire-and-forget, use trigger({ function_id, payload, action: TriggerAction.Void() }).

Resources