diff --git a/packages/toolkits/pro/template/server/eggJs/.autod.conf.js b/packages/toolkits/pro/template/server/eggJs/.autod.conf.js new file mode 100644 index 00000000..cd4bc15b --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/.autod.conf.js @@ -0,0 +1,28 @@ +'use strict'; + +module.exports = { + write: true, + plugin: 'autod-egg', + prefix: '^', + devprefix: '^', + exclude: [ + 'test/fixtures', + 'coverage', + ], + dep: [ + 'egg', + 'egg-scripts', + ], + devdep: [ + 'autod', + 'autod-egg', + 'egg-bin', + 'tslib', + 'typescript', + ], + keep: [ + ], + semver: [ + ], + test: 'scripts', +}; diff --git a/packages/toolkits/pro/template/server/eggJs/.dockerignore b/packages/toolkits/pro/template/server/eggJs/.dockerignore new file mode 100644 index 00000000..6a51e9e2 --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/.dockerignore @@ -0,0 +1,21 @@ +logs/ +npm-debug.log +node_modules/ +coverage/ +.idea/ +run/ +logs/ +.DS_Store +.vscode +*.swp +*.lock +*.js +!.autod.conf.js + +app/**/*.js +test/ +config/**/*.js +app/**/*.map +test/**/*.map +config/**/*.map +.git diff --git a/packages/toolkits/pro/template/server/eggJs/.eslintignore b/packages/toolkits/pro/template/server/eggJs/.eslintignore new file mode 100644 index 00000000..40a8aad8 --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/.eslintignore @@ -0,0 +1,2 @@ +**/*.d.ts +node_modules/ diff --git a/packages/toolkits/pro/template/server/eggJs/.eslintrc b/packages/toolkits/pro/template/server/eggJs/.eslintrc new file mode 100644 index 00000000..be3536f1 --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/.eslintrc @@ -0,0 +1,6 @@ +{ + "extends": "eslint-config-egg/typescript", + "parserOptions": { + "project": "./tsconfig.json" + } +} \ No newline at end of file diff --git a/packages/toolkits/pro/template/server/eggJs/.gitignore b/packages/toolkits/pro/template/server/eggJs/.gitignore new file mode 100644 index 00000000..c039540f --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/.gitignore @@ -0,0 +1,20 @@ +logs/ +npm-debug.log +node_modules/ +coverage/ +.idea/ +run/ +logs/ +.DS_Store +.vscode +*.swp +*.lock +*.js +!.autod.conf.js + +app/**/*.js +test/**/*.js +config/**/*.js +app/**/*.map +test/**/*.map +config/**/*.map diff --git a/packages/toolkits/pro/template/server/eggJs/.travis.yml b/packages/toolkits/pro/template/server/eggJs/.travis.yml new file mode 100644 index 00000000..fc5fd2a5 --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/.travis.yml @@ -0,0 +1,12 @@ + +language: node_js +node_js: + - '8' +before_install: + - npm i npminstall@5 -g +install: + - npminstall +script: + - npm run ci +after_script: + - npminstall codecov && codecov diff --git a/packages/toolkits/pro/template/server/eggJs/Dockerfile b/packages/toolkits/pro/template/server/eggJs/Dockerfile new file mode 100644 index 00000000..88d35748 --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/Dockerfile @@ -0,0 +1,20 @@ +FROM node:12.6.0-alpine + +# 创建app目录 +RUN mkdir -p /usr/src/app + +# 设置容器内工作目录 +WORKDIR /usr/src/app + +COPY package.json /usr/src/app/ + +RUN yarn + +# 拷贝所有源代码到工作目录 +COPY . /usr/src/app + +# 暴露容器端口 +EXPOSE 7001 + +# 启动node应用 +ENTRYPOINT ["npm", "run"] diff --git a/packages/toolkits/pro/template/server/eggJs/README.md b/packages/toolkits/pro/template/server/eggJs/README.md new file mode 100644 index 00000000..d4f81b1b --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/README.md @@ -0,0 +1,58 @@ +# egg cli 服务 + +[建议读官方文档](https://eggjs.org/zh-cn/intro/quickstart.html) + +>推荐使用docker启动egg服务 + +## 开发测试 + +step: + +1. ```yarn``` + +2. ```npm run dev``` + +## 线上 + +```docker run --name test-egg -p 9999:7001 --net egg-mysql-net tgc-egg:v1.4 -d start``` + +接口路径:host:9999 + +## 关于连接mysql数据库注意事项 + +docker 服务启动后创建一个新的网络模式egg-mysql-net(bridger)更好的管理namsespace +``` +docker network create egg-mysql-net +``` + + +建议直接使用mysql官方的docker镜像启动服务 +``` +docker run --name test-mysql -p 3333:3306 --net egg-mysql-net -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 +``` +进入到mysql容器内: + +```docker exec -it test-mysql sh``` + +登录mysql: + +```mysql -u root -p 123456``` + + +将/app/databases 中的sql运行一遍即可 + +或者用主机连接容器内部的数据库(推荐使用Navicat fo MySQL) + +``` +->新建连接 -> 常规 + +连接名:xxxx + +主机名:localhost + +端口:3333 + +用户名:root + +密码:123456 +``` diff --git a/packages/toolkits/pro/template/server/eggJs/app/controller/employee.ts b/packages/toolkits/pro/template/server/eggJs/app/controller/employee.ts new file mode 100644 index 00000000..2a61ae9e --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/app/controller/employee.ts @@ -0,0 +1,42 @@ +import { Controller } from 'egg'; + +export default class EmployeeController extends Controller { + public async getEmployee() { + const { ctx } = this; + const { query } = ctx; + const { pageIndex = '1', pageSize = '20', searchInfo = '{}' } = query; + const [ offset, limit ] = ctx.helper.getPagination(pageIndex, pageSize); + + try { + const where = ctx.helper.getWhere(JSON.parse(searchInfo)); + let { sortField, sortType } = query; + + [sortField, sortType] = ctx.helper.getSortFieldAndType( + sortField, + sortType, + ); + const options = { + where, + limit, + offset, + order: [[sortField, sortType]], + raw: true, + }; + + this.logger.info('[ controller | employee ] getEmployee : 进入getEmployee方法'); + const result = await ctx.service.employee.getEmployee(options); + ctx.helper.commonJson( + ctx, + { + data: result.rows, + total: result.count, + }, + 200, + ); + } catch (error) { + console.log('error', error) + // ctx.helper.exceptionHandling(ctx, error); + ctx.helper.commonJson(ctx, {}, 500, 'CM087'); + } + } +} diff --git a/packages/toolkits/pro/template/server/eggJs/app/database/README.md b/packages/toolkits/pro/template/server/eggJs/app/database/README.md new file mode 100644 index 00000000..4d13d815 --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/app/database/README.md @@ -0,0 +1,5 @@ +# 关于数据库及表生成注意事项 + +**初始化数据库的时候建议直接使用sql语句** + +初始化新表时最好是将表对应的sql写到每个文件中 diff --git a/packages/toolkits/pro/template/server/eggJs/app/database/buryinfo.sql b/packages/toolkits/pro/template/server/eggJs/app/database/buryinfo.sql new file mode 100644 index 00000000..e9fdb313 --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/app/database/buryinfo.sql @@ -0,0 +1,17 @@ +CREATE TABLE buryinfo( + `_id` INT NOT NULL AUTO_INCREMENT COMMENT '自增id', + `type_id` VARCHAR(50) NOT NULL COMMENT '埋点ID', + `business_desc` VARCHAR(255) NOT NULL COMMENT '业务描述', + `parameter` VARCHAR(255) COMMENT '埋点自定义参数', + `user_email` VARCHAR(50) COMMENT '注册人邮箱', + `user_phone` VARCHAR(20) COMMENT '注册人电话', + `user_name` VARCHAR(50) NOT NULL COMMENT '注册人姓名', + `is_registered` TINYINT(3) DEFAULT 1 COMMENT '是否在鲁班上注册过', + `disable` TINYINT(3) DEFAULT 1 COMMENT '是否启用埋点', + `platform` VARCHAR(50) NOT NULL COMMENT '平台', + `category` VARCHAR(255) NOT NULL COMMENT '目录', + `created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (_id), + INDEX locktype (platform, category) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 diff --git a/packages/toolkits/pro/template/server/eggJs/app/database/initdatabase.sql b/packages/toolkits/pro/template/server/eggJs/app/database/initdatabase.sql new file mode 100644 index 00000000..e1940880 --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/app/database/initdatabase.sql @@ -0,0 +1,3 @@ +CREATE DATABASE tiny_server_test; + +USE tiny_server_test; diff --git a/packages/toolkits/pro/template/server/eggJs/app/extend/helper.ts b/packages/toolkits/pro/template/server/eggJs/app/extend/helper.ts new file mode 100644 index 00000000..1de20079 --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/app/extend/helper.ts @@ -0,0 +1,60 @@ +import { Op } from 'sequelize'; +import BaseUtils from '../utils/base-utils'; + +const DEFAULT_SORT_FIELD = 'create_time'; +const SORT_ASC = 'asc'; +const SORT_DESC = 'desc'; + +export default { + exceptionHandling(ctx, error, message = '') { + const errMsg = BaseUtils.getErrorMessage(error); + + if (message) { + ctx.logger.error(message, errMsg); + } else { + ctx.logger.error(errMsg); + } + }, + + commonJson( + ctx, + data?: Record, + httpStatus?: number, + errCode?: string, + errMsg?: string, + ) { + const responseBody = { + code: errCode ? errCode : '0', + errMsg: errMsg || (errCode ? ctx.__(errCode) : ''), + data: data ? data : {}, + }; + ctx.status = httpStatus ? httpStatus : 200; + ctx.body = responseBody; + }, + + getPagination(pageIndex: string = '1', pageSize: string = '20') { + let no = Number(pageIndex); + let size = Number(pageSize); + no = isNaN(no) || no < 1 ? 1 : no; + size = isNaN(size) || size < 0 ? 20 : size; + return [ (no - 1) * size, size ]; + }, + + getSortFieldAndType(sortField: string, sortType: string = 'desc') { + return [ (sortField || DEFAULT_SORT_FIELD), (sortType === SORT_ASC)? SORT_ASC : SORT_DESC ]; + }, + + getWhere(searchInfo: { [prop: string]: string } = {}) { + const where = {}; + + Object.keys(searchInfo).map(key => { + const value = searchInfo[key]; + + where[key] = { + [Op.like]: `%${value}%`, + } + }) + + return where; + } +}; diff --git a/packages/toolkits/pro/template/server/eggJs/app/model/employee.ts b/packages/toolkits/pro/template/server/eggJs/app/model/employee.ts new file mode 100644 index 00000000..91e7ef9f --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/app/model/employee.ts @@ -0,0 +1,76 @@ +/* indent size: 4 */ + +module.exports = (app: any) => { + const DataTypes = app.Sequelize; + + const Model = app.model.define( + 'employee', + { + id: { + type: DataTypes.INTEGER(16), + allowNull: false, + primaryKey: true, + autoIncrement: true, + }, + name: { + type: DataTypes.STRING(20), + allowNull: false, + }, + employee_no: { + type: DataTypes.STRING(50), + allowNull: false, + }, + department: { + type: DataTypes.STRING(50), + allowNull: false, + }, + department_level: { + type: DataTypes.STRING(50), + allowNull: false, + }, + status: { + type: DataTypes.STRING(10), + allowNull: false, + }, + workbench_name: { + type: DataTypes.STRING(50), + allowNull: false, + }, + project: { + type: DataTypes.STRING(50), + allowNull: false, + }, + type: { + type: DataTypes.STRING(50), + allowNull: false, + }, + address: { + type: DataTypes.STRING(50), + allowNull: false, + }, + roles: { + type: DataTypes.STRING(50), + allowNull: false, + }, + last_update_user: { + type: DataTypes.STRING(50), + allowNull: false, + }, + create_time: { + type: DataTypes.TIME, + allowNull: true, + defaultValue: DataTypes.literal('CURRENT_TIMESTAMP'), + }, + }, + { + tableName: 'employee', + underscored: false, + freezeTableName: true, + omitNull: false, + timestamps: false, + paranoid: false, + }, + ); + + return Model; +}; diff --git a/packages/toolkits/pro/template/server/eggJs/app/router.ts b/packages/toolkits/pro/template/server/eggJs/app/router.ts new file mode 100644 index 00000000..323a5947 --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/app/router.ts @@ -0,0 +1,11 @@ +import { Application } from 'egg'; + +export default (app: Application) => { + const { controller, router } = app; + + // todo: init database connect + // router.post('/v1/database/init'); + + router.get('/v1/employee/getEmployee', controller.employee.getEmployee); + +}; diff --git a/packages/toolkits/pro/template/server/eggJs/app/service/employee.ts b/packages/toolkits/pro/template/server/eggJs/app/service/employee.ts new file mode 100644 index 00000000..4fda753b --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/app/service/employee.ts @@ -0,0 +1,7 @@ +import { Service } from 'egg'; + +export default class Employee extends Service { + public async getEmployee(options): Promise { + return this.ctx.model.Employee.findAndCountAll(options); + } +} diff --git a/packages/toolkits/pro/template/server/eggJs/app/utils/base-utils.ts b/packages/toolkits/pro/template/server/eggJs/app/utils/base-utils.ts new file mode 100644 index 00000000..ce10ba4c --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/app/utils/base-utils.ts @@ -0,0 +1,27 @@ +type CommonError = { + message: string; +}; +export function isCommonError(error: unknown): error is CommonError { + return typeof error === 'object' && + error !== null && + 'message' in error && + typeof (error as Record).message === 'string'; +} + +export default class BaseUtils { + public static getErrorMessage(error: unknown): string { + console.log('err', error) + return this.convertToCommonError(error).message; + } + + private static convertToCommonError(error: unknown): CommonError { + if (isCommonError(error)) { + return error; + } + try { + return new Error(JSON.stringify(error)); + } catch (e) { + return new Error(String(error)); + } + } +} diff --git a/packages/toolkits/pro/template/server/eggJs/appveyor.yml b/packages/toolkits/pro/template/server/eggJs/appveyor.yml new file mode 100644 index 00000000..5fd5337d --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/appveyor.yml @@ -0,0 +1,14 @@ +environment: + matrix: + - nodejs_version: '8' + +install: + - ps: Install-Product node $env:nodejs_version + - npm i npminstall@5 && node_modules\.bin\npminstall + +test_script: + - node --version + - npm --version + - npm run test + +build: off diff --git a/packages/toolkits/pro/template/server/eggJs/config/config.default.ts b/packages/toolkits/pro/template/server/eggJs/config/config.default.ts new file mode 100644 index 00000000..0d15788e --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/config/config.default.ts @@ -0,0 +1,34 @@ +import { EggAppConfig, EggAppInfo, PowerPartial } from 'egg'; + +export default (appInfo: EggAppInfo) => { + const config = {} as PowerPartial; + + // override config from framework / plugin + // use for cookie sign key, should change to your own and keep security + config.keys = appInfo.name + '_1597038250886_3781'; + + // add your egg config in here + config.middleware = []; + + config.sequelize = { + dialect: 'mysql', + host: 'localhost', + port: 3306, + username: 'root', + password: '123456', + define: { + timestamps: true, + freezeTableName: true, + underscored: false, + createdAt: 'created_at', + updatedAt: 'updated_at', + }, + timezone: '+08:00', + database: 'tiny_server_test' + }; + + // the return config will combines to EggAppConfig + return { + ...config + }; +}; diff --git a/packages/toolkits/pro/template/server/eggJs/config/config.local.ts b/packages/toolkits/pro/template/server/eggJs/config/config.local.ts new file mode 100644 index 00000000..56415cec --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/config/config.local.ts @@ -0,0 +1,6 @@ +import { EggAppConfig, PowerPartial } from 'egg'; + +export default () => { + const config: PowerPartial = {}; + return config; +}; diff --git a/packages/toolkits/pro/template/server/eggJs/config/config.prod.ts b/packages/toolkits/pro/template/server/eggJs/config/config.prod.ts new file mode 100644 index 00000000..0089ca35 --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/config/config.prod.ts @@ -0,0 +1,34 @@ +import { EggAppConfig, EggAppInfo, PowerPartial } from 'egg'; + +export default (appInfo: EggAppInfo) => { + const config = {} as PowerPartial; + + // override config from framework / plugin + // use for cookie sign key, should change to your own and keep security + config.keys = appInfo.name + '_1597038250886_3781'; + + // add your egg config in here + config.middleware = ['formatData']; + + config.sequelize = { + dialect: 'mysql', + host: 'localhost', + port: 3306, + username: 'root', + password: '123456', + define: { + timestamps: true, + freezeTableName: true, + underscored: false, + createdAt: 'created_at', + updatedAt: 'updated_at', + }, + timezone: '+08:00', + database: 'tiny_server_test' + }; + + // the return config will combines to EggAppConfig + return { + ...config + }; +}; diff --git a/packages/toolkits/pro/template/server/eggJs/config/plugin.ts b/packages/toolkits/pro/template/server/eggJs/config/plugin.ts new file mode 100644 index 00000000..3231533b --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/config/plugin.ts @@ -0,0 +1,10 @@ +import { EggPlugin } from 'egg'; + +const plugin: EggPlugin = { + sequelize: { + enable: true, + package: 'egg-sequelize', + }, +}; + +export default plugin; diff --git a/packages/toolkits/pro/template/server/eggJs/package.json b/packages/toolkits/pro/template/server/eggJs/package.json new file mode 100644 index 00000000..f8b3eacf --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/package.json @@ -0,0 +1,58 @@ +{ + "name": "TinyProServer-EggJS", + "version": "1.0.0", + "private": true, + "egg": { + "typescript": true, + "declarations": true + }, + "scripts": { + "start": "npm run stop && npm run tsc && egg-scripts start --title=egg-server-tgc-trace-server --ignore-stderr", + "stop": "ets clean && egg-scripts stop --title=egg-server-tgc-trace-server", + "dev": "egg-bin dev", + "debug": "egg-bin debug", + "test-local": "egg-bin test", + "test": "npm run lint -- --fix && npm run test-local", + "cov": "egg-bin cov", + "tsc": "ets && tsc -p tsconfig.json", + "ci": "npm run lint && npm run cov && npm run tsc", + "autod": "autod", + "lint": "eslint . --ext .ts", + "clean": "ets clean" + }, + "dependencies": { + "egg": "^2.6.1", + "egg-scripts": "^2.6.0", + "egg-sequelize": "^5.2.2", + "mysql2": "^2.1.0" + }, + "devDependencies": { + "@types/mocha": "^2.2.40", + "@types/node": "^7.0.12", + "@types/supertest": "^2.0.0", + "autod": "^3.0.1", + "autod-egg": "^1.1.0", + "egg-bin": "^4.11.0", + "egg-ci": "^1.8.0", + "egg-mock": "^3.16.0", + "eslint": "^6.7.2", + "eslint-config-egg": "^8.0.0", + "tslib": "^1.9.0", + "typescript": "^3.0.0" + }, + "engines": { + "node": ">=8.9.0" + }, + "ci": { + "version": "8" + }, + "repository": { + "type": "git", + "url": "" + }, + "eslintIgnore": [ + "coverage" + ], + "author": "Sunbridger", + "license": "MIT" +} diff --git a/packages/toolkits/pro/template/server/eggJs/tsconfig.json b/packages/toolkits/pro/template/server/eggJs/tsconfig.json new file mode 100644 index 00000000..b522c82e --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/tsconfig.json @@ -0,0 +1,30 @@ +{ + "compileOnSave": true, + "compilerOptions": { + "target": "es2017", + "module": "commonjs", + "strict": true, + "noImplicitAny": false, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "charset": "utf8", + "allowJs": false, + "pretty": true, + "noEmitOnError": false, + "noUnusedLocals": true, + "noUnusedParameters": true, + "allowUnreachableCode": false, + "allowUnusedLabels": false, + "strictPropertyInitialization": false, + "noFallthroughCasesInSwitch": true, + "skipLibCheck": true, + "skipDefaultLibCheck": true, + "inlineSourceMap": true, + "importHelpers": true + }, + "exclude": [ + "app/public", + "app/views", + "node_modules*" + ] +} diff --git a/packages/toolkits/pro/template/server/eggJs/typings/app/controller/index.d.ts b/packages/toolkits/pro/template/server/eggJs/typings/app/controller/index.d.ts new file mode 100644 index 00000000..300fc60b --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/typings/app/controller/index.d.ts @@ -0,0 +1,12 @@ +// This file is created by egg-ts-helper@1.34.7 +// Do not modify this file!!!!!!!!! +/* eslint-disable */ + +import 'egg'; +import ExportEmployee from '../../../app/controller/employee'; + +declare module 'egg' { + interface IController { + employee: ExportEmployee; + } +} diff --git a/packages/toolkits/pro/template/server/eggJs/typings/app/extend/helper.d.ts b/packages/toolkits/pro/template/server/eggJs/typings/app/extend/helper.d.ts new file mode 100644 index 00000000..1e96493d --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/typings/app/extend/helper.d.ts @@ -0,0 +1,10 @@ +// This file is created by egg-ts-helper@1.34.7 +// Do not modify this file!!!!!!!!! +/* eslint-disable */ + +import 'egg'; +import ExtendIHelper from '../../../app/extend/helper'; +type ExtendIHelperType = typeof ExtendIHelper; +declare module 'egg' { + interface IHelper extends ExtendIHelperType { } +} \ No newline at end of file diff --git a/packages/toolkits/pro/template/server/eggJs/typings/app/index.d.ts b/packages/toolkits/pro/template/server/eggJs/typings/app/index.d.ts new file mode 100644 index 00000000..92fbc982 --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/typings/app/index.d.ts @@ -0,0 +1,7 @@ +// This file is created by egg-ts-helper@1.34.7 +// Do not modify this file!!!!!!!!! +/* eslint-disable */ + +import 'egg'; +export * from 'egg'; +export as namespace Egg; diff --git a/packages/toolkits/pro/template/server/eggJs/typings/app/model/index.d.ts b/packages/toolkits/pro/template/server/eggJs/typings/app/model/index.d.ts new file mode 100644 index 00000000..13833dec --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/typings/app/model/index.d.ts @@ -0,0 +1,12 @@ +// This file is created by egg-ts-helper@1.34.7 +// Do not modify this file!!!!!!!!! +/* eslint-disable */ + +import 'egg'; +import ExportEmployee from '../../../app/model/employee'; + +declare module 'egg' { + interface IModel { + Employee: ReturnType; + } +} diff --git a/packages/toolkits/pro/template/server/eggJs/typings/app/service/index.d.ts b/packages/toolkits/pro/template/server/eggJs/typings/app/service/index.d.ts new file mode 100644 index 00000000..567c6c80 --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/typings/app/service/index.d.ts @@ -0,0 +1,16 @@ +// This file is created by egg-ts-helper@1.34.7 +// Do not modify this file!!!!!!!!! +/* eslint-disable */ + +import 'egg'; +type AnyClass = new (...args: any[]) => any; +type AnyFunc = (...args: any[]) => T; +type CanExportFunc = AnyFunc> | AnyFunc>; +type AutoInstanceType : T> = U extends AnyClass ? InstanceType : U; +import ExportEmployee from '../../../app/service/employee'; + +declare module 'egg' { + interface IService { + employee: AutoInstanceType; + } +} diff --git a/packages/toolkits/pro/template/server/eggJs/typings/config/index.d.ts b/packages/toolkits/pro/template/server/eggJs/typings/config/index.d.ts new file mode 100644 index 00000000..a2d4ad76 --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/typings/config/index.d.ts @@ -0,0 +1,12 @@ +// This file is created by egg-ts-helper@1.34.7 +// Do not modify this file!!!!!!!!! +/* eslint-disable */ + +import 'egg'; +import { EggAppConfig } from 'egg'; +import ExportConfigDefault from '../../config/config.default'; +type ConfigDefault = ReturnType; +type NewEggAppConfig = ConfigDefault; +declare module 'egg' { + interface EggAppConfig extends NewEggAppConfig { } +} \ No newline at end of file diff --git a/packages/toolkits/pro/template/server/eggJs/typings/config/plugin.d.ts b/packages/toolkits/pro/template/server/eggJs/typings/config/plugin.d.ts new file mode 100644 index 00000000..c8f1c015 --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/typings/config/plugin.d.ts @@ -0,0 +1,36 @@ +// This file is created by egg-ts-helper@1.34.7 +// Do not modify this file!!!!!!!!! +/* eslint-disable */ + +import 'egg'; +import 'egg-onerror'; +import 'egg-session'; +import 'egg-i18n'; +import 'egg-watcher'; +import 'egg-multipart'; +import 'egg-security'; +import 'egg-development'; +import 'egg-logrotator'; +import 'egg-schedule'; +import 'egg-static'; +import 'egg-jsonp'; +import 'egg-view'; +import 'egg-sequelize'; +import { EggPluginItem } from 'egg'; +declare module 'egg' { + interface EggPlugin { + onerror?: EggPluginItem; + session?: EggPluginItem; + i18n?: EggPluginItem; + watcher?: EggPluginItem; + multipart?: EggPluginItem; + security?: EggPluginItem; + development?: EggPluginItem; + logrotator?: EggPluginItem; + schedule?: EggPluginItem; + static?: EggPluginItem; + jsonp?: EggPluginItem; + view?: EggPluginItem; + sequelize?: EggPluginItem; + } +} \ No newline at end of file diff --git a/packages/toolkits/pro/template/server/eggJs/typings/index.d.ts b/packages/toolkits/pro/template/server/eggJs/typings/index.d.ts new file mode 100644 index 00000000..c81035ac --- /dev/null +++ b/packages/toolkits/pro/template/server/eggJs/typings/index.d.ts @@ -0,0 +1,5 @@ +import 'egg'; + +declare module 'egg' { + +} \ No newline at end of file