@142vip/nest-starter 0.0.1-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +30 -0
- package/dist/app.config.d.ts +5 -0
- package/dist/app.config.js +25 -0
- package/dist/config/index.d.ts +6 -0
- package/dist/config/index.js +23 -0
- package/dist/config/plugin/logger.config.d.ts +16 -0
- package/dist/config/plugin/logger.config.js +48 -0
- package/dist/config/plugin/redis.config.d.ts +3 -0
- package/dist/config/plugin/redis.config.js +22 -0
- package/dist/config/plugin/sequelize.config.d.ts +2 -0
- package/dist/config/plugin/sequelize.config.js +7 -0
- package/dist/config/plugin/swagger.config.d.ts +4 -0
- package/dist/config/plugin/swagger.config.js +25 -0
- package/dist/config/plugin/typeorm.config.d.ts +5 -0
- package/dist/config/plugin/typeorm.config.js +34 -0
- package/dist/config/starter.config.d.ts +17 -0
- package/dist/config/starter.config.js +70 -0
- package/dist/config.module.d.ts +27 -0
- package/dist/config.module.js +82 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +21 -0
- package/dist/nest-process.d.ts +50 -0
- package/dist/nest-process.js +82 -0
- package/dist/nest-root.module.d.ts +4 -0
- package/dist/nest-root.module.js +24 -0
- package/dist/nest-starter.d.ts +38 -0
- package/dist/nest-starter.js +171 -0
- package/dist/nest-util.d.ts +15 -0
- package/dist/nest-util.js +49 -0
- package/dist/swagger/swagger.manager.d.ts +36 -0
- package/dist/swagger/swagger.manager.js +49 -0
- package/package.json +63 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2019-present 142vip 储凡
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# @142vip/nest-starter
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@142vip/nest-starter)
|
|
4
|
+
|
|
5
|
+
## 安装
|
|
6
|
+
|
|
7
|
+
```shell
|
|
8
|
+
# npm
|
|
9
|
+
npm install @142vip/nest-starter
|
|
10
|
+
# pnpm
|
|
11
|
+
pnpm i @142vip/nest-starter
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## 配置
|
|
15
|
+
|
|
16
|
+
## 使用
|
|
17
|
+
|
|
18
|
+
### 模块注入
|
|
19
|
+
|
|
20
|
+
### 使用服务
|
|
21
|
+
|
|
22
|
+
## 参考
|
|
23
|
+
|
|
24
|
+
## 证书
|
|
25
|
+
|
|
26
|
+
[MIT](https://opensource.org/license/MIT)
|
|
27
|
+
|
|
28
|
+
Copyright (c) 2019-present, @142vip 储凡
|
|
29
|
+
|
|
30
|
+
**仅供学习参考,商业使用请保留作者版权信息,作者不保证也不承担任何软件的使用风险。**
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.NestAppConfig = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
const config_1 = require("./config");
|
|
16
|
+
require("reflect-metadata");
|
|
17
|
+
class NestAppConfig {
|
|
18
|
+
}
|
|
19
|
+
exports.NestAppConfig = NestAppConfig;
|
|
20
|
+
__decorate([
|
|
21
|
+
(0, class_validator_1.ValidateNested)(),
|
|
22
|
+
(0, class_transformer_1.Type)(() => config_1.StarterConfig),
|
|
23
|
+
__metadata("design:type", config_1.StarterConfig)
|
|
24
|
+
], NestAppConfig.prototype, "starter", void 0);
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hcHAuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHlEQUF3QztBQUN4QyxxREFBZ0Q7QUFDaEQscUNBQXdDO0FBQ3hDLDRCQUF5QjtBQUV6QixNQUFhLGFBQWE7Q0FJekI7QUFKRCxzQ0FJQztBQURDO0lBRkMsSUFBQSxnQ0FBYyxHQUFFO0lBQ2hCLElBQUEsd0JBQUksRUFBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBYSxDQUFDOzhCQUNoQixzQkFBYTs4Q0FBQSJ9
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./plugin/logger.config"), exports);
|
|
18
|
+
__exportStar(require("./plugin/redis.config"), exports);
|
|
19
|
+
__exportStar(require("./plugin/sequelize.config"), exports);
|
|
20
|
+
__exportStar(require("./plugin/swagger.config"), exports);
|
|
21
|
+
__exportStar(require("./plugin/typeorm.config"), exports);
|
|
22
|
+
__exportStar(require("./starter.config"), exports);
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5REFBc0M7QUFDdEMsd0RBQXFDO0FBQ3JDLDREQUF5QztBQUN6QywwREFBdUM7QUFDdkMsMERBQXVDO0FBRXZDLG1EQUFnQyJ9
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { LoggerLevelEnum } from '@142vip/nest-logger';
|
|
2
|
+
/**
|
|
3
|
+
* 控制台日志配置
|
|
4
|
+
*/
|
|
5
|
+
export declare class ConsoleLoggerConfig {
|
|
6
|
+
level?: LoggerLevelEnum;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* 文件日志配置
|
|
10
|
+
*/
|
|
11
|
+
export declare class FileLoggerConfig {
|
|
12
|
+
}
|
|
13
|
+
export declare class LoggerConfig {
|
|
14
|
+
consoleLogger?: ConsoleLoggerConfig;
|
|
15
|
+
fileLogger?: FileLoggerConfig;
|
|
16
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.LoggerConfig = exports.FileLoggerConfig = exports.ConsoleLoggerConfig = void 0;
|
|
13
|
+
const nest_logger_1 = require("@142vip/nest-logger");
|
|
14
|
+
const class_transformer_1 = require("class-transformer");
|
|
15
|
+
const class_validator_1 = require("class-validator");
|
|
16
|
+
/**
|
|
17
|
+
* 控制台日志配置
|
|
18
|
+
*/
|
|
19
|
+
class ConsoleLoggerConfig {
|
|
20
|
+
}
|
|
21
|
+
exports.ConsoleLoggerConfig = ConsoleLoggerConfig;
|
|
22
|
+
__decorate([
|
|
23
|
+
(0, class_validator_1.IsOptional)(),
|
|
24
|
+
(0, class_validator_1.IsEnum)(nest_logger_1.LoggerLevelEnum),
|
|
25
|
+
__metadata("design:type", String)
|
|
26
|
+
], ConsoleLoggerConfig.prototype, "level", void 0);
|
|
27
|
+
/**
|
|
28
|
+
* 文件日志配置
|
|
29
|
+
*/
|
|
30
|
+
class FileLoggerConfig {
|
|
31
|
+
}
|
|
32
|
+
exports.FileLoggerConfig = FileLoggerConfig;
|
|
33
|
+
class LoggerConfig {
|
|
34
|
+
}
|
|
35
|
+
exports.LoggerConfig = LoggerConfig;
|
|
36
|
+
__decorate([
|
|
37
|
+
(0, class_validator_1.IsOptional)(),
|
|
38
|
+
(0, class_validator_1.ValidateNested)(),
|
|
39
|
+
(0, class_transformer_1.Type)(() => ConsoleLoggerConfig),
|
|
40
|
+
__metadata("design:type", ConsoleLoggerConfig)
|
|
41
|
+
], LoggerConfig.prototype, "consoleLogger", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
(0, class_validator_1.IsOptional)(),
|
|
44
|
+
(0, class_validator_1.ValidateNested)(),
|
|
45
|
+
(0, class_transformer_1.Type)(() => FileLoggerConfig),
|
|
46
|
+
__metadata("design:type", FileLoggerConfig)
|
|
47
|
+
], LoggerConfig.prototype, "fileLogger", void 0);
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25maWcvcGx1Z2luL2xvZ2dlci5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEscURBQXFEO0FBQ3JELHlEQUF3QztBQUN4QyxxREFBb0U7QUFFcEU7O0dBRUc7QUFDSCxNQUFhLG1CQUFtQjtDQUkvQjtBQUpELGtEQUlDO0FBREM7SUFGQyxJQUFBLDRCQUFVLEdBQUU7SUFDWixJQUFBLHdCQUFNLEVBQUMsNkJBQWUsQ0FBQzs7a0RBQ0Q7QUFHekI7O0dBRUc7QUFDSCxNQUFhLGdCQUFnQjtDQUU1QjtBQUZELDRDQUVDO0FBRUQsTUFBYSxZQUFZO0NBVXhCO0FBVkQsb0NBVUM7QUFOQztJQUhDLElBQUEsNEJBQVUsR0FBRTtJQUNaLElBQUEsZ0NBQWMsR0FBRTtJQUNoQixJQUFBLHdCQUFJLEVBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7OEJBQ2hCLG1CQUFtQjttREFBQTtBQUtuQztJQUhDLElBQUEsNEJBQVUsR0FBRTtJQUNaLElBQUEsZ0NBQWMsR0FBRTtJQUNoQixJQUFBLHdCQUFJLEVBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7OEJBQ2hCLGdCQUFnQjtnREFBQSJ9
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.RedisConfig = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
class RedisConfig {
|
|
15
|
+
}
|
|
16
|
+
exports.RedisConfig = RedisConfig;
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, class_validator_1.IsOptional)(),
|
|
19
|
+
(0, class_validator_1.IsString)(),
|
|
20
|
+
__metadata("design:type", String)
|
|
21
|
+
], RedisConfig.prototype, "url", void 0);
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9wbHVnaW4vcmVkaXMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHFEQUFzRDtBQUV0RCxNQUFhLFdBQVc7Q0FJdkI7QUFKRCxrQ0FJQztBQURDO0lBRkMsSUFBQSw0QkFBVSxHQUFFO0lBQ1osSUFBQSwwQkFBUSxHQUFFOzt3Q0FDQyJ9
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SequelizeConfig = void 0;
|
|
4
|
+
class SequelizeConfig {
|
|
5
|
+
}
|
|
6
|
+
exports.SequelizeConfig = SequelizeConfig;
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVsaXplLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25maWcvcGx1Z2luL3NlcXVlbGl6ZS5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBYSxlQUFlO0NBRTNCO0FBRkQsMENBRUMifQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.SwaggerConfig = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
class SwaggerConfig {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.docPath = '/doc';
|
|
17
|
+
this.envs = { 本地环境: 'http://127.0.0.1' };
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.SwaggerConfig = SwaggerConfig;
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, class_validator_1.IsString)(),
|
|
23
|
+
__metadata("design:type", String)
|
|
24
|
+
], SwaggerConfig.prototype, "docPath", void 0);
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dhZ2dlci5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uZmlnL3BsdWdpbi9zd2FnZ2VyLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxxREFBMEM7QUFFMUMsTUFBYSxhQUFhO0lBQTFCO1FBRUUsWUFBTyxHQUFXLE1BQU0sQ0FBQTtRQUV4QixTQUFJLEdBQTJCLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLENBQUE7SUFDN0QsQ0FBQztDQUFBO0FBTEQsc0NBS0M7QUFIQztJQURDLElBQUEsMEJBQVEsR0FBRTs7OENBQ2EifQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.TypeOrmConfig = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
class TypeOrmConfig {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.logging = false;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.TypeOrmConfig = TypeOrmConfig;
|
|
20
|
+
__decorate([
|
|
21
|
+
(0, class_validator_1.IsString)(),
|
|
22
|
+
__metadata("design:type", String)
|
|
23
|
+
], TypeOrmConfig.prototype, "url", void 0);
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, class_validator_1.IsOptional)(),
|
|
26
|
+
(0, class_validator_1.IsString)(),
|
|
27
|
+
__metadata("design:type", String)
|
|
28
|
+
], TypeOrmConfig.prototype, "schema", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, class_validator_1.IsOptional)(),
|
|
31
|
+
(0, class_validator_1.IsString)(),
|
|
32
|
+
__metadata("design:type", Boolean)
|
|
33
|
+
], TypeOrmConfig.prototype, "logging", void 0);
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZW9ybS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uZmlnL3BsdWdpbi90eXBlb3JtLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxxREFBc0Q7QUFFdEQsTUFBYSxhQUFhO0lBQTFCO1FBVUUsWUFBTyxHQUFZLEtBQUssQ0FBQTtJQUMxQixDQUFDO0NBQUE7QUFYRCxzQ0FXQztBQVRDO0lBREMsSUFBQSwwQkFBUSxHQUFFOzswQ0FDQztBQUlaO0lBRkMsSUFBQSw0QkFBVSxHQUFFO0lBQ1osSUFBQSwwQkFBUSxHQUFFOzs2Q0FDSTtBQUlmO0lBRkMsSUFBQSw0QkFBVSxHQUFFO0lBQ1osSUFBQSwwQkFBUSxHQUFFOzs4Q0FDYSJ9
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { LoggerConfig } from './plugin/logger.config';
|
|
2
|
+
import { RedisConfig } from './plugin/redis.config';
|
|
3
|
+
import { SequelizeConfig } from './plugin/sequelize.config';
|
|
4
|
+
import { SwaggerConfig } from './plugin/swagger.config';
|
|
5
|
+
import { TypeOrmConfig } from './plugin/typeorm.config';
|
|
6
|
+
import 'reflect-metadata';
|
|
7
|
+
export declare class StarterConfig {
|
|
8
|
+
port: number;
|
|
9
|
+
globalPrefix?: string;
|
|
10
|
+
redis?: RedisConfig;
|
|
11
|
+
typeorm?: TypeOrmConfig;
|
|
12
|
+
sequelize?: SequelizeConfig;
|
|
13
|
+
enableSwagger?: boolean;
|
|
14
|
+
swagger?: SwaggerConfig;
|
|
15
|
+
enableLogger?: boolean;
|
|
16
|
+
logger?: LoggerConfig;
|
|
17
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.StarterConfig = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
const logger_config_1 = require("./plugin/logger.config");
|
|
16
|
+
const redis_config_1 = require("./plugin/redis.config");
|
|
17
|
+
const sequelize_config_1 = require("./plugin/sequelize.config");
|
|
18
|
+
const swagger_config_1 = require("./plugin/swagger.config");
|
|
19
|
+
const typeorm_config_1 = require("./plugin/typeorm.config");
|
|
20
|
+
require("reflect-metadata");
|
|
21
|
+
class StarterConfig {
|
|
22
|
+
}
|
|
23
|
+
exports.StarterConfig = StarterConfig;
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, class_validator_1.IsNumber)(),
|
|
26
|
+
__metadata("design:type", Number)
|
|
27
|
+
], StarterConfig.prototype, "port", void 0);
|
|
28
|
+
__decorate([
|
|
29
|
+
(0, class_validator_1.IsOptional)(),
|
|
30
|
+
__metadata("design:type", String)
|
|
31
|
+
], StarterConfig.prototype, "globalPrefix", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, class_validator_1.IsOptional)(),
|
|
34
|
+
(0, class_validator_1.ValidateNested)(),
|
|
35
|
+
(0, class_transformer_1.Type)(() => redis_config_1.RedisConfig),
|
|
36
|
+
__metadata("design:type", redis_config_1.RedisConfig)
|
|
37
|
+
], StarterConfig.prototype, "redis", void 0);
|
|
38
|
+
__decorate([
|
|
39
|
+
(0, class_validator_1.IsOptional)(),
|
|
40
|
+
(0, class_validator_1.ValidateNested)(),
|
|
41
|
+
(0, class_transformer_1.Type)(() => typeorm_config_1.TypeOrmConfig),
|
|
42
|
+
__metadata("design:type", typeorm_config_1.TypeOrmConfig)
|
|
43
|
+
], StarterConfig.prototype, "typeorm", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
(0, class_validator_1.IsOptional)(),
|
|
46
|
+
(0, class_validator_1.ValidateNested)(),
|
|
47
|
+
(0, class_transformer_1.Type)(() => sequelize_config_1.SequelizeConfig),
|
|
48
|
+
__metadata("design:type", sequelize_config_1.SequelizeConfig)
|
|
49
|
+
], StarterConfig.prototype, "sequelize", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, class_validator_1.IsOptional)(),
|
|
52
|
+
__metadata("design:type", Boolean)
|
|
53
|
+
], StarterConfig.prototype, "enableSwagger", void 0);
|
|
54
|
+
__decorate([
|
|
55
|
+
(0, class_validator_1.IsOptional)(),
|
|
56
|
+
(0, class_validator_1.ValidateNested)(),
|
|
57
|
+
(0, class_transformer_1.Type)(() => swagger_config_1.SwaggerConfig),
|
|
58
|
+
__metadata("design:type", swagger_config_1.SwaggerConfig)
|
|
59
|
+
], StarterConfig.prototype, "swagger", void 0);
|
|
60
|
+
__decorate([
|
|
61
|
+
(0, class_validator_1.IsOptional)(),
|
|
62
|
+
__metadata("design:type", Boolean)
|
|
63
|
+
], StarterConfig.prototype, "enableLogger", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
(0, class_validator_1.IsOptional)(),
|
|
66
|
+
(0, class_validator_1.ValidateNested)(),
|
|
67
|
+
(0, class_transformer_1.Type)(() => logger_config_1.LoggerConfig),
|
|
68
|
+
__metadata("design:type", logger_config_1.LoggerConfig)
|
|
69
|
+
], StarterConfig.prototype, "logger", void 0);
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRlci5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL3N0YXJ0ZXIuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHlEQUF3QztBQUN4QyxxREFBc0U7QUFDdEUsMERBQXFEO0FBQ3JELHdEQUFtRDtBQUNuRCxnRUFBMkQ7QUFDM0QsNERBQXVEO0FBQ3ZELDREQUF1RDtBQUV2RCw0QkFBeUI7QUFFekIsTUFBYSxhQUFhO0NBcUN6QjtBQXJDRCxzQ0FxQ0M7QUFuQ0M7SUFEQyxJQUFBLDBCQUFRLEdBQUU7OzJDQUNFO0FBR2I7SUFEQyxJQUFBLDRCQUFVLEdBQUU7O21EQUNRO0FBS3JCO0lBSEMsSUFBQSw0QkFBVSxHQUFFO0lBQ1osSUFBQSxnQ0FBYyxHQUFFO0lBQ2hCLElBQUEsd0JBQUksRUFBQyxHQUFHLEVBQUUsQ0FBQywwQkFBVyxDQUFDOzhCQUNoQiwwQkFBVzs0Q0FBQTtBQUtuQjtJQUhDLElBQUEsNEJBQVUsR0FBRTtJQUNaLElBQUEsZ0NBQWMsR0FBRTtJQUNoQixJQUFBLHdCQUFJLEVBQUMsR0FBRyxFQUFFLENBQUMsOEJBQWEsQ0FBQzs4QkFDaEIsOEJBQWE7OENBQUE7QUFLdkI7SUFIQyxJQUFBLDRCQUFVLEdBQUU7SUFDWixJQUFBLGdDQUFjLEdBQUU7SUFDaEIsSUFBQSx3QkFBSSxFQUFDLEdBQUcsRUFBRSxDQUFDLGtDQUFlLENBQUM7OEJBQ2hCLGtDQUFlO2dEQUFBO0FBRzNCO0lBREMsSUFBQSw0QkFBVSxHQUFFOztvREFDVTtBQUt2QjtJQUhDLElBQUEsNEJBQVUsR0FBRTtJQUNaLElBQUEsZ0NBQWMsR0FBRTtJQUNoQixJQUFBLHdCQUFJLEVBQUMsR0FBRyxFQUFFLENBQUMsOEJBQWEsQ0FBQzs4QkFDaEIsOEJBQWE7OENBQUE7QUFHdkI7SUFEQyxJQUFBLDRCQUFVLEdBQUU7O21EQUNTO0FBS3RCO0lBSEMsSUFBQSw0QkFBVSxHQUFFO0lBQ1osSUFBQSxnQ0FBYyxHQUFFO0lBQ2hCLElBQUEsd0JBQUksRUFBQyxHQUFHLEVBQUUsQ0FBQyw0QkFBWSxDQUFDOzhCQUNoQiw0QkFBWTs2Q0FBQSJ9
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ClassConstructor } from 'class-transformer';
|
|
2
|
+
import { NestAppConfig } from './app.config';
|
|
3
|
+
import { StarterConfig } from './config';
|
|
4
|
+
/**
|
|
5
|
+
* Nest应用模块
|
|
6
|
+
* - 默认全局模块
|
|
7
|
+
*/
|
|
8
|
+
export declare const NestConfigModule: import("@nestjs/common").DynamicModule;
|
|
9
|
+
/**
|
|
10
|
+
* 基于Schema获取配置
|
|
11
|
+
* - 不存在时,报错
|
|
12
|
+
* @param configSchema
|
|
13
|
+
*/
|
|
14
|
+
export declare function getConfig<T>(configSchema: ClassConstructor<T>): T;
|
|
15
|
+
/**
|
|
16
|
+
* 基于Schema获取配置,可能为空
|
|
17
|
+
* @param configSchema
|
|
18
|
+
*/
|
|
19
|
+
export declare function getOptionalConfig<T>(configSchema: ClassConstructor<T>): T | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* 启动配置
|
|
22
|
+
*/
|
|
23
|
+
export declare const nestStaterConfig: StarterConfig;
|
|
24
|
+
/**
|
|
25
|
+
* 整个应用配置
|
|
26
|
+
*/
|
|
27
|
+
export declare const nestAppConfig: NestAppConfig;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.nestAppConfig = exports.nestStaterConfig = exports.NestConfigModule = void 0;
|
|
37
|
+
exports.getConfig = getConfig;
|
|
38
|
+
exports.getOptionalConfig = getOptionalConfig;
|
|
39
|
+
const path = __importStar(require("node:path"));
|
|
40
|
+
const utils_1 = require("@142vip/utils");
|
|
41
|
+
const nest_typed_config_1 = require("nest-typed-config");
|
|
42
|
+
const app_config_1 = require("./app.config");
|
|
43
|
+
const config_1 = require("./config");
|
|
44
|
+
/**
|
|
45
|
+
* Nest应用模块
|
|
46
|
+
* - 默认全局模块
|
|
47
|
+
*/
|
|
48
|
+
exports.NestConfigModule = nest_typed_config_1.TypedConfigModule.forRoot({
|
|
49
|
+
schema: app_config_1.NestAppConfig,
|
|
50
|
+
load: (0, nest_typed_config_1.fileLoader)({
|
|
51
|
+
// TODO 指定配置文件
|
|
52
|
+
absolutePath: path.resolve(utils_1.VipNodeJS.getProcessCwd(), 'config/test.config.js'),
|
|
53
|
+
}),
|
|
54
|
+
});
|
|
55
|
+
/**
|
|
56
|
+
* 基于Schema获取配置
|
|
57
|
+
* - 不存在时,报错
|
|
58
|
+
* @param configSchema
|
|
59
|
+
*/
|
|
60
|
+
function getConfig(configSchema) {
|
|
61
|
+
const config = getOptionalConfig(configSchema);
|
|
62
|
+
if (!config) {
|
|
63
|
+
throw new Error(`Config ${configSchema.name} not found`);
|
|
64
|
+
}
|
|
65
|
+
return config;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* 基于Schema获取配置,可能为空
|
|
69
|
+
* @param configSchema
|
|
70
|
+
*/
|
|
71
|
+
function getOptionalConfig(configSchema) {
|
|
72
|
+
return (0, nest_typed_config_1.selectConfig)(exports.NestConfigModule, configSchema, { allowOptional: true });
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* 启动配置
|
|
76
|
+
*/
|
|
77
|
+
exports.nestStaterConfig = getConfig(config_1.StarterConfig);
|
|
78
|
+
/**
|
|
79
|
+
* 整个应用配置
|
|
80
|
+
*/
|
|
81
|
+
exports.nestAppConfig = getConfig(app_config_1.NestAppConfig);
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCQSw4QkFNQztBQU1ELDhDQUVDO0FBdENELGdEQUFpQztBQUNqQyx5Q0FBeUM7QUFFekMseURBQStFO0FBQy9FLDZDQUE0QztBQUM1QyxxQ0FBd0M7QUFFeEM7OztHQUdHO0FBQ1UsUUFBQSxnQkFBZ0IsR0FBRyxxQ0FBaUIsQ0FBQyxPQUFPLENBQUM7SUFDeEQsTUFBTSxFQUFFLDBCQUFhO0lBQ3JCLElBQUksRUFBRSxJQUFBLDhCQUFVLEVBQUM7UUFDZixjQUFjO1FBQ2QsWUFBWSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQVMsQ0FBQyxhQUFhLEVBQUUsRUFBRSx1QkFBdUIsQ0FBQztLQUMvRSxDQUFDO0NBQ0gsQ0FBQyxDQUFBO0FBRUY7Ozs7R0FJRztBQUNILFNBQWdCLFNBQVMsQ0FBSSxZQUFpQztJQUM1RCxNQUFNLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUM5QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixNQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsWUFBWSxDQUFDLElBQUksWUFBWSxDQUFDLENBQUE7SUFDMUQsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGlCQUFpQixDQUFJLFlBQWlDO0lBQ3BFLE9BQU8sSUFBQSxnQ0FBWSxFQUFDLHdCQUFnQixFQUFFLFlBQVksRUFBRSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBa0IsQ0FBQTtBQUMvRixDQUFDO0FBRUQ7O0dBRUc7QUFDVSxRQUFBLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxzQkFBYSxDQUFDLENBQUE7QUFFeEQ7O0dBRUc7QUFDVSxRQUFBLGFBQWEsR0FBRyxTQUFTLENBQUMsMEJBQWEsQ0FBQyxDQUFBIn0=
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./app.config"), exports);
|
|
18
|
+
__exportStar(require("./config"), exports);
|
|
19
|
+
__exportStar(require("./config.module"), exports);
|
|
20
|
+
__exportStar(require("./nest-starter"), exports);
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUE0QjtBQUM1QiwyQ0FBd0I7QUFDeEIsa0RBQStCO0FBQy9CLGlEQUE4QiJ9
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
declare class NestProcess {
|
|
2
|
+
private static instance;
|
|
3
|
+
static getInstance(): NestProcess;
|
|
4
|
+
/**
|
|
5
|
+
* 获取当前进程的运行环境
|
|
6
|
+
*/
|
|
7
|
+
getNodeEnv(): string | undefined;
|
|
8
|
+
/**
|
|
9
|
+
* 获取加载配置的运行环境
|
|
10
|
+
* - 使用RUN_ENV环境变量
|
|
11
|
+
*/
|
|
12
|
+
getRunEnv(): string | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* 获取启动的应用
|
|
15
|
+
* - 使用APP环境变量
|
|
16
|
+
*/
|
|
17
|
+
getAppEnv(): string | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* 是否本地环境启动Nestjs应用
|
|
20
|
+
* - local.config 配置
|
|
21
|
+
*/
|
|
22
|
+
isLocalStartNest(): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* 是否测试环境启动Nestjs应用
|
|
25
|
+
* - test.config 配置
|
|
26
|
+
*/
|
|
27
|
+
isTestStartNest(): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* 是否开发环境启动Nestjs应用
|
|
30
|
+
* - dev.config 配置
|
|
31
|
+
*/
|
|
32
|
+
isDevelopStartNest(): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* 是否为开发模式
|
|
35
|
+
* - 本地环境
|
|
36
|
+
* - 开发环境
|
|
37
|
+
* - 测试环境
|
|
38
|
+
*/
|
|
39
|
+
isDevelopMode(): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* 根据key获取环境变量
|
|
42
|
+
*/
|
|
43
|
+
getEnv(envKey: string): string | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* 获取进程当前路径
|
|
46
|
+
*/
|
|
47
|
+
getCwd(): string;
|
|
48
|
+
}
|
|
49
|
+
export declare const nestProcess: NestProcess;
|
|
50
|
+
export {};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.nestProcess = void 0;
|
|
4
|
+
const utils_1 = require("@142vip/utils");
|
|
5
|
+
var NestProcessNodeEnv;
|
|
6
|
+
(function (NestProcessNodeEnv) {
|
|
7
|
+
NestProcessNodeEnv["LOCAL"] = "local";
|
|
8
|
+
NestProcessNodeEnv["TEST"] = "test";
|
|
9
|
+
NestProcessNodeEnv["DEVELOP"] = "dev";
|
|
10
|
+
})(NestProcessNodeEnv || (NestProcessNodeEnv = {}));
|
|
11
|
+
class NestProcess {
|
|
12
|
+
static getInstance() {
|
|
13
|
+
if (this.instance == null)
|
|
14
|
+
this.instance = new NestProcess();
|
|
15
|
+
return this.instance;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* 获取当前进程的运行环境
|
|
19
|
+
*/
|
|
20
|
+
getNodeEnv() {
|
|
21
|
+
return this.getEnv('NODE_ENV');
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 获取加载配置的运行环境
|
|
25
|
+
* - 使用RUN_ENV环境变量
|
|
26
|
+
*/
|
|
27
|
+
getRunEnv() {
|
|
28
|
+
return this.getEnv('RUN_ENV');
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 获取启动的应用
|
|
32
|
+
* - 使用APP环境变量
|
|
33
|
+
*/
|
|
34
|
+
getAppEnv() {
|
|
35
|
+
return this.getEnv('APP');
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* 是否本地环境启动Nestjs应用
|
|
39
|
+
* - local.config 配置
|
|
40
|
+
*/
|
|
41
|
+
isLocalStartNest() {
|
|
42
|
+
return this.getNodeEnv() === NestProcessNodeEnv.LOCAL;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* 是否测试环境启动Nestjs应用
|
|
46
|
+
* - test.config 配置
|
|
47
|
+
*/
|
|
48
|
+
isTestStartNest() {
|
|
49
|
+
return this.getNodeEnv() === NestProcessNodeEnv.TEST;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* 是否开发环境启动Nestjs应用
|
|
53
|
+
* - dev.config 配置
|
|
54
|
+
*/
|
|
55
|
+
isDevelopStartNest() {
|
|
56
|
+
return this.getNodeEnv() === NestProcessNodeEnv.DEVELOP;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* 是否为开发模式
|
|
60
|
+
* - 本地环境
|
|
61
|
+
* - 开发环境
|
|
62
|
+
* - 测试环境
|
|
63
|
+
*/
|
|
64
|
+
isDevelopMode() {
|
|
65
|
+
const nodeEnv = this.getNodeEnv();
|
|
66
|
+
return nodeEnv != null && Object.values(NestProcessNodeEnv).includes(nodeEnv);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* 根据key获取环境变量
|
|
70
|
+
*/
|
|
71
|
+
getEnv(envKey) {
|
|
72
|
+
return utils_1.VipNodeJS.getProcessEnv(envKey);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* 获取进程当前路径
|
|
76
|
+
*/
|
|
77
|
+
getCwd() {
|
|
78
|
+
return utils_1.VipNodeJS.getProcessCwd();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.nestProcess = NestProcess.getInstance();
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdC1wcm9jZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25lc3QtcHJvY2Vzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBeUM7QUFFekMsSUFBSyxrQkFJSjtBQUpELFdBQUssa0JBQWtCO0lBQ3JCLHFDQUFlLENBQUE7SUFDZixtQ0FBYSxDQUFBO0lBQ2IscUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSkksa0JBQWtCLEtBQWxCLGtCQUFrQixRQUl0QjtBQUVELE1BQU0sV0FBVztJQUdSLE1BQU0sQ0FBQyxXQUFXO1FBQ3ZCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJO1lBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQTtRQUVuQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUE7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUNoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUMvQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZ0JBQWdCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLGtCQUFrQixDQUFDLEtBQUssQ0FBQTtJQUN2RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxrQkFBa0IsQ0FBQyxJQUFJLENBQUE7SUFDdEQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGtCQUFrQjtRQUN2QixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxrQkFBa0IsQ0FBQyxPQUFPLENBQUE7SUFDekQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksYUFBYTtRQUNsQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDakMsT0FBTyxPQUFPLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBNkIsQ0FBQyxDQUFBO0lBQ3JHLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFjO1FBQzFCLE9BQU8saUJBQVMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTTtRQUNYLE9BQU8saUJBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUNsQyxDQUFDO0NBQ0Y7QUFFWSxRQUFBLFdBQVcsR0FBRyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUEifQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var NestRootModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.NestRootModule = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
let NestRootModule = NestRootModule_1 = class NestRootModule {
|
|
13
|
+
static register(rootModuleOptions) {
|
|
14
|
+
return {
|
|
15
|
+
module: NestRootModule_1,
|
|
16
|
+
...rootModuleOptions,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
exports.NestRootModule = NestRootModule;
|
|
21
|
+
exports.NestRootModule = NestRootModule = NestRootModule_1 = __decorate([
|
|
22
|
+
(0, common_1.Module)({})
|
|
23
|
+
], NestRootModule);
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdC1yb290Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9uZXN0LXJvb3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSwyQ0FBc0Q7QUFHL0MsSUFBTSxjQUFjLHNCQUFwQixNQUFNLGNBQWM7SUFDbEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxpQkFBZ0Q7UUFDckUsT0FBTztZQUNMLE1BQU0sRUFBRSxnQkFBYztZQUN0QixHQUFHLGlCQUFpQjtTQUNyQixDQUFBO0lBQ0gsQ0FBQztDQUNGLENBQUE7QUFQWSx3Q0FBYzt5QkFBZCxjQUFjO0lBRDFCLElBQUEsZUFBTSxFQUFDLEVBQUUsQ0FBQztHQUNFLGNBQWMsQ0FPMUIifQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { NestModule } from '@142vip/nest';
|
|
2
|
+
import { NestApplicationOptions } from '@nestjs/common';
|
|
3
|
+
/**
|
|
4
|
+
* Nest框架启动器
|
|
5
|
+
*/
|
|
6
|
+
export declare class NestStarter {
|
|
7
|
+
protected readonly nestApplicationOptions?: NestApplicationOptions | undefined;
|
|
8
|
+
private static instance;
|
|
9
|
+
/**
|
|
10
|
+
* 启动配置
|
|
11
|
+
* @private
|
|
12
|
+
*/
|
|
13
|
+
private readonly starterConfig;
|
|
14
|
+
/**
|
|
15
|
+
* @param nestApplicationOptions
|
|
16
|
+
*/
|
|
17
|
+
protected constructor(nestApplicationOptions?: NestApplicationOptions | undefined);
|
|
18
|
+
/**
|
|
19
|
+
* 单例
|
|
20
|
+
* @param nestApplicationOptions 应用启动选项
|
|
21
|
+
*/
|
|
22
|
+
static getInstance(nestApplicationOptions?: NestApplicationOptions): NestStarter;
|
|
23
|
+
/**
|
|
24
|
+
* 入口
|
|
25
|
+
*/
|
|
26
|
+
start(appRootModule: NestModule): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* 设置全局配置
|
|
29
|
+
* @private
|
|
30
|
+
*/
|
|
31
|
+
private setGlobalConfig;
|
|
32
|
+
/**
|
|
33
|
+
* 注册全局模块
|
|
34
|
+
* @private
|
|
35
|
+
*/
|
|
36
|
+
private registerGlobalModules;
|
|
37
|
+
private getProviders;
|
|
38
|
+
}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NestStarter = void 0;
|
|
4
|
+
const nest_logger_1 = require("@142vip/nest-logger");
|
|
5
|
+
const nest_redis_1 = require("@142vip/nest-redis");
|
|
6
|
+
const nest_typeorm_1 = require("@142vip/nest-typeorm");
|
|
7
|
+
const utils_1 = require("@142vip/utils");
|
|
8
|
+
const common_1 = require("@nestjs/common");
|
|
9
|
+
const core_1 = require("@nestjs/core");
|
|
10
|
+
const config_module_1 = require("./config.module");
|
|
11
|
+
const nest_root_module_1 = require("./nest-root.module");
|
|
12
|
+
const nest_util_1 = require("./nest-util");
|
|
13
|
+
const swagger_manager_1 = require("./swagger/swagger.manager");
|
|
14
|
+
/**
|
|
15
|
+
* Nest框架启动器
|
|
16
|
+
*/
|
|
17
|
+
class NestStarter {
|
|
18
|
+
/**
|
|
19
|
+
* @param nestApplicationOptions
|
|
20
|
+
*/
|
|
21
|
+
constructor(nestApplicationOptions) {
|
|
22
|
+
this.nestApplicationOptions = nestApplicationOptions;
|
|
23
|
+
/**
|
|
24
|
+
* 启动配置
|
|
25
|
+
* @private
|
|
26
|
+
*/
|
|
27
|
+
this.starterConfig = config_module_1.nestStaterConfig;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* 单例
|
|
31
|
+
* @param nestApplicationOptions 应用启动选项
|
|
32
|
+
*/
|
|
33
|
+
static getInstance(nestApplicationOptions) {
|
|
34
|
+
// 开启日志
|
|
35
|
+
if (config_module_1.nestStaterConfig?.enableLogger)
|
|
36
|
+
utils_1.vipLogger.logByBlank(JSON.stringify(config_module_1.nestStaterConfig, null, 2));
|
|
37
|
+
if (this.instance == null)
|
|
38
|
+
this.instance = new this(nestApplicationOptions);
|
|
39
|
+
return this.instance;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* 入口
|
|
43
|
+
*/
|
|
44
|
+
async start(appRootModule) {
|
|
45
|
+
const nestRootModule = nest_root_module_1.NestRootModule.register({
|
|
46
|
+
imports: this.registerGlobalModules().concat(appRootModule),
|
|
47
|
+
providers: this.getProviders(),
|
|
48
|
+
});
|
|
49
|
+
/**
|
|
50
|
+
* 创建应用
|
|
51
|
+
*/
|
|
52
|
+
const app = await core_1.NestFactory.create(nestRootModule, {
|
|
53
|
+
bufferLogs: true,
|
|
54
|
+
...this.nestApplicationOptions,
|
|
55
|
+
});
|
|
56
|
+
this.setGlobalConfig(app);
|
|
57
|
+
// 应用启动
|
|
58
|
+
await app.listen(this.starterConfig.port);
|
|
59
|
+
// 优化日志
|
|
60
|
+
void new nest_util_1.NestUtil(app, this.starterConfig).printAppModuleStarterLogger();
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* 设置全局配置
|
|
64
|
+
* @private
|
|
65
|
+
*/
|
|
66
|
+
setGlobalConfig(app) {
|
|
67
|
+
// 应用日志
|
|
68
|
+
if (this.starterConfig.enableLogger)
|
|
69
|
+
nest_logger_1.NestLoggerModule.useLogger(app);
|
|
70
|
+
// 路由版本功能
|
|
71
|
+
// apiVersioning必须在swagger之前加载
|
|
72
|
+
app.enableVersioning({ type: common_1.VersioningType.URI });
|
|
73
|
+
if (this.starterConfig.enableSwagger && this.starterConfig.swagger != null) {
|
|
74
|
+
new swagger_manager_1.SwaggerManager(this.starterConfig.swagger).register(app);
|
|
75
|
+
// TODO 打印swagger相关信息
|
|
76
|
+
}
|
|
77
|
+
// 启用关闭钩子(for优雅下线)
|
|
78
|
+
app.enableShutdownHooks();
|
|
79
|
+
// 添加健康检查路由
|
|
80
|
+
app.getHttpAdapter()
|
|
81
|
+
.get('/health', (_req, res) => res.status(common_1.HttpStatus.OK).send('SERVER OK'));
|
|
82
|
+
return app;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* 注册全局模块
|
|
86
|
+
* @private
|
|
87
|
+
*/
|
|
88
|
+
registerGlobalModules() {
|
|
89
|
+
const imports = [];
|
|
90
|
+
// 默认为用户注册配置
|
|
91
|
+
imports.push(config_module_1.NestConfigModule);
|
|
92
|
+
if (this.starterConfig.enableLogger) {
|
|
93
|
+
imports.push(nest_logger_1.NestLoggerModule.register({ consoleLogger: { level: nest_logger_1.LoggerLevelEnum.trace } }));
|
|
94
|
+
}
|
|
95
|
+
// 注册Redis模块
|
|
96
|
+
if (this.starterConfig.redis != null) {
|
|
97
|
+
imports.push(nest_redis_1.NestRedisModule.register(this.starterConfig.redis));
|
|
98
|
+
}
|
|
99
|
+
// 注册TypeOrm模块
|
|
100
|
+
if (this.starterConfig.typeorm != null) {
|
|
101
|
+
imports.push(nest_typeorm_1.NestTypeOrmModule.register(this.starterConfig.typeorm));
|
|
102
|
+
}
|
|
103
|
+
return imports;
|
|
104
|
+
}
|
|
105
|
+
getProviders() {
|
|
106
|
+
return [
|
|
107
|
+
/**
|
|
108
|
+
* 传播上下文
|
|
109
|
+
*/
|
|
110
|
+
// {
|
|
111
|
+
// provide: APP_INTERCEPTOR,
|
|
112
|
+
// useClass: PropagationInterceptor,
|
|
113
|
+
// },
|
|
114
|
+
/**
|
|
115
|
+
* 统一响应体
|
|
116
|
+
*/
|
|
117
|
+
// {
|
|
118
|
+
// provide: APP_INTERCEPTOR,
|
|
119
|
+
// useClass: ResponseInterceptor,
|
|
120
|
+
// },
|
|
121
|
+
/**
|
|
122
|
+
* 序列化类(过滤不正常字段)
|
|
123
|
+
*/
|
|
124
|
+
{
|
|
125
|
+
provide: core_1.APP_INTERCEPTOR,
|
|
126
|
+
useClass: common_1.ClassSerializerInterceptor,
|
|
127
|
+
},
|
|
128
|
+
/**
|
|
129
|
+
* 校验入参
|
|
130
|
+
*/
|
|
131
|
+
// {
|
|
132
|
+
// provide: APP_PIPE,
|
|
133
|
+
// useValue: new CustomValidationPipe({
|
|
134
|
+
// // 下面两个class-transformer参数用于尝试将传进来的参数转成dto定义的类型
|
|
135
|
+
// transform: true,
|
|
136
|
+
// transformOptions: { enableImplicitConversion: true }, // TODO to delete it
|
|
137
|
+
// // 是否禁用DTO参数校验错误详情
|
|
138
|
+
// disableErrorMessages: this.starterConfig.disableErrorMessages,
|
|
139
|
+
// // 下面两个class-validator参数用于禁止未知的参数
|
|
140
|
+
// // whitelist: true,
|
|
141
|
+
// // forbidNonWhitelisted: true,
|
|
142
|
+
// ...(this.starterConfig.disableErrorMessages
|
|
143
|
+
// ? {
|
|
144
|
+
// exceptionFactory: (_errors): PlatformException => {
|
|
145
|
+
// return new PlatformException(ErrorCodes.BAD_REQUEST, HttpStatus.BAD_REQUEST)
|
|
146
|
+
// },
|
|
147
|
+
// }
|
|
148
|
+
// : {}),
|
|
149
|
+
// }),
|
|
150
|
+
// },
|
|
151
|
+
/**
|
|
152
|
+
* 拦截框架内部异常
|
|
153
|
+
*/
|
|
154
|
+
// {
|
|
155
|
+
// provide: APP_FILTER,
|
|
156
|
+
// useClass: GlobalFilter,
|
|
157
|
+
// },
|
|
158
|
+
// /**
|
|
159
|
+
// * 限制请求来源页
|
|
160
|
+
// */
|
|
161
|
+
// ...(this.starterConfig.allowedReferers != null
|
|
162
|
+
// ? [{
|
|
163
|
+
// provide: APP_GUARD,
|
|
164
|
+
// useClass: RefererGuard,
|
|
165
|
+
// }]
|
|
166
|
+
// : []),
|
|
167
|
+
];
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
exports.NestStarter = NestStarter;
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdC1zdGFydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25lc3Qtc3RhcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBdUU7QUFDdkUsbURBQW9EO0FBQ3BELHVEQUF3RDtBQUN4RCx5Q0FBeUM7QUFDekMsMkNBTXVCO0FBQ3ZCLHVDQUEyRDtBQUUzRCxtREFBb0U7QUFDcEUseURBQW1EO0FBQ25ELDJDQUFzQztBQUN0QywrREFBMEQ7QUFFMUQ7O0dBRUc7QUFDSCxNQUFhLFdBQVc7SUFPdEI7O09BRUc7SUFDSCxZQUNxQixzQkFBK0M7UUFBL0MsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF5QjtRQVRwRTs7O1dBR0c7UUFDYyxrQkFBYSxHQUFrQixnQ0FBZ0IsQ0FBQTtJQU01RCxDQUFDO0lBRUw7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FDdkIsc0JBQStDO1FBRS9DLE9BQU87UUFDUCxJQUFJLGdDQUFnQixFQUFFLFlBQVk7WUFDaEMsaUJBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQ0FBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUVqRSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSTtZQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUE7UUFFbEQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBeUI7UUFDMUMsTUFBTSxjQUFjLEdBQUcsaUNBQWMsQ0FBQyxRQUFRLENBQUM7WUFDN0MsT0FBTyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7WUFDM0QsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUU7U0FDL0IsQ0FBQyxDQUFBO1FBRUY7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
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { INestApplication } from '@nestjs/common';
|
|
2
|
+
import { StarterConfig } from './config';
|
|
3
|
+
export declare class NestUtil {
|
|
4
|
+
readonly app: INestApplication;
|
|
5
|
+
readonly starterConfig: StarterConfig;
|
|
6
|
+
constructor(app: INestApplication, starterConfig: StarterConfig);
|
|
7
|
+
/**
|
|
8
|
+
* 是否为开发模式
|
|
9
|
+
* - 本地环境
|
|
10
|
+
* - 开发环境
|
|
11
|
+
* - 测试环境
|
|
12
|
+
*/
|
|
13
|
+
isDevelopMode(): boolean;
|
|
14
|
+
printAppModuleStarterLogger(): Promise<void>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NestUtil = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const nest_process_1 = require("./nest-process");
|
|
6
|
+
class NestUtil {
|
|
7
|
+
constructor(app, starterConfig) {
|
|
8
|
+
this.app = app;
|
|
9
|
+
this.starterConfig = starterConfig;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* 是否为开发模式
|
|
13
|
+
* - 本地环境
|
|
14
|
+
* - 开发环境
|
|
15
|
+
* - 测试环境
|
|
16
|
+
*/
|
|
17
|
+
isDevelopMode() {
|
|
18
|
+
return nest_process_1.nestProcess.isDevelopMode();
|
|
19
|
+
}
|
|
20
|
+
async printAppModuleStarterLogger() {
|
|
21
|
+
// 未开启日志
|
|
22
|
+
if (!this.starterConfig.enableLogger)
|
|
23
|
+
return;
|
|
24
|
+
const logger = new common_1.Logger(NestUtil.name);
|
|
25
|
+
const apiUrl = await this.app.getUrl();
|
|
26
|
+
logger.log(`🚀 应用启动成功`);
|
|
27
|
+
logger.log(`⚒️ 启动环境:${nest_process_1.nestProcess.getNodeEnv()},运行配置:${nest_process_1.nestProcess.getRunEnv()}.config.js`);
|
|
28
|
+
// 应用名存在,则打印
|
|
29
|
+
const appName = nest_process_1.nestProcess.getAppEnv();
|
|
30
|
+
if (appName != null) {
|
|
31
|
+
logger.log(`╰┈┈┈┈┈┈┈┈┈┈┈➤ ${appName} 🔥🔥🔥`);
|
|
32
|
+
}
|
|
33
|
+
logger.log(`🌐 HTTP服务: ${apiUrl}`);
|
|
34
|
+
// 如果有全局前缀
|
|
35
|
+
if (this.starterConfig.globalPrefix)
|
|
36
|
+
logger.log(`🔗 全局路由前缀: ${this.starterConfig.globalPrefix}`);
|
|
37
|
+
// 如果有GRPC服务
|
|
38
|
+
// if (this.starterConfig.grpcServer?.url)
|
|
39
|
+
// logger.log(`🔌 GRPC服务: ${this.starterConfig.grpcServer.url}`)
|
|
40
|
+
// 给swagger配置环境
|
|
41
|
+
if (this.starterConfig.enableSwagger && this.starterConfig.swagger?.envs != null) {
|
|
42
|
+
for (const [envName, apiUrl] of Object.entries(this.starterConfig.swagger.envs)) {
|
|
43
|
+
logger.log(`📚 API Swagger文档,${envName}:${apiUrl}:${this.starterConfig.port}/${this.starterConfig.swagger?.docPath}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.NestUtil = NestUtil;
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdC11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25lc3QtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBeUQ7QUFFekQsaURBQTRDO0FBRTVDLE1BQWEsUUFBUTtJQUluQixZQUFZLEdBQXFCLEVBQUUsYUFBNEI7UUFDN0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUE7UUFDZCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQTtJQUNwQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxhQUFhO1FBQ2xCLE9BQU8sMEJBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUNwQyxDQUFDO0lBRU0sS0FBSyxDQUFDLDJCQUEyQjtRQUN0QyxRQUFRO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWTtZQUNsQyxPQUFNO1FBRVIsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRXhDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUN0QyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBRXZCLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVywwQkFBVyxDQUFDLFVBQVUsRUFBRSxTQUFTLDBCQUFXLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFBO1FBRTNGLFlBQVk7UUFDWixNQUFNLE9BQU8sR0FBRywwQkFBVyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQ3ZDLElBQUksT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLE9BQU8sU0FBUyxDQUFDLENBQUE7UUFDL0MsQ0FBQztRQUVELE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxNQUFNLEVBQUUsQ0FBQyxDQUFBO1FBQ2xDLFVBQVU7UUFDVixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWTtZQUNqQyxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFBO1FBRTdELFlBQVk7UUFDWiwwQ0FBMEM7UUFDMUMsa0VBQWtFO1FBRWxFLGVBQWU7UUFDZixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNqRixLQUFLLE1BQU0sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNoRixNQUFNLENBQUMsR0FBRyxDQUFDLG9CQUFvQixPQUFPLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7WUFDdkgsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFyREQsNEJBcURDIn0=
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { INestApplication } from '@nestjs/common';
|
|
2
|
+
import { OpenAPIObject, SwaggerCustomOptions } from '@nestjs/swagger/dist/interfaces';
|
|
3
|
+
export interface DocumentBuilderOptions {
|
|
4
|
+
title?: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
version?: string;
|
|
7
|
+
serviceTerm?: string;
|
|
8
|
+
contact?: {
|
|
9
|
+
name: string;
|
|
10
|
+
url: string;
|
|
11
|
+
email: string;
|
|
12
|
+
};
|
|
13
|
+
license?: {
|
|
14
|
+
name: string;
|
|
15
|
+
url: string;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export interface SwaggerOptions {
|
|
19
|
+
/**
|
|
20
|
+
* swagger路径
|
|
21
|
+
*/
|
|
22
|
+
docPath: string;
|
|
23
|
+
builderOptions?: DocumentBuilderOptions;
|
|
24
|
+
customOptions?: SwaggerCustomOptions;
|
|
25
|
+
}
|
|
26
|
+
export declare class SwaggerDocumentBuilder {
|
|
27
|
+
getConfig(options?: DocumentBuilderOptions): Omit<OpenAPIObject, 'paths'>;
|
|
28
|
+
}
|
|
29
|
+
export declare class SwaggerManager {
|
|
30
|
+
private swaggerOptions;
|
|
31
|
+
constructor(swaggerOptions: SwaggerOptions);
|
|
32
|
+
/**
|
|
33
|
+
* 注册
|
|
34
|
+
*/
|
|
35
|
+
register(app: INestApplication): INestApplication;
|
|
36
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SwaggerManager = exports.SwaggerDocumentBuilder = void 0;
|
|
4
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
5
|
+
class SwaggerDocumentBuilder {
|
|
6
|
+
getConfig(options) {
|
|
7
|
+
const document = new swagger_1.DocumentBuilder();
|
|
8
|
+
// 初始化
|
|
9
|
+
if (options == null) {
|
|
10
|
+
options = {};
|
|
11
|
+
}
|
|
12
|
+
if (options.title != null) {
|
|
13
|
+
document.setTitle(options.title);
|
|
14
|
+
}
|
|
15
|
+
if (options.description != null) {
|
|
16
|
+
document.setDescription(options.description);
|
|
17
|
+
}
|
|
18
|
+
if (options.version != null) {
|
|
19
|
+
document.setVersion(options.version);
|
|
20
|
+
}
|
|
21
|
+
if (options.serviceTerm != null) {
|
|
22
|
+
document.setTermsOfService(options.serviceTerm);
|
|
23
|
+
}
|
|
24
|
+
if (options.contact != null) {
|
|
25
|
+
document.setContact(options.contact.name, options.contact.url, options.contact.email);
|
|
26
|
+
}
|
|
27
|
+
if (options.license != null) {
|
|
28
|
+
document.setLicense(options.license.name, options.license.url);
|
|
29
|
+
}
|
|
30
|
+
return document.build();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.SwaggerDocumentBuilder = SwaggerDocumentBuilder;
|
|
34
|
+
class SwaggerManager {
|
|
35
|
+
constructor(swaggerOptions) {
|
|
36
|
+
this.swaggerOptions = swaggerOptions;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 注册
|
|
40
|
+
*/
|
|
41
|
+
register(app) {
|
|
42
|
+
const documentConfig = new SwaggerDocumentBuilder().getConfig(this.swaggerOptions?.builderOptions);
|
|
43
|
+
const document = swagger_1.SwaggerModule.createDocument(app, documentConfig);
|
|
44
|
+
swagger_1.SwaggerModule.setup(this.swaggerOptions.docPath, app, document, this.swaggerOptions.customOptions);
|
|
45
|
+
return app;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.SwaggerManager = SwaggerManager;
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dhZ2dlci5tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N3YWdnZXIvc3dhZ2dlci5tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZDQUFnRTtBQTRCaEUsTUFBYSxzQkFBc0I7SUFDMUIsU0FBUyxDQUFDLE9BQWdDO1FBQy9DLE1BQU0sUUFBUSxHQUFHLElBQUkseUJBQWUsRUFBRSxDQUFBO1FBQ3RDLE1BQU07UUFDTixJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNwQixPQUFPLEdBQUcsRUFBRSxDQUFBO1FBQ2QsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMxQixRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNsQyxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsV0FBVyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2hDLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQzlDLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7WUFDNUIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDdEMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNoQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ2pELENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7WUFDNUIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3ZGLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7WUFDNUIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2hFLENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUN6QixDQUFDO0NBQ0Y7QUEvQkQsd0RBK0JDO0FBRUQsTUFBYSxjQUFjO0lBRXpCLFlBQVksY0FBOEI7UUFDeEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUE7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUSxDQUFDLEdBQXFCO1FBQ25DLE1BQU0sY0FBYyxHQUFHLElBQUksc0JBQXNCLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQTtRQUNsRyxNQUFNLFFBQVEsR0FBRyx1QkFBYSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUE7UUFDbEUsdUJBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBRWxHLE9BQU8sR0FBRyxDQUFBO0lBQ1osQ0FBQztDQUNGO0FBaEJELHdDQWdCQyJ9
|
package/package.json
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@142vip/nest-starter",
|
|
3
|
+
"version": "0.0.1-alpha.1",
|
|
4
|
+
"private": false,
|
|
5
|
+
"description": "Nest.js框架下Redis使用最佳实践",
|
|
6
|
+
"author": "mmdapl <mmdapl@163.com>",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"homepage": "https://142vip.github.io/core-x/packages/nest-starter/",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/142vip/core-x.git",
|
|
12
|
+
"directory": "packages/nest-starter"
|
|
13
|
+
},
|
|
14
|
+
"keywords": [
|
|
15
|
+
"公众号搜:储凡",
|
|
16
|
+
"142vip",
|
|
17
|
+
"@142vip",
|
|
18
|
+
"@142vip/nest-starter",
|
|
19
|
+
"nest",
|
|
20
|
+
"starter"
|
|
21
|
+
],
|
|
22
|
+
"sideEffects": false,
|
|
23
|
+
"exports": {
|
|
24
|
+
".": {
|
|
25
|
+
"types": "./dist/index.d.ts",
|
|
26
|
+
"import": "./dist/index.js",
|
|
27
|
+
"require": "./dist/index.js"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"authorInfo": {
|
|
31
|
+
"name": "微信公众号:储凡",
|
|
32
|
+
"email": "fairy_vip@2925.com",
|
|
33
|
+
"url": "https://github.com/142vip",
|
|
34
|
+
"homePage": "https://142vip.cn"
|
|
35
|
+
},
|
|
36
|
+
"main": "./dist/index.js",
|
|
37
|
+
"module": "./dist/index.js",
|
|
38
|
+
"types": "./dist/index.d.ts",
|
|
39
|
+
"files": [
|
|
40
|
+
"dist"
|
|
41
|
+
],
|
|
42
|
+
"peerDependencies": {
|
|
43
|
+
"@142vip/nest": "0.0.1-alpha.2"
|
|
44
|
+
},
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"@nestjs/swagger": "11.2.1",
|
|
47
|
+
"nestjs-pino": "4.4.1",
|
|
48
|
+
"@142vip/nest-logger": "0.0.1-alpha.1",
|
|
49
|
+
"@142vip/nest-redis": "0.0.1-alpha.2",
|
|
50
|
+
"@142vip/nest-typeorm": "0.0.1-alpha.1",
|
|
51
|
+
"@142vip/utils": "0.0.1-alpha.42"
|
|
52
|
+
},
|
|
53
|
+
"publishConfig": {
|
|
54
|
+
"access": "public",
|
|
55
|
+
"registry": "https://registry.npmjs.org"
|
|
56
|
+
},
|
|
57
|
+
"scripts": {
|
|
58
|
+
"build": "npx nest build",
|
|
59
|
+
"typecheck": "tsc --noEmit",
|
|
60
|
+
"test": "npx jest",
|
|
61
|
+
"test:coverage": "npx jest --coverage"
|
|
62
|
+
}
|
|
63
|
+
}
|