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
JavaScript
;
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);