UNPKG

openraas

Version:

Open Robot-as-a-Service Protocol - A comprehensive TypeScript library for building and consuming RaaS applications with X402 payment support on Solana

54 lines (51 loc) 1.71 kB
#!/usr/bin/env node "use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const commander_1 = require("commander"); const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); const program = new commander_1.Command(); program .name('openraas') .description('CLI for OpenRaaS') .version('0.1.0'); program .command('init <name>') .description('Initialize a new OpenRaaS project') .action((name) => { const projectPath = path_1.default.join(process.cwd(), name); if (fs_1.default.existsSync(projectPath)) { console.error(`Directory ${name} already exists.`); process.exit(1); } fs_1.default.mkdirSync(projectPath); console.log(`Created project ${name}`); // Create basic files const packageJson = { name, version: '0.1.0', dependencies: { 'openraas': 'latest' } }; fs_1.default.writeFileSync(path_1.default.join(projectPath, 'package.json'), JSON.stringify(packageJson, null, 2)); const indexTs = ` import { RaaSServer } from 'openraas/server'; import { Robot } from 'openraas/core'; const robot: Robot = { id: 'my-robot', name: '${name}', ownerAddress: '0x...', capabilities: [], endpoint: 'ws://localhost:8080' }; const server = new RaaSServer(robot); server.start(); `; fs_1.default.writeFileSync(path_1.default.join(projectPath, 'index.ts'), indexTs.trim()); console.log('Project initialized. Run "npm install" to get started.'); }); program.parse(process.argv);