157 lines
2.9 KiB
TypeScript
157 lines
2.9 KiB
TypeScript
import { Injectable } from '@nestjs/common';
|
|
import { ConfigService as _ConfigService } from '@nestjs/config';
|
|
|
|
@Injectable()
|
|
export class ConfigService {
|
|
constructor(
|
|
/**
|
|
* `@nestjs/config` 的 ConfigService实例
|
|
*/
|
|
public config: _ConfigService,
|
|
) {}
|
|
|
|
/**
|
|
* 保留原有的get方法
|
|
*/
|
|
get(...args: [string, any]) {
|
|
return this.config.get(...args);
|
|
}
|
|
|
|
/**
|
|
* 标题
|
|
* @default 'Appnify'
|
|
*/
|
|
get title(): string {
|
|
return this.config.get('TITLE', 'Appnify');
|
|
}
|
|
|
|
/**
|
|
* 是否启用CORS(跨域)
|
|
* @default true
|
|
*/
|
|
get cors(): boolean {
|
|
return this.config.get('CORS', true);
|
|
}
|
|
|
|
/**
|
|
* 副标题
|
|
* @default 'Appnify'
|
|
*/
|
|
get subtitle(): string {
|
|
return this.config.get('SUBTITLE', 'Appnify');
|
|
}
|
|
|
|
/**
|
|
* API前缀
|
|
* @default '/api'
|
|
*/
|
|
get apiPrefix(): string {
|
|
return this.config.get('API_PREFIX', '/api');
|
|
}
|
|
|
|
/**
|
|
* API默认版本
|
|
* @default '1'
|
|
*/
|
|
get apiVersion(): string {
|
|
return this.config.get('API_VERSION', '1');
|
|
}
|
|
|
|
/**
|
|
* API文档前缀
|
|
* @default '/openapi'
|
|
*/
|
|
get apiDocPrefix(): string {
|
|
const prefix = this.config.get('API_DOC_PREFIX', '/openapi');
|
|
return prefix.startsWith('/') ? prefix : `/${prefix}`;
|
|
}
|
|
|
|
/**
|
|
* 运行端口
|
|
* @default 3030
|
|
*/
|
|
get port(): number {
|
|
return Number(this.config.get('SERVER_PORT', 3030));
|
|
}
|
|
|
|
/**
|
|
* 运行地址
|
|
* @default '0:0:0:0'
|
|
*/
|
|
get host(): string {
|
|
return this.config.get('SERVER_HOST', '0:0:0:0');
|
|
}
|
|
|
|
/**
|
|
* 数据库类型
|
|
* @default 'sqlite'
|
|
*/
|
|
get dbType(): 'sqlite' | 'mysql' | 'mongodb' {
|
|
return this.config.get('DB_TYPE', 'sqlite');
|
|
}
|
|
|
|
/**
|
|
* SQLite数据库文件路径
|
|
* @default './content/db.sqlite'
|
|
*/
|
|
get dbSqlitePath(): string {
|
|
return this.config.get('DB_SQLITE_PATH', './content/db.sqlite');
|
|
}
|
|
|
|
/**
|
|
* 上传文件目录
|
|
* @default './content/uploads'
|
|
*/
|
|
get uploadDir(): string {
|
|
return this.config.get('UPLOAD_DIR', './content/uploads');
|
|
}
|
|
|
|
/**
|
|
* 上传文件URL前缀
|
|
* @default '/uploads'
|
|
*/
|
|
get uploadPrefix(): string {
|
|
return this.config.get('UPLOAD_URL', '/uploads');
|
|
}
|
|
|
|
/**
|
|
* 静态文件目录
|
|
* @default './content/static'
|
|
*/
|
|
get staticDir(): string {
|
|
return this.config.get('STATIC_DIR', './content/static');
|
|
}
|
|
|
|
/**
|
|
* 默认页码
|
|
* @default 1
|
|
*/
|
|
get defaultPage(): number {
|
|
return Number(this.config.get('DEFAULT_PAGE_NUMBER', 1));
|
|
}
|
|
|
|
/**
|
|
* 默认分页大小
|
|
* @default 10
|
|
*/
|
|
get defaultPageSize(): number {
|
|
return Number(this.config.get('DEFAULT_PAGE_SIZE', 10));
|
|
}
|
|
|
|
/**
|
|
* JWT密钥
|
|
* @default 'todo'
|
|
*/
|
|
get jwtSecret(): string {
|
|
return this.config.get('JWT_SECRET', 'todo');
|
|
}
|
|
|
|
/**
|
|
* 日志保存目录
|
|
* @default './content/logs'
|
|
*/
|
|
get logDir(): string {
|
|
return this.config.get('LOG_DIR', './content/logs');
|
|
}
|
|
}
|