0.1.2 • Published 6 months ago

@magicbutton.cloud/nats-transport v0.1.2

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

NATS Transport Provider

NATS transport provider for the Magic Button Cloud messaging library.

npm version License: MIT

Part of the Magic Button Cloud Providers collection.

Installation

# With npm
npm install @magicbutton.cloud/nats-transport

# With pnpm
pnpm add @magicbutton.cloud/nats-transport

# With yarn
yarn add @magicbutton.cloud/nats-transport

Usage

import { Client } from '@magicbutton.cloud/messaging';
import { NatsTransportFactory } from '@magicbutton.cloud/nats-transport';

// Create your transport factory
const transportFactory = new NatsTransportFactory();

// Create a client with your transport
const client = Client.create({
  transportFactory,
  transportConfig: {
    servers: ['nats://localhost:4222'],
    subjects: {
      requests: 'myapp.requests',
      events: 'myapp.events'
    }
  }
});

// Connect the client
await client.connect();

// Make a request
const response = await client.request('getUsers', { filter: 'active' });

// Subscribe to events
client.on('userAdded', (user) => {
  console.log('New user added:', user);
});

// Disconnect when done
await client.disconnect();

Configuration Options

OptionTypeRequiredDescription
serversstring[]YesArray of NATS server URLs
tokenstringNoAuthentication token
userstringNoUsername for authentication
passstringNoPassword for authentication
subjects.requestsstringNoBase subject for requests (default: 'messaging.requests')
subjects.eventsstringNoBase subject for events (default: 'messaging.events')
connectTimeoutnumberNoConnection timeout in milliseconds (default: 10000)

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

0.1.2

6 months ago