ExisJS

Overview

The ExisJS CLI (exis / exisjs) is a developer tool that assists in initializing, developing, building, and running ExisJS applications.

The CLI is engineered around ExisJS core conventions: file-system routing under src/http/, schema validation with tex, directory-scoped boundaries (boundary.ts), and high-performance production builds with route manifests.

Installation

The CLI can be run on-demand via npx or installed globally via npm:

# Run on-demand (recommended for scaffolding new projects)$ npx exisjs init my-api
# Or install globally$ npm install -g exisjs

Inside an initialized ExisJS project, the CLI is locally available and executed via npx exisjs or npm run <script>.

Basic Workflow

Once in your terminal, invoke CLI commands directly:

# View help for all commands$ npx exisjs --help
# View help for a specific command$ npx exisjs generate --help

To create and run a new project:

$ npx exisjs init my-app$ cd my-app$ npm run dev

Open http://localhost:4000 (or the dynamically resolved available port) to access your running API.

CLI Command Syntax

All ExisJS CLI commands follow this standard structure:

exisjs <command> [arguments] [options]

For example:

# Scaffold a new route with functional syntax$ npx exisjs generate route users
# Scaffold with class-based (OOP) decorators$ npx exisjs generate route users --oop
# Use the short alias$ npx exisjs g r users --oop

Command Overview

CommandAliasDescription
devStarts the development server with HMR and automatic port collision avoidance.
buildType-checks and compiles TypeScript to production JavaScript with route manifest generation.
startRuns the compiled production server.
routesPrints the application routing table to the terminal.
generategScaffolds framework slices (resource, route, service, schema, boundary, plugin, middleware, test).
testRuns the native Node.js test suite (node:test) with custom Jest-style reporting.
replconsoleStarts an interactive Node.js REPL loaded with the application context.
exportsDisplays all available @exisjs and exisjs/* subpath exports.
infoDisplays system, Node.js, and ExisJS runtime information.
initInitializes a new ExisJS application in the current directory.