baja-lite 1.3.47 → 1.3.49
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/boot.js +2 -0
- package/code.js +70 -40
- package/package.json +9 -9
package/boot.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { _Hump, DBType, getEnums } from 'baja-lite-field';
|
|
2
|
+
import events from 'events';
|
|
2
3
|
import { _dao, _defOption, _enum, _EventBus, _fs, _GlobalSqlOption, _path, _primaryDB, _sqlCache, ColumnMode, logger, Mysql, Postgresql, SqlCache, Sqlite, SqliteRemote } from './sql.js';
|
|
3
4
|
export const Boot = async function (options) {
|
|
4
5
|
globalThis[_GlobalSqlOption] = Object.assign({}, _defOption, options);
|
|
@@ -85,6 +86,7 @@ export const Boot = async function (options) {
|
|
|
85
86
|
}
|
|
86
87
|
}
|
|
87
88
|
if (options.Redis) {
|
|
89
|
+
events.setMaxListeners(0);
|
|
88
90
|
const { Redis } = await import('ioredis');
|
|
89
91
|
if (options.Redis['host']) {
|
|
90
92
|
globalThis[_dao][DBType.Redis][_primaryDB] = new Redis(options.Redis);
|
package/code.js
CHANGED
|
@@ -55,7 +55,7 @@ const templatePath = path.join(basepath, 'code-template');
|
|
|
55
55
|
console.log(`
|
|
56
56
|
**********************-----------
|
|
57
57
|
配置文件:
|
|
58
|
-
请在项目根目录添加文件:baja.code.json
|
|
58
|
+
请在项目根目录添加文件:baja.code.json!配置示例:
|
|
59
59
|
{
|
|
60
60
|
"host": "",
|
|
61
61
|
"port": "",
|
|
@@ -80,7 +80,8 @@ console.log(`
|
|
|
80
80
|
"id"? : "uuidShort: true, notNull: true, uuid: true",
|
|
81
81
|
"logicDeleteK"?: "逻辑删除字段名",
|
|
82
82
|
"logicDeleteV"?: "逻辑删除值",如果是字符串需要这样 logicDeleteV: "'0'"
|
|
83
|
-
"NotlogicDeleteV"?: "未逻辑删除值",如果是字符串需要这样 NotlogicDeleteV: "'0'"
|
|
83
|
+
"NotlogicDeleteV"?: "未逻辑删除值",如果是字符串需要这样 NotlogicDeleteV: "'0'",
|
|
84
|
+
"skipColumns"?: ["跳过的列名1", "跳过的列名2"]
|
|
84
85
|
}
|
|
85
86
|
command是生成命令,这里声明命令同时定义文件生成路径:可用下面的变量替换.同时必须有同名模板.
|
|
86
87
|
路径是相对于项目根目录的
|
|
@@ -91,40 +92,50 @@ console.log(`
|
|
|
91
92
|
**********************-----------
|
|
92
93
|
**********************-----------
|
|
93
94
|
模板文件
|
|
94
|
-
请在项目根目录的code-template添加模板文件, 按照mustache(标签定义成了[ '<%', '%>' ])
|
|
95
|
-
|
|
95
|
+
请在项目根目录的code-template添加模板文件, 按照mustache(标签定义成了[ '<%', '%>' ])进行格式化,支持使用的变量:
|
|
96
|
+
************* 以下假设表名为event_main_info,列名为sku_id,sku_name
|
|
97
|
+
title // 字符串,表的注释
|
|
98
|
+
|
|
99
|
+
tableName // 字符串,event_main_info
|
|
100
|
+
className // 字符串,eventMainInfo
|
|
101
|
+
ClassName // 字符串,EventMainInfo
|
|
102
|
+
vueName // 字符串,event-main-info
|
|
103
|
+
splitVueName // 字符串,event/main-info
|
|
104
|
+
splitName // 字符串,event/main/info
|
|
105
|
+
SplitName // 字符串,event/mainInfo
|
|
106
|
+
|
|
107
|
+
columns // 数组, 元素格式为{comment:注释,name: sku_id,Name: skuId,NAME: SkuId,Field:表示字段的注解,Type:表示JS类型}
|
|
108
|
+
column_names // 数组, 元素是列名字符串,格式是 sku_id,sku_name
|
|
109
|
+
ColumnNames // 数组, 元素是列名字符串,格式是 skuId,skuName
|
|
110
|
+
column_names_join // 字符串,列名join的字符串,格式是 "sku_id,sku_name"
|
|
111
|
+
ColumnNames_join // 字符串,列名join的字符串,格式是 "skuId,skuName"
|
|
112
|
+
|
|
113
|
+
column_names_joinT // 字符串,列名join的字符串,格式是 "t.sku_id,t.sku_name"
|
|
114
|
+
ColumnNames_joinT // 字符串,列名join的字符串,格式是 "t.skuId,t.skuName"
|
|
115
|
+
|
|
116
|
+
columns_no_id // 数组, 不含主键, 元素格式为{comment:注释,name: sku_id,Name: skuId,NAME: SkuId,Field:表示字段的注解,Type:表示JS类型}
|
|
117
|
+
column_names_no_id // 数组, 不含主键, 元素是列名字符串,格式是 sku_id,sku_name
|
|
118
|
+
ColumnNames_no_id // 数组, 不含主键, 元素是列名字符串,格式是 skuId,skuName
|
|
119
|
+
column_names_no_id_join // 字符串, 不含主键, 列名join的字符串,格式是 "sku_id,sku_name"
|
|
120
|
+
ColumnNames_no_id_join // 字符串, 不含主键, 列名join的字符串,格式是 "skuId,skuName"
|
|
96
121
|
|
|
97
|
-
tableName, event_main_info
|
|
98
|
-
className, eventMainInfo
|
|
99
|
-
ClassName, EventMainInfo
|
|
100
|
-
vueName, event-main-info
|
|
101
|
-
splitVueName, event/main-info
|
|
102
|
-
splitName, event/main/info
|
|
103
|
-
SplitName, event/mainInfo
|
|
104
122
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
Field
|
|
111
|
-
Type
|
|
112
|
-
], Field(类型string),表示字段的注解, Type 表示JS类型
|
|
113
|
-
columnNames_join: 'sku_id, sku_name'
|
|
114
|
-
ColumnNames_join: 'sku_id skuId, sku_name skuName'
|
|
115
|
-
columnNames_joinT: 't.sku_id, t.sku_name'
|
|
116
|
-
ColumnNames_joinT: 't.sku_id skuId, t.sku_name skuName'
|
|
117
|
-
columns_no_id: [], 同columns,没有ID而已
|
|
118
|
-
columnNames_no_id: [],
|
|
123
|
+
columns_no_skip // 数组, 不含跳过的列,元素格式为{comment:注释,name: sku_id,Name: skuId,NAME: SkuId,Field:表示字段的注解,Type:表示JS类型}
|
|
124
|
+
column_names_no_skip // 数组, 不含跳过的列, 元素是列名字符串,格式是 sku_id,sku_name
|
|
125
|
+
ColumnNames_no_skip // 数组, 不含跳过的列, 元素是列名字符串,格式是 skuId,skuName
|
|
126
|
+
column_names_no_skip_join // 数组, 不含跳过的列, 元素是列名字符串,格式是 "sku_id,sku_name"
|
|
127
|
+
ColumnNames_no_skip_join // 数组, 不含跳过的列, 元素是列名字符串,格式是 "skuId,skuName"
|
|
119
128
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
129
|
+
ids // 数组, 只有主键, 元素格式为{comment:注释,name: sku_id,Name: skuId,NAME: SkuId,Field:表示字段的注解,Type:表示JS类型}
|
|
130
|
+
id_names // 数组, 只有主键, 元素是列名字符串,格式是 sku_id,sku_name
|
|
131
|
+
IdNames // 数组, 只有主键, 元素是列名字符串,格式是 skuId,skuName
|
|
132
|
+
id_names_join // 字符串,列名join的字符串,格式是 "sku_id,sku_name"
|
|
133
|
+
IdNames_join // 字符串,列名join的字符串,格式是 "skuId,skuName"
|
|
134
|
+
|
|
135
|
+
modelName // 推断出的模块名称,可能为空字符串, 如果表名为event_main_info, 则模块为 event
|
|
136
|
+
modelPath // 模块名称实际就影响访问路径,所以这里会直接拼好controller的模块访问路径,如果模块为空,则该属性就是空字符串,否则是 /模块名称/
|
|
137
|
+
|
|
138
|
+
logicDelete // 逻辑删除的查询条件,可以附加在sql条件的末尾,可能是空的
|
|
128
139
|
-----
|
|
129
140
|
命令 table1,table2,table3:模块名称
|
|
130
141
|
table=. 表示扫描全库表
|
|
@@ -136,6 +147,20 @@ try {
|
|
|
136
147
|
const outputs = new Set();
|
|
137
148
|
const _configData = fs.readFileSync(config, { encoding: 'utf-8' }).toString();
|
|
138
149
|
const configData = JSON.parse(_configData);
|
|
150
|
+
configData.skipColumns ?? (configData.skipColumns = []);
|
|
151
|
+
configData.command ?? (configData.command = {});
|
|
152
|
+
configData.commands ?? (configData.commands = {});
|
|
153
|
+
configData.output ?? (configData.output = '');
|
|
154
|
+
configData.id ?? (configData.id = 'uuidShort: true, notNull: true, uuid: true');
|
|
155
|
+
configData.logicDeleteK ?? (configData.logicDeleteK = '');
|
|
156
|
+
configData.logicDeleteV ?? (configData.logicDeleteV = 0);
|
|
157
|
+
configData.NotlogicDeleteV ?? (configData.NotlogicDeleteV = 0);
|
|
158
|
+
if (!configData.host || !configData.port || !configData.user || !configData.password || !configData.database) {
|
|
159
|
+
console.error(`[错误]配置文件缺少必要的参数: host, port, user, password, database`);
|
|
160
|
+
}
|
|
161
|
+
if (!fs.existsSync(templatePath)) {
|
|
162
|
+
console.error(`[错误]模板文件夹不存在,请在项目根目录创建code-template文件夹`);
|
|
163
|
+
}
|
|
139
164
|
const templates = Object.fromEntries(fs.readdirSync(templatePath).map(r => [path.basename(r, '.mu'), fs.readFileSync(path.join(templatePath, r), { encoding: 'utf-8' }).toString()]));
|
|
140
165
|
const pool = createPool({
|
|
141
166
|
host: configData.host,
|
|
@@ -275,21 +300,26 @@ try {
|
|
|
275
300
|
splitName,
|
|
276
301
|
SplitName,
|
|
277
302
|
columns,
|
|
278
|
-
|
|
303
|
+
column_names: columns?.map(i => i.name),
|
|
279
304
|
ColumnNames: columns?.map(i => i.Name),
|
|
280
|
-
|
|
305
|
+
column_names_join: columns?.map(i => i.name).join(','),
|
|
281
306
|
ColumnNames_join: columns?.map(i => `${i.name} ${i.Name}`).join(','),
|
|
282
|
-
|
|
307
|
+
column_names_joinT: columns?.map(i => `t.${i.name}`).join(','),
|
|
283
308
|
ColumnNames_joinT: columns?.map(i => `t.${i.name} ${i.Name}`).join(','),
|
|
284
309
|
columns_no_id: columns?.filter(i => !i.id),
|
|
285
|
-
|
|
310
|
+
column_names_no_id: columns?.filter(i => !i.id).map(i => i.name),
|
|
286
311
|
ColumnNames_no_id: columns?.filter(i => !i.id).map(i => i.Name),
|
|
287
|
-
|
|
312
|
+
column_names_no_id_join: columns?.filter(i => !i.id).map(i => i.name).join(','),
|
|
288
313
|
ColumnNames_no_id_join: columns?.filter(i => !i.id).map(i => i.Name).join(','),
|
|
314
|
+
columns_no_skip: columns?.filter(i => !configData.skipColumns.includes(i.name)),
|
|
315
|
+
column_names_no_skip: columns?.filter(i => !configData.skipColumns.includes(i.name)).map(i => i.name),
|
|
316
|
+
ColumnNames_no_skip: columns?.filter(i => !configData.skipColumns.includes(i.name)).map(i => i.Name),
|
|
317
|
+
column_names_no_skip_join: columns?.filter(i => !configData.skipColumns.includes(i.name)).map(i => i.name).join(','),
|
|
318
|
+
ColumnNames_no_skip_join: columns?.filter(i => !configData.skipColumns.includes(i.name)).map(i => i.Name).join(','),
|
|
289
319
|
ids: columns?.filter(i => i.id),
|
|
290
|
-
|
|
320
|
+
id_names: columns?.filter(i => i.id).map(i => i.name),
|
|
291
321
|
IdNames: columns?.filter(i => i.id).map(i => i.Name),
|
|
292
|
-
|
|
322
|
+
id_names_join: columns?.filter(i => i.id).map(i => i.name).join(','),
|
|
293
323
|
IdNames_join: columns?.filter(i => i.id).map(i => i.Name).join(','),
|
|
294
324
|
modelName,
|
|
295
325
|
modelPath,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "baja-lite",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.49",
|
|
4
4
|
"description": "some util for self",
|
|
5
5
|
"homepage": "https://github.com/void-soul/baja-lite",
|
|
6
6
|
"repository": {
|
|
@@ -44,12 +44,12 @@
|
|
|
44
44
|
"iterare": "1.2.1",
|
|
45
45
|
"lodash.get": "4.4.2",
|
|
46
46
|
"mustache": "4.2.0",
|
|
47
|
-
"pino": "9.
|
|
47
|
+
"pino": "9.7.0",
|
|
48
48
|
"pino-pretty": "13.0.0",
|
|
49
49
|
"reflect-metadata": "0.2.2",
|
|
50
50
|
"request": "2.88.2",
|
|
51
51
|
"request-promise": "4.2.6",
|
|
52
|
-
"sql-formatter": "15.6.
|
|
52
|
+
"sql-formatter": "15.6.2",
|
|
53
53
|
"sqlstring": "2.3.3",
|
|
54
54
|
"tslib": "2.8.1"
|
|
55
55
|
},
|
|
@@ -57,20 +57,20 @@
|
|
|
57
57
|
"@types/better-sqlite3": "7.6.13",
|
|
58
58
|
"@types/lodash.get": "4.4.9",
|
|
59
59
|
"@types/mustache": "4.2.6",
|
|
60
|
-
"@types/node": "22.15.
|
|
60
|
+
"@types/node": "22.15.21",
|
|
61
61
|
"@types/pg-pool": "2.0.6",
|
|
62
62
|
"@types/shelljs": "0.8.16",
|
|
63
63
|
"@types/sqlstring": "2.3.2",
|
|
64
|
-
"@typescript-eslint/eslint-plugin": "8.32.
|
|
65
|
-
"@typescript-eslint/parser": "8.32.
|
|
64
|
+
"@typescript-eslint/eslint-plugin": "8.32.1",
|
|
65
|
+
"@typescript-eslint/parser": "8.32.1",
|
|
66
66
|
"better-sqlite3": "11.10.0",
|
|
67
67
|
"ioredis": "5.6.1",
|
|
68
68
|
"mongodb": "6.16.0",
|
|
69
69
|
"mysql2": "3.14.1",
|
|
70
|
-
"pg": "8.
|
|
71
|
-
"pg-pool": "3.
|
|
70
|
+
"pg": "8.16.0",
|
|
71
|
+
"pg-pool": "3.10.0",
|
|
72
72
|
"redlock": "5.0.0-beta.2",
|
|
73
|
-
"shelljs": "0.
|
|
73
|
+
"shelljs": "0.10.0",
|
|
74
74
|
"typescript": "5.8.3"
|
|
75
75
|
},
|
|
76
76
|
"engines": {
|