Skip to content

William-Fernandes252/regen

Repository files navigation

Regen

GitHub license npm version CI status Codecov

Generate the skeleton (service, repository and factory) for an application resource.

regen scaffold -r product
// src/repository/product.repository.ts

export default class ProductRepository {
 constructor() {}

 async create(data: any) {
  return Promise.reject("Method not implemented.");
 }

 async update(id: number, data: any) {
  return Promise.reject("Method not implemented.");
 }

 async delete(id: number) {
  return Promise.reject("Method not implemented.");
 }

 async read(id: number) {
  return Promise.reject("Method not implemented.");
 }
}
// src/service/product.service.ts

export default class ProductRepository {
 constructor() {}

 async create(data: any) {
  return Promise.reject("Method not implemented.");
 }

 async update(id: number, data: any) {
  return Promise.reject("Method not implemented.");
 }

 async delete(id: number) {
  return Promise.reject("Method not implemented.");
 }

 async read(id: number) {
  return Promise.reject("Method not implemented.");
 }
}
// src/factory/product.factory.ts

import ProductRepository from "../repository/product.repository";
import ProductService from "../service/product.service";

export default class ProductFactory {
  static getInstance() {
    return new ProductService(new ProductRepository());
  }
}

Requirements

In order to use regen, you need to have Node.js (>=20) installed on your machine.

Installation

If you want to install regen as a development dependency to a project, cd into the project and run

npm install -D @williamfernandes/regen

Usage

regen scaffold

Scaffold a new resource in your project.

Options:
      --help        Show help                                          [boolean]
      --version     Show version number                                [boolean]
  -r, --resource    The name of the resource to scaffold   [array] [default: []]
  -s, --service     The name of the service to scaffold    [array] [default: []]
  -p, --repository  The name of the repository to scaffold [array] [default: []]
  -b, --base-dir    The base directory for the project    [string] [default: ""]
  -m, --main-dir    The main directory for the project [string] [default: "src"]

Examples:
  scaffold -r product          Scaffold a project with a single "product" domain
  scaffold -r product -r user  Scaffold a project with two domains: "product" an
                               d "user"
  scaffold -s product          Scaffold a project with a single "product" servic
                               e

For more information, visit the documentation.

About

Resource code generator for Typescript.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published