@tonk/server
v0.3.2
Published
Server package for Tonk applications
Keywords
Readme
Tonk Server
Server package for Tonk applications with WebSocket sync capabilities
Installation
npm install @tonk/serverFeatures
- Express-based HTTP server for serving your Tonk application
- WebSocket server for real-time data synchronization
- Development and production modes
- Automatic WASM file handling and service worker integration for PWAs
- Docker template for production deployments
Usage
Basic Server Setup
import {createServer} from '@tonk/server';
// Create and start a server in production mode
const server = await createServer({
mode: 'production',
distPath: './dist',
port: 8080,
});
// To stop the server
await server.stop();Development Mode
import {createServer} from '@tonk/server';
// Create a development server for WebSocket sync
const server = await createServer({
mode: 'development',
distPath: undefined,
port: 4080,
});Server Options
The createServer function and TonkServer constructor accept the following options:
mode:'development'or'production'(required)distPath: Path to the built frontend files (required for production mode)port: Server port (defaults to 4080 for development, 8080 for production)verbose: Enable/disable logging (defaults to true)
Using the CLI Script
The package includes a standalone server script that can be used to serve your application:
# Add to your package.json scripts
"serve": "node node_modules/@tonk/server/scripts/serve.cjs"This script will:
- Check if your application is built, and build it if necessary
- Create a local Express server
- Serve your application with WebSocket sync capabilities
WebSocket Sync Protocol
The server establishes a WebSocket endpoint at /sync that allows connected clients to synchronize data. Any message sent by a client is broadcast to all other connected clients.
Testing
To run the tests:
pnpm testDevelopment
- Clone the repository
- Install dependencies:
npm install - Build the package:
npm run build
License
MIT © Tonk
