knight-server 1.0.0
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/Server.d.ts +39 -0
- package/Server.d.ts.map +1 -0
- package/Server.js +61 -0
- package/Server.js.map +1 -0
- package/base/AbstractModule.d.ts +25 -0
- package/base/AbstractModule.d.ts.map +1 -0
- package/base/AbstractModule.js +19 -0
- package/base/AbstractModule.js.map +1 -0
- package/base/AbstractObject.d.ts +22 -0
- package/base/AbstractObject.d.ts.map +1 -0
- package/base/AbstractObject.js +48 -0
- package/base/AbstractObject.js.map +1 -0
- package/base/AbstractRouter.d.ts +24 -0
- package/base/AbstractRouter.d.ts.map +1 -0
- package/base/AbstractRouter.js +26 -0
- package/base/AbstractRouter.js.map +1 -0
- package/base/index.d.ts +4 -0
- package/base/index.d.ts.map +1 -0
- package/base/index.js +20 -0
- package/base/index.js.map +1 -0
- package/index.d.ts +5 -0
- package/index.d.ts.map +1 -0
- package/index.js +46 -0
- package/index.js.map +1 -0
- package/module/database/DataBaseModule.d.ts +133 -0
- package/module/database/DataBaseModule.d.ts.map +1 -0
- package/module/database/DataBaseModule.js +359 -0
- package/module/database/DataBaseModule.js.map +1 -0
- package/module/database/index.d.ts +2 -0
- package/module/database/index.d.ts.map +1 -0
- package/module/database/index.js +18 -0
- package/module/database/index.js.map +1 -0
- package/module/http/HttpModule.d.ts +26 -0
- package/module/http/HttpModule.d.ts.map +1 -0
- package/module/http/HttpModule.js +52 -0
- package/module/http/HttpModule.js.map +1 -0
- package/module/http/HttpRouter.d.ts +34 -0
- package/module/http/HttpRouter.d.ts.map +1 -0
- package/module/http/HttpRouter.js +63 -0
- package/module/http/HttpRouter.js.map +1 -0
- package/module/http/index.d.ts +3 -0
- package/module/http/index.d.ts.map +1 -0
- package/module/http/index.js +19 -0
- package/module/http/index.js.map +1 -0
- package/module/index.d.ts +4 -0
- package/module/index.d.ts.map +1 -0
- package/module/index.js +20 -0
- package/module/index.js.map +1 -0
- package/module/websocket/WebSocketClient.d.ts +56 -0
- package/module/websocket/WebSocketClient.d.ts.map +1 -0
- package/module/websocket/WebSocketClient.js +142 -0
- package/module/websocket/WebSocketClient.js.map +1 -0
- package/module/websocket/WebSocketModule.d.ts +31 -0
- package/module/websocket/WebSocketModule.d.ts.map +1 -0
- package/module/websocket/WebSocketModule.js +100 -0
- package/module/websocket/WebSocketModule.js.map +1 -0
- package/module/websocket/WebSocketRouter.d.ts +32 -0
- package/module/websocket/WebSocketRouter.d.ts.map +1 -0
- package/module/websocket/WebSocketRouter.js +67 -0
- package/module/websocket/WebSocketRouter.js.map +1 -0
- package/module/websocket/index.d.ts +4 -0
- package/module/websocket/index.d.ts.map +1 -0
- package/module/websocket/index.js +20 -0
- package/module/websocket/index.js.map +1 -0
- package/package.json +19 -0
- package/test/MyRouter.d.ts +16 -0
- package/test/MyRouter.d.ts.map +1 -0
- package/test/MyRouter.js +49 -0
- package/test/MyRouter.js.map +1 -0
- package/test/WSRouter.d.ts +10 -0
- package/test/WSRouter.d.ts.map +1 -0
- package/test/WSRouter.js +33 -0
- package/test/WSRouter.js.map +1 -0
- package/test/index.d.ts +3 -0
- package/test/index.d.ts.map +1 -0
- package/test/index.js +19 -0
- package/test/index.js.map +1 -0
- package/utility/DatabaseUtility.d.ts +158 -0
- package/utility/DatabaseUtility.d.ts.map +1 -0
- package/utility/DatabaseUtility.js +903 -0
- package/utility/DatabaseUtility.js.map +1 -0
- package/utility/InterfaceUtility.d.ts +14 -0
- package/utility/InterfaceUtility.d.ts.map +1 -0
- package/utility/InterfaceUtility.js +3 -0
- package/utility/InterfaceUtility.js.map +1 -0
- package/utility/NetworkUtility.d.ts +80 -0
- package/utility/NetworkUtility.d.ts.map +1 -0
- package/utility/NetworkUtility.js +134 -0
- package/utility/NetworkUtility.js.map +1 -0
- package/utility/StringUtility.d.ts +46 -0
- package/utility/StringUtility.d.ts.map +1 -0
- package/utility/StringUtility.js +153 -0
- package/utility/StringUtility.js.map +1 -0
- package/utility/TimeUtility.d.ts +65 -0
- package/utility/TimeUtility.d.ts.map +1 -0
- package/utility/TimeUtility.js +220 -0
- package/utility/TimeUtility.js.map +1 -0
- package/utility/index.d.ts +6 -0
- package/utility/index.d.ts.map +1 -0
- package/utility/index.js +22 -0
- package/utility/index.js.map +1 -0
|
@@ -0,0 +1,359 @@
|
|
|
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.DataBaseModule = void 0;
|
|
37
|
+
const MYSQL = __importStar(require("mysql2/promise"));
|
|
38
|
+
const base_1 = require("../../base");
|
|
39
|
+
const utility_1 = require("../../utility");
|
|
40
|
+
/** 数据库模块 */
|
|
41
|
+
class DataBaseModule extends base_1.AbstarctModule {
|
|
42
|
+
/** 构造函数 */
|
|
43
|
+
constructor(server, express) {
|
|
44
|
+
super(server, express);
|
|
45
|
+
}
|
|
46
|
+
async OnStart(serverHost, config) {
|
|
47
|
+
this.serverHost = serverHost;
|
|
48
|
+
this.config = config;
|
|
49
|
+
this.pool = MYSQL.createPool(config);
|
|
50
|
+
const connection = await this.pool.getConnection();
|
|
51
|
+
connection.release();
|
|
52
|
+
// 智能同步表格
|
|
53
|
+
const table = new utility_1.DatabaseUtility.SmartTable(this.pool);
|
|
54
|
+
const result = await table.syncAllFromDir(config.tableRelativePath);
|
|
55
|
+
if (!result.success) {
|
|
56
|
+
console.log(result.message);
|
|
57
|
+
}
|
|
58
|
+
this.logInfo(`初始化`);
|
|
59
|
+
}
|
|
60
|
+
async OnStop() {
|
|
61
|
+
await this.pool?.end();
|
|
62
|
+
}
|
|
63
|
+
OnDestroy() {
|
|
64
|
+
super.OnDestroy();
|
|
65
|
+
this.OnStop();
|
|
66
|
+
}
|
|
67
|
+
// ==================== 基础查询方法 ====================
|
|
68
|
+
/**
|
|
69
|
+
* 执行SQL查询(基础方法)
|
|
70
|
+
* @param sql SQL语句(支持 ? 占位符)
|
|
71
|
+
* @param params 参数数组
|
|
72
|
+
* @returns 查询结果
|
|
73
|
+
*/
|
|
74
|
+
async executeQuery(sql, params = []) {
|
|
75
|
+
if (!this.pool) {
|
|
76
|
+
throw new Error('数据库连接池未初始化');
|
|
77
|
+
}
|
|
78
|
+
try {
|
|
79
|
+
const [rows, fields] = await this.pool.execute(sql, params);
|
|
80
|
+
return [rows, fields];
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
console.error('SQL执行错误:', error);
|
|
84
|
+
throw error;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// ==================== 查询操作 ====================
|
|
88
|
+
/**
|
|
89
|
+
* 查询多条数据
|
|
90
|
+
* @param table 表名
|
|
91
|
+
* @param where 查询条件(可选)
|
|
92
|
+
* @param params 参数(可选)
|
|
93
|
+
*/
|
|
94
|
+
async find(table, where, params = []) {
|
|
95
|
+
try {
|
|
96
|
+
const sql = where
|
|
97
|
+
? `SELECT * FROM \`${table}\` WHERE ${where}`
|
|
98
|
+
: `SELECT * FROM \`${table}\``;
|
|
99
|
+
const [rows] = await this.executeQuery(sql, params);
|
|
100
|
+
return {
|
|
101
|
+
success: true,
|
|
102
|
+
data: rows,
|
|
103
|
+
raw: rows
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
return {
|
|
108
|
+
success: false,
|
|
109
|
+
error: error instanceof Error ? error.message : String(error)
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* 查询单条数据
|
|
115
|
+
* @param table 表名
|
|
116
|
+
* @param where 查询条件
|
|
117
|
+
* @param params 参数
|
|
118
|
+
*/
|
|
119
|
+
async findOne(table, where, params = []) {
|
|
120
|
+
try {
|
|
121
|
+
const sql = `SELECT * FROM \`${table}\` WHERE ${where} LIMIT 1`;
|
|
122
|
+
const [rows] = await this.executeQuery(sql, params);
|
|
123
|
+
return {
|
|
124
|
+
success: true,
|
|
125
|
+
item: rows[0],
|
|
126
|
+
data: rows,
|
|
127
|
+
raw: rows
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
return {
|
|
132
|
+
success: false,
|
|
133
|
+
error: error instanceof Error ? error.message : String(error)
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* 根据ID查询
|
|
139
|
+
* @param table 表名
|
|
140
|
+
* @param id ID值
|
|
141
|
+
* @param idField ID字段名(默认 'id')
|
|
142
|
+
*/
|
|
143
|
+
async findById(table, id, idField = 'id') {
|
|
144
|
+
return this.findOne(table, `\`${idField}\` = ?`, [id]);
|
|
145
|
+
}
|
|
146
|
+
// ==================== 插入操作 ====================
|
|
147
|
+
/**
|
|
148
|
+
* 插入单条数据
|
|
149
|
+
* @param table 表名
|
|
150
|
+
* @param data 要插入的数据对象
|
|
151
|
+
*/
|
|
152
|
+
async insert(table, data) {
|
|
153
|
+
try {
|
|
154
|
+
const keys = Object.keys(data).map(key => `\`${key}\``).join(', ');
|
|
155
|
+
const placeholders = Object.keys(data).map(() => '?').join(', ');
|
|
156
|
+
const values = Object.values(data);
|
|
157
|
+
const sql = `INSERT INTO \`${table}\` (${keys}) VALUES (${placeholders})`;
|
|
158
|
+
const [result] = await this.executeQuery(sql, values);
|
|
159
|
+
return {
|
|
160
|
+
success: true,
|
|
161
|
+
insertId: result.insertId,
|
|
162
|
+
affectedRows: result.affectedRows
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
return {
|
|
167
|
+
success: false,
|
|
168
|
+
error: error instanceof Error ? error.message : String(error)
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* 批量插入数据
|
|
174
|
+
* @param table 表名
|
|
175
|
+
* @param dataArray 数据对象数组
|
|
176
|
+
*/
|
|
177
|
+
async insertBatch(table, dataArray) {
|
|
178
|
+
if (dataArray.length === 0) {
|
|
179
|
+
return { success: false, error: '没有数据可插入' };
|
|
180
|
+
}
|
|
181
|
+
try {
|
|
182
|
+
const keys = Object.keys(dataArray[0]).map(key => `\`${key}\``).join(', ');
|
|
183
|
+
const placeholders = dataArray.map(() => `(${Object.keys(dataArray[0]).map(() => '?').join(', ')})`).join(', ');
|
|
184
|
+
const values = dataArray.flatMap(obj => Object.values(obj));
|
|
185
|
+
const sql = `INSERT INTO \`${table}\` (${keys}) VALUES ${placeholders}`;
|
|
186
|
+
const [result] = await this.executeQuery(sql, values);
|
|
187
|
+
return {
|
|
188
|
+
success: true,
|
|
189
|
+
affectedRows: result.affectedRows,
|
|
190
|
+
insertId: result.insertId
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
return {
|
|
195
|
+
success: false,
|
|
196
|
+
error: error instanceof Error ? error.message : String(error)
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
// ==================== 更新操作 ====================
|
|
201
|
+
/**
|
|
202
|
+
* 更新数据
|
|
203
|
+
* @param table 表名
|
|
204
|
+
* @param data 要更新的数据
|
|
205
|
+
* @param where 更新条件
|
|
206
|
+
* @param whereParams 条件参数
|
|
207
|
+
*/
|
|
208
|
+
async update(table, data, where, whereParams = []) {
|
|
209
|
+
try {
|
|
210
|
+
const setClause = Object.keys(data).map(key => `\`${key}\` = ?`).join(', ');
|
|
211
|
+
const setValues = Object.values(data);
|
|
212
|
+
const params = [...setValues, ...whereParams];
|
|
213
|
+
const sql = `UPDATE \`${table}\` SET ${setClause} WHERE ${where}`;
|
|
214
|
+
const [result] = await this.executeQuery(sql, params);
|
|
215
|
+
return {
|
|
216
|
+
success: true,
|
|
217
|
+
affectedRows: result.affectedRows
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
catch (error) {
|
|
221
|
+
return {
|
|
222
|
+
success: false,
|
|
223
|
+
error: error instanceof Error ? error.message : String(error)
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* 根据ID更新
|
|
229
|
+
* @param table 表名
|
|
230
|
+
* @param id ID值
|
|
231
|
+
* @param data 更新数据
|
|
232
|
+
* @param idField ID字段名
|
|
233
|
+
*/
|
|
234
|
+
async updateById(table, id, data, idField = 'id') {
|
|
235
|
+
return this.update(table, data, `\`${idField}\` = ?`, [id]);
|
|
236
|
+
}
|
|
237
|
+
// ==================== 删除操作 ====================
|
|
238
|
+
/**
|
|
239
|
+
* 删除数据
|
|
240
|
+
* @param table 表名
|
|
241
|
+
* @param where 删除条件
|
|
242
|
+
* @param params 条件参数
|
|
243
|
+
*/
|
|
244
|
+
async delete(table, where, params = []) {
|
|
245
|
+
try {
|
|
246
|
+
const sql = `DELETE FROM \`${table}\` WHERE ${where}`;
|
|
247
|
+
const [result] = await this.executeQuery(sql, params);
|
|
248
|
+
return {
|
|
249
|
+
success: true,
|
|
250
|
+
affectedRows: result.affectedRows
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
catch (error) {
|
|
254
|
+
return {
|
|
255
|
+
success: false,
|
|
256
|
+
error: error instanceof Error ? error.message : String(error)
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* 根据ID删除
|
|
262
|
+
* @param table 表名
|
|
263
|
+
* @param id ID值
|
|
264
|
+
* @param idField ID字段名
|
|
265
|
+
*/
|
|
266
|
+
async deleteById(table, id, idField = 'id') {
|
|
267
|
+
return this.delete(table, `\`${idField}\` = ?`, [id]);
|
|
268
|
+
}
|
|
269
|
+
// ==================== 高级查询 ====================
|
|
270
|
+
/**
|
|
271
|
+
* 分页查询
|
|
272
|
+
* @param table 表名
|
|
273
|
+
* @param page 页码(从1开始)
|
|
274
|
+
* @param pageSize 每页数量
|
|
275
|
+
* @param where 查询条件(可选)
|
|
276
|
+
* @param params 条件参数(可选)
|
|
277
|
+
* @param orderBy 排序(可选,如 'id DESC')
|
|
278
|
+
*/
|
|
279
|
+
async paginate(table, page = 1, pageSize = 20, where, params = [], orderBy = 'id DESC') {
|
|
280
|
+
try {
|
|
281
|
+
const countSql = where
|
|
282
|
+
? `SELECT COUNT(*) as total FROM \`${table}\` WHERE ${where}`
|
|
283
|
+
: `SELECT COUNT(*) as total FROM \`${table}\``;
|
|
284
|
+
const [countResult] = await this.executeQuery(countSql, where ? params : []);
|
|
285
|
+
const total = countResult[0]?.total || 0;
|
|
286
|
+
const offset = (page - 1) * pageSize;
|
|
287
|
+
const dataSql = where
|
|
288
|
+
? `SELECT * FROM \`${table}\` WHERE ${where} ORDER BY ${orderBy} LIMIT ${offset}, ${pageSize}`
|
|
289
|
+
: `SELECT * FROM \`${table}\` ORDER BY ${orderBy} LIMIT ${offset}, ${pageSize}`;
|
|
290
|
+
const [rows] = await this.executeQuery(dataSql, where ? params : []);
|
|
291
|
+
return {
|
|
292
|
+
success: true,
|
|
293
|
+
data: rows,
|
|
294
|
+
total,
|
|
295
|
+
page,
|
|
296
|
+
pageSize
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
catch (error) {
|
|
300
|
+
return {
|
|
301
|
+
success: false,
|
|
302
|
+
error: error instanceof Error ? error.message : String(error)
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* 执行自定义SQL(完全控制)
|
|
308
|
+
* @param sql SQL语句
|
|
309
|
+
* @param params 参数
|
|
310
|
+
*/
|
|
311
|
+
async query(sql, params = []) {
|
|
312
|
+
try {
|
|
313
|
+
const [rows] = await this.executeQuery(sql, params);
|
|
314
|
+
return {
|
|
315
|
+
success: true,
|
|
316
|
+
data: rows,
|
|
317
|
+
raw: rows
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
catch (error) {
|
|
321
|
+
return {
|
|
322
|
+
success: false,
|
|
323
|
+
error: error instanceof Error ? error.message : String(error)
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
// ==================== 事务操作 ====================
|
|
328
|
+
/**
|
|
329
|
+
* 执行事务
|
|
330
|
+
* @param callback 事务回调函数,返回结果或Promise
|
|
331
|
+
*/
|
|
332
|
+
async transaction(callback) {
|
|
333
|
+
if (!this.pool) {
|
|
334
|
+
return { success: false, error: '数据库连接池未初始化' };
|
|
335
|
+
}
|
|
336
|
+
const connection = await this.pool.getConnection();
|
|
337
|
+
try {
|
|
338
|
+
await connection.beginTransaction();
|
|
339
|
+
const result = await callback(connection);
|
|
340
|
+
await connection.commit();
|
|
341
|
+
return {
|
|
342
|
+
success: true,
|
|
343
|
+
data: result
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
catch (error) {
|
|
347
|
+
await connection.rollback();
|
|
348
|
+
return {
|
|
349
|
+
success: false,
|
|
350
|
+
error: error instanceof Error ? error.message : String(error)
|
|
351
|
+
};
|
|
352
|
+
}
|
|
353
|
+
finally {
|
|
354
|
+
connection.release();
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
exports.DataBaseModule = DataBaseModule;
|
|
359
|
+
//# sourceMappingURL=DataBaseModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataBaseModule.js","sourceRoot":"","sources":["../../../src/module/database/DataBaseModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/module/database/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
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("./DataBaseModule"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/module/database/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Express } from "express-serve-static-core";
|
|
2
|
+
import { AbstarctModule } from "../../base";
|
|
3
|
+
import { HttpRouter } from "./HttpRouter";
|
|
4
|
+
import { InterfaceUtility } from "../../utility";
|
|
5
|
+
import { Server } from "../../Server";
|
|
6
|
+
/** HTTP模块 */
|
|
7
|
+
export declare class HttpModule extends AbstarctModule<HttpConfig> {
|
|
8
|
+
protected config: HttpConfig;
|
|
9
|
+
/** HTTP服务实例 */
|
|
10
|
+
private httpServer;
|
|
11
|
+
/** 路由池 */
|
|
12
|
+
private readonly routers;
|
|
13
|
+
/** 构造函数 */
|
|
14
|
+
constructor(server: Server, express: Express);
|
|
15
|
+
OnStart(serverHost: string, config: HttpConfig): Promise<void>;
|
|
16
|
+
OnStop(): Promise<void>;
|
|
17
|
+
/** 注册 */
|
|
18
|
+
OnRegist(routerType: InterfaceUtility.IType<HttpRouter>): boolean;
|
|
19
|
+
OnDestroy(): void;
|
|
20
|
+
}
|
|
21
|
+
/** HTTP配置接口 */
|
|
22
|
+
export interface HttpConfig {
|
|
23
|
+
/** 端口号 */
|
|
24
|
+
port: number;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=HttpModule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpModule.d.ts","sourceRoot":"","sources":["../../../src/module/http/HttpModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAGpD,OAAO,EAAE,cAAc,EAAiB,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,aAAa;AACb,qBAAa,UAAW,SAAQ,cAAc,CAAC,UAAU,CAAC;IAEtD,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC;IAC7B,eAAe;IACf,OAAO,CAAC,UAAU,CAAc;IAChC,UAAU;IACV,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAElD,WAAW;gBACQ,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAKtC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAa9D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAKpC,SAAS;IACF,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,OAAO;IAYjE,SAAS,IAAI,IAAI;CAK3B;AACD,eAAe;AACf,MAAM,WAAW,UAAU;IAIvB,UAAU;IACV,IAAI,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HttpModule = void 0;
|
|
4
|
+
const base_1 = require("../../base");
|
|
5
|
+
const HttpRouter_1 = require("./HttpRouter");
|
|
6
|
+
/** HTTP模块 */
|
|
7
|
+
class HttpModule extends base_1.AbstarctModule {
|
|
8
|
+
/** 构造函数 */
|
|
9
|
+
constructor(server, express) {
|
|
10
|
+
super(server, express);
|
|
11
|
+
this.routers = new Map();
|
|
12
|
+
}
|
|
13
|
+
async OnStart(serverHost, config) {
|
|
14
|
+
this.serverHost = serverHost;
|
|
15
|
+
this.config = config;
|
|
16
|
+
this.httpServer = this.express.listen(config.port);
|
|
17
|
+
this.logInfo(`🌏 http://${serverHost}:${config.port}`);
|
|
18
|
+
// 注册路由
|
|
19
|
+
const routerRegistry = base_1.RouteRegistry.filter(routerType => routerType.prototype instanceof HttpRouter_1.HttpRouter);
|
|
20
|
+
for (const routerType of routerRegistry) {
|
|
21
|
+
this.OnRegist(routerType);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async OnStop() {
|
|
25
|
+
this.routers.clear();
|
|
26
|
+
this.httpServer?.close();
|
|
27
|
+
}
|
|
28
|
+
/** 注册 */
|
|
29
|
+
OnRegist(routerType) {
|
|
30
|
+
if (null == routerType) {
|
|
31
|
+
this.logError("路由类型为空");
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
const name = routerType.name;
|
|
35
|
+
const path = '/' + name.toLowerCase();
|
|
36
|
+
if (this.routers.has(path)) {
|
|
37
|
+
this.logError(`重复注册${path}路由}`);
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
const router = new routerType(this.server);
|
|
41
|
+
this.routers.set(path, router);
|
|
42
|
+
this.express.all(path, router.OnHandler.bind(router));
|
|
43
|
+
this.log(`路由 ${name} - http://${this.serverHost}:${this.config.port}${path}`);
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
OnDestroy() {
|
|
47
|
+
super.OnDestroy();
|
|
48
|
+
this.OnStop();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.HttpModule = HttpModule;
|
|
52
|
+
//# sourceMappingURL=HttpModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpModule.js","sourceRoot":"","sources":["../../../src/module/http/HttpModule.ts"],"names":[],"mappings":";;;AAGA,qCAA2D;AAC3D,6CAA0C;AAI1C,aAAa;AACb,MAAa,UAAW,SAAQ,qBAA0B;IAQtD,WAAW;IACX,YAAmB,MAAc,EAAE,OAAgB;QAE/C,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IACjD,CAAC;IACM,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,MAAkB;QAEvD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,aAAa,UAAU,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,OAAO;QACP,MAAM,cAAc,GAAG,oBAAa,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,YAAY,uBAAU,CAAC,CAAC;QACtG,KAAK,MAAM,UAAU,IAAI,cAAc,EACvC,CAAC;YACG,IAAI,CAAC,QAAQ,CAAC,UAAgD,CAAC,CAAC;QACpE,CAAC;IACL,CAAC;IACM,KAAK,CAAC,MAAM;QAEf,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IACD,SAAS;IACF,QAAQ,CAAC,UAA8C;QAE1D,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;YAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;QAClE,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC7B,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,aAAa,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC;IAChB,CAAC;IACM,SAAS;QAEZ,KAAK,CAAC,SAAS,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;CACJ;AAlDD,gCAkDC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Request, Response } from "express";
|
|
2
|
+
import { AbstractRouter } from "../../base";
|
|
3
|
+
import { Server } from "../../Server";
|
|
4
|
+
/** 抽象HTTP路由 */
|
|
5
|
+
export declare abstract class HttpRouter extends AbstractRouter {
|
|
6
|
+
/** 构造函数 */
|
|
7
|
+
constructor(server: Server);
|
|
8
|
+
/** 鉴权处理 */
|
|
9
|
+
abstract OnCheck(request: Request, response: Response): Promise<boolean>;
|
|
10
|
+
/** 逻辑处理 */
|
|
11
|
+
OnHandler(request: Request, response: Response): Promise<void>;
|
|
12
|
+
/** Get方法逻辑处理函数 */
|
|
13
|
+
protected abstract OnGetHandler(server: Server, request: HttpRequest, response: HttpResponse): Promise<void>;
|
|
14
|
+
/** Post方法逻辑处理函数 */
|
|
15
|
+
protected abstract OnPostHandler(server: Server, request: HttpRequest, response: HttpResponse): Promise<void>;
|
|
16
|
+
/** Put方法逻辑处理函数 */
|
|
17
|
+
protected abstract OnPutHandler(server: Server, request: HttpRequest, response: HttpResponse): Promise<void>;
|
|
18
|
+
/** Delete方法逻辑处理函数 */
|
|
19
|
+
protected abstract OnDeleteHandler(server: Server, request: HttpRequest, response: HttpResponse): Promise<void>;
|
|
20
|
+
/** Options方法逻辑处理函数 */
|
|
21
|
+
protected abstract OnOptionsHandler(server: Server, request: HttpRequest, response: HttpResponse): Promise<void>;
|
|
22
|
+
/** Head方法逻辑处理函数 */
|
|
23
|
+
protected abstract OnHeadHandler(server: Server, request: HttpRequest, response: HttpResponse): Promise<void>;
|
|
24
|
+
/** Patch方法逻辑处理函数 */
|
|
25
|
+
protected abstract OnPatchHandler(server: Server, request: HttpRequest, response: HttpResponse): Promise<void>;
|
|
26
|
+
/** Trace方法逻辑处理函数 */
|
|
27
|
+
protected abstract OnTraceHandler(server: Server, request: HttpRequest, response: HttpResponse): Promise<void>;
|
|
28
|
+
OnDestroy(): void;
|
|
29
|
+
}
|
|
30
|
+
/** HTTP请求数据 */
|
|
31
|
+
export type HttpRequest = Request;
|
|
32
|
+
/** HTTP响应数据 */
|
|
33
|
+
export type HttpResponse = Response;
|
|
34
|
+
//# sourceMappingURL=HttpRouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpRouter.d.ts","sourceRoot":"","sources":["../../../src/module/http/HttpRouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,eAAe;AACf,8BAAsB,UAAW,SAAQ,cAAc;IAEnD,WAAW;gBACQ,MAAM,EAAE,MAAM;IAIjC,WAAW;aACK,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAC/E,WAAW;IACE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B3E,kBAAkB;IAClB,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC5G,mBAAmB;IACnB,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7G,kBAAkB;IAClB,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC5G,qBAAqB;IACrB,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC/G,sBAAsB;IACtB,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAChH,mBAAmB;IACnB,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7G,oBAAoB;IACpB,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9G,oBAAoB;IACpB,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAEvG,SAAS,IAAI,IAAI;CAI3B;AACD,eAAe;AACf,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC;AAClC,eAAe;AACf,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HttpRouter = void 0;
|
|
4
|
+
const base_1 = require("../../base");
|
|
5
|
+
const utility_1 = require("../../utility");
|
|
6
|
+
/** 抽象HTTP路由 */
|
|
7
|
+
class HttpRouter extends base_1.AbstractRouter {
|
|
8
|
+
/** 构造函数 */
|
|
9
|
+
constructor(server) {
|
|
10
|
+
super(server);
|
|
11
|
+
}
|
|
12
|
+
/** 逻辑处理 */
|
|
13
|
+
async OnHandler(request, response) {
|
|
14
|
+
if (null == request || utility_1.StringUtility.empty(request.method) || null == response) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
// 请求头鉴权处理 - TODO:后续放到业务逻辑中处理
|
|
18
|
+
// const authorization = request.headers.authorization;
|
|
19
|
+
// if (!authorization || !authorization.startsWith("Bearer "))
|
|
20
|
+
// {
|
|
21
|
+
// response.status(ResponseCode.UNAUTHORIZED).send("未认证,请先登录");
|
|
22
|
+
// return false;
|
|
23
|
+
// }
|
|
24
|
+
const check = await this.OnCheck(request, response);
|
|
25
|
+
if (!check) {
|
|
26
|
+
response.status(utility_1.NetworkUtility.ResponseCode.UNAUTHORIZED).send("令牌无效,请先登录");
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
// 根据请求中的方法进行路由分发
|
|
30
|
+
switch (request.method.toLowerCase()) {
|
|
31
|
+
case utility_1.NetworkUtility.E_ProtocalType.Get:
|
|
32
|
+
this.OnGetHandler(this.server, request, response);
|
|
33
|
+
break;
|
|
34
|
+
case utility_1.NetworkUtility.E_ProtocalType.Post:
|
|
35
|
+
this.OnPostHandler(this.server, request, response);
|
|
36
|
+
break;
|
|
37
|
+
case utility_1.NetworkUtility.E_ProtocalType.Put:
|
|
38
|
+
this.OnPutHandler(this.server, request, response);
|
|
39
|
+
break;
|
|
40
|
+
case utility_1.NetworkUtility.E_ProtocalType.Delete:
|
|
41
|
+
this.OnDeleteHandler(this.server, request, response);
|
|
42
|
+
break;
|
|
43
|
+
case utility_1.NetworkUtility.E_ProtocalType.Options:
|
|
44
|
+
this.OnOptionsHandler(this.server, request, response);
|
|
45
|
+
break;
|
|
46
|
+
case utility_1.NetworkUtility.E_ProtocalType.Head:
|
|
47
|
+
this.OnHeadHandler(this.server, request, response);
|
|
48
|
+
break;
|
|
49
|
+
case utility_1.NetworkUtility.E_ProtocalType.Patch:
|
|
50
|
+
this.OnPatchHandler(this.server, request, response);
|
|
51
|
+
break;
|
|
52
|
+
case utility_1.NetworkUtility.E_ProtocalType.Trace:
|
|
53
|
+
this.OnTraceHandler(this.server, request, response);
|
|
54
|
+
break;
|
|
55
|
+
default: return;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
OnDestroy() {
|
|
59
|
+
super.OnDestroy();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.HttpRouter = HttpRouter;
|
|
63
|
+
//# sourceMappingURL=HttpRouter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpRouter.js","sourceRoot":"","sources":["../../../src/module/http/HttpRouter.ts"],"names":[],"mappings":";;;AACA,qCAA4C;AAC5C,2CAA8D;AAG9D,eAAe;AACf,MAAsB,UAAW,SAAQ,qBAAc;IAEnD,WAAW;IACX,YAAmB,MAAc;QAE7B,KAAK,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAGD,WAAW;IACJ,KAAK,CAAC,SAAS,CAAC,OAAgB,EAAE,QAAkB;QAEvD,IAAI,IAAI,IAAI,OAAO,IAAI,uBAAa,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QAC3F,6BAA6B;QAC7B,uDAAuD;QACvD,8DAA8D;QAC9D,IAAI;QACJ,mEAAmE;QACnE,oBAAoB;QACpB,IAAI;QAEJ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,QAAQ,CAAC,MAAM,CAAC,wBAAc,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACpG,iBAAiB;QACjB,QAAQ,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,EACpC,CAAC;YACG,KAAK,wBAAc,CAAC,cAAc,CAAC,GAAG;gBAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAAC,MAAM;YACjG,KAAK,wBAAc,CAAC,cAAc,CAAC,IAAI;gBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAAC,MAAM;YACnG,KAAK,wBAAc,CAAC,cAAc,CAAC,GAAG;gBAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAAC,MAAM;YACjG,KAAK,wBAAc,CAAC,cAAc,CAAC,MAAM;gBAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAAC,MAAM;YACvG,KAAK,wBAAc,CAAC,cAAc,CAAC,OAAO;gBAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAAC,MAAM;YACzG,KAAK,wBAAc,CAAC,cAAc,CAAC,IAAI;gBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAAC,MAAM;YACnG,KAAK,wBAAc,CAAC,cAAc,CAAC,KAAK;gBAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAAC,MAAM;YACrG,KAAK,wBAAc,CAAC,cAAc,CAAC,KAAK;gBAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAAC,MAAM;YACrG,OAAO,CAAC,CAAC,OAAO;QACpB,CAAC;IACL,CAAC;IAkBM,SAAS;QAEZ,KAAK,CAAC,SAAS,EAAE,CAAC;IACtB,CAAC;CACJ;AA1DD,gCA0DC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/module/http/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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("./HttpModule"), exports);
|
|
18
|
+
__exportStar(require("./HttpRouter"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/module/http/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,+CAA6B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/module/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC"}
|