# GoldBrick **Repository Path**: onlyyyy/goldbrick ## Basic Information - **Project Name**: GoldBrick - **Description**: 用于提升开发效率的开发工具 - **Primary Language**: JavaScript - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 1 - **Created**: 2023-09-04 - **Last Updated**: 2025-04-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Goldbrick 摸鱼惯犯 期望通过Goldbrick减少代码量,增加上班摸鱼的时间 ## 一、环境与安装 - Node.js: v14.17.3 或者Node.js v16 - Electron: 11+ - yarn: v1.22+ - 安装: `yarn` - 运行: 因为我们选择了轻量级的ts配置,于是需要先将ts文件编译成js,再让Electron去读取 1. `npm run tsc` 2. `npm run electron:serve` - 打包: `npm run electron:build` ## 二、功能 目前主要是基于Nodejs的代码生成、自动化测试(后期从另一个开源项目集成) ![img2.png](z_readmePng/home.png) ### 1. 类生成 选择工作目录后,会自动在目录下创建/router、/service、/controller目录,以及对应的文件 ![img.png](z_readmePng/class.png) 界面目前比较简陋,后期会优化 ### 2. 接口转Apidoc和Joi 支持配置接口的入参和返回值,自动编写Apidoc接口文档,同时编写Joi接口参数校验。 ![img3.png](z_readmePng/apidoc1.png) 接口文档和Joi会自动判断参数的类型。 ![img4.png](z_readmePng/apidoc2.png) ### 3. MongoDB数据表设计 支持设置数据库的表字段名,同时生成TypeScript的mongoose Schema和Dao层代码 ![img.png](z_readmePng/mongoose.png) ```typescript import mongoose from "mongoose" export interface userProps { _id: mongoose.Schema.Types.ObjectId, name: string, phone: string, legalCode: string, emails: any[], updateAt: string, leader: mongoose.Schema.Types.ObjectId, } const userSchema = new mongoose.Schema({ name:{ type: String, index: true, unique: true }, phone:{ type: String, index: true }, legalCode:{ type: String, index: true, unique: true, sparse: true }, emails:{ type: Array, }, updateAt:{ type: String, }, leader:{ type: mongoose.Schema.Types.ObjectId, index: true }, },{ timestamps: { createdAt: MongoTimeStamp.createAt, updatedAt: MongoTimeStamp.updateAt } }) export const userModel = mongoose.model("user", userSchema) ``` ```ts import {userModel, userProps} from '@/mongo/schema/userSchema' import MongooseBase from '@/lib/MongooseBase' class UserDao extends MongooseBase { } const userDao = new UserDao(userModel) export default userDao ``` ### 4. 根据数据表生成CRUD 我们之前配置了MongoDB数据表,现在只需要选择该表就能自动生成增删改查代码。 ![imgCURD.png](z_readmePng/imgCURD.png) ![imgCURD_1.png](z_readmePng/imgCURD_1.png) 后续会逐步实现导出配置,以及解析TS代码的功能 # 未完待续 其他功能有待于后期补充,目前先开发Mongoose设计表的功能。