couchbaselabs / node-ottoman

Node.js ODM for Couchbase

Home Page:https://ottomanjs.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Create an Ottoman CLI

ejscribner opened this issue · comments

A CLI for Ottoman.js to improve developer experience. The CLI could handle:

  • project scaffolding using ottoman using some templates for languages like js and ts also for frameworks like express, nest, feather, fastify, ...
  • handle migrations and/or database structure update (this point is very important because we can get rip of the start function and avoid executing it every time the ottoman app start)
  • create files like models and/or schema. (ottoman-cli create user -> generate userSchema and userModels classes files with minimal setup)

...many other features can be added to the CLI as well.

Requirements:

  • Git repository

Result:

  • A CLI application deployed on NPM (Node Package Manager Repository)
  • A git repository with source code
  • A readme file with instruction to install and usage.

Syntax:

  • ottoman-cli init
  • ottoman-cli init --output=ottoman

Commands:

  • init: Initialize a new project using ottoman. The init command will use many templates for popular node solutions
    Templates: express, nestjs, typescript, only javascript, ...
  • migrate: Similar to the logic of the ottoman.start method, the migrate command will attempt to create scopes, collections, and indices defined in the models and schemas. (This approach to managing the creation of scopes, collections and indexes is better and should be the way to go, I suggest removing the start method in the future in favor of the CLI)