@zenorm/generate 1.6.0 → 1.8.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/CHANGELOG.md CHANGED
@@ -1,34 +1,40 @@
1
- # Changelog
2
-
3
- ## [1.6.0] - 2023-5-18
4
- - 使用构造器提前初始化对象的属性,用于优化 v8 对象缓存机制
5
-
6
- ## [1.5.0] - 2023-4-19
7
- - 更新: update 方法使用 UpdateRow<M>
8
-
9
- ## [1.4.0] - 2023-3-29
10
- - createRepositoryQuery 添加表描述
11
- - 如果没有主键 pkType = never
12
-
13
- ## [1.3.1] - 2023-3-27
14
- - fix: windows 换行符问题
15
-
16
- ## [1.3.0] - 2023-3-25
17
- - update: bindQuery 增加 save, update, delete
18
-
19
- ## [1.2.0] - 2023-3-24
20
- - update: bindQuery 改为函数形式
21
-
22
- ## [1.1.1] - 2023-3-24
23
- - fix: 生成格式少个空格和空行
24
- - update: bindQuery 增加 count 和 exists
25
- - 补充注释说明
26
-
27
- ## [1.1.0] - 2023-3-24
28
- - 新增: 绑定静态 Query
29
-
30
- ## [1.0.0] - 2023-3-23
31
- - 完善
32
-
33
- ## [0.0.1] - 2023-3-23
34
- - zenorm@3.25.0 分离为独立项目
1
+ # Changelog
2
+
3
+ ## [1.8.0] - 2023-5-18
4
+ - 撤销 [1.6.0] 的修改,动态 as 功能无法满足需求
5
+
6
+ ## [1.7.0] - 2023-5-18
7
+ - 构造器增加 pkval 参数
8
+
9
+ ## [1.6.0] - 2023-5-18
10
+ - 使用构造器提前初始化对象的属性,用于优化 v8 对象缓存机制
11
+
12
+ ## [1.5.0] - 2023-4-19
13
+ - 更新: update 方法使用 UpdateRow<M>
14
+
15
+ ## [1.4.0] - 2023-3-29
16
+ - createRepositoryQuery 添加表描述
17
+ - 如果没有主键 pkType = never
18
+
19
+ ## [1.3.1] - 2023-3-27
20
+ - fix: windows 换行符问题
21
+
22
+ ## [1.3.0] - 2023-3-25
23
+ - update: bindQuery 增加 save, update, delete
24
+
25
+ ## [1.2.0] - 2023-3-24
26
+ - update: bindQuery 改为函数形式
27
+
28
+ ## [1.1.1] - 2023-3-24
29
+ - fix: 生成格式少个空格和空行
30
+ - update: bindQuery 增加 count 和 exists
31
+ - 补充注释说明
32
+
33
+ ## [1.1.0] - 2023-3-24
34
+ - 新增: 绑定静态 Query
35
+
36
+ ## [1.0.0] - 2023-3-23
37
+ - 完善
38
+
39
+ ## [0.0.1] - 2023-3-23
40
+ - 从 zenorm@3.25.0 分离为独立项目
package/README.md CHANGED
@@ -1,24 +1,24 @@
1
- # ZenORM Generate
2
-
3
- [ZenORM](https://www.npmjs.com/package/zenorm) Table Structure Code Generation Tool
4
-
5
- 表结构代码生成工具
6
-
7
- ## Generate Config - 代码生成配置
8
-
9
- | 配置项 | 类型 | 默认值 | 说明
10
- | ----- | --- | ----- | ----
11
- | host | `string` | 无 | 目标数据库地址
12
- | port | `number` | 无 | 数据库端口
13
- | user | `string` | 无 | 数据库用户名
14
- | password | `string` | 无 | 数据库密码
15
- | database | `string` | 无 | 数据库名
16
- | outputDir | `string` | `'./src/model'` | 代码输出目录
17
- | tablesFilename | `string` | `'_tables'` | 生成数据库表结构文件名
18
- | repositoriesFilename | `string` | `'_repositories'` | 生成 repositories 文件名
19
- | globalFilename | `string` | 无 | 全局文件名 - 如果设置所有表将继承于此 - 例如设置为:'_global' - 如果文件不存在则自动创建
20
- | bindQuery | `boolean` | `false` | repositories 文件生成 bindQuery(query: QueryParam) 方法用于设置模型的 Query 源 - 并生成模型的静态 Repository 方法
21
- | generateRepositories | `boolean` | `false` | 是否生成 Repositories 类 - 通常用于多租户模式做数据库前置绑定 `Query` 对象
22
- | declareRepositoriesToModules | `string[]` | 无 | 是否需将 Repositories 实例定义到目标模块中 - 例如: `["@zenweb/core.Core.repositories"]`
23
- | filter | `string` | 无 | 表过滤规则正则
24
- | include | `string` | 无 | 表包含规则正则
1
+ # ZenORM Generate
2
+
3
+ [ZenORM](https://www.npmjs.com/package/zenorm) Table Structure Code Generation Tool
4
+
5
+ 表结构代码生成工具
6
+
7
+ ## Generate Config - 代码生成配置
8
+
9
+ | 配置项 | 类型 | 默认值 | 说明
10
+ | ----- | --- | ----- | ----
11
+ | host | `string` | 无 | 目标数据库地址
12
+ | port | `number` | 无 | 数据库端口
13
+ | user | `string` | 无 | 数据库用户名
14
+ | password | `string` | 无 | 数据库密码
15
+ | database | `string` | 无 | 数据库名
16
+ | outputDir | `string` | `'./src/model'` | 代码输出目录
17
+ | tablesFilename | `string` | `'_tables'` | 生成数据库表结构文件名
18
+ | repositoriesFilename | `string` | `'_repositories'` | 生成 repositories 文件名
19
+ | globalFilename | `string` | 无 | 全局文件名 - 如果设置所有表将继承于此 - 例如设置为:'_global' - 如果文件不存在则自动创建
20
+ | bindQuery | `boolean` | `false` | repositories 文件生成 bindQuery(query: QueryParam) 方法用于设置模型的 Query 源 - 并生成模型的静态 Repository 方法
21
+ | generateRepositories | `boolean` | `false` | 是否生成 Repositories 类 - 通常用于多租户模式做数据库前置绑定 `Query` 对象
22
+ | declareRepositoriesToModules | `string[]` | 无 | 是否需将 Repositories 实例定义到目标模块中 - 例如: `["@zenweb/core.Core.repositories"]`
23
+ | filter | `string` | 无 | 表过滤规则正则
24
+ | include | `string` | 无 | 表包含规则正则
package/dist/generate.js CHANGED
@@ -18,7 +18,6 @@ async function generate(tables, cfg) {
18
18
  await (0, utils_1.checkFileDir)(outputDir);
19
19
  console.log('database:', config.database);
20
20
  const remark = [
21
- `// @ts-nocheck`,
22
21
  '// zenorm 自动生成文件',
23
22
  '// 请不要修改此文件,因为此文件在每次重新生成数据库结构时会被覆盖',
24
23
  `// create at: ${(0, utils_1.currentDatetime)()}`,
@@ -67,11 +66,8 @@ async function generate(tables, cfg) {
67
66
  structs.push(` static columns = ${JSON.stringify(columns)};`);
68
67
  structs.push(...props);
69
68
  structs.push('');
70
- // 使用构造器提前初始化对象的属性,用于优化 v8 对象缓存机制
71
- structs.push(` constructor(data: Partial<${className}Table> = {}) {`);
72
- for (const c of columns) {
73
- structs.push(` this.${c} = data.${c};`);
74
- }
69
+ structs.push(` constructor(data?: object) {`);
70
+ structs.push(` data && Object.assign(this, data);`);
75
71
  structs.push(` }`);
76
72
  structs.push('}');
77
73
  structs.push('');
package/package.json CHANGED
@@ -1,44 +1,44 @@
1
- {
2
- "name": "@zenorm/generate",
3
- "description": "Easy ORM, easy query. easy typing! Auto generate typescript declaration.",
4
- "version": "1.6.0",
5
- "exports": "./dist/index.js",
6
- "types": "./dist/index.d.ts",
7
- "homepage": "https://zenorm.node.ltd",
8
- "author": "YeFei <316606233@qq.com>",
9
- "license": "MIT",
10
- "bin": {
11
- "zenorm-generate": "./dist/bin/zenorm-generate.js"
12
- },
13
- "files": [
14
- "dist"
15
- ],
16
- "scripts": {
17
- "build": "rimraf dist && tsc",
18
- "prepublishOnly": "npm run build",
19
- "gen": "cd test && ts-node ../src/bin/zenorm-generate.ts config.json",
20
- "t1": "cd test && cross-env DEBUG=* ts-node t1"
21
- },
22
- "keywords": [
23
- "mysql",
24
- "query",
25
- "model",
26
- "types",
27
- "generate",
28
- "database"
29
- ],
30
- "devDependencies": {
31
- "@types/node": "^12.20.41",
32
- "@zenorm/generate-mysql": "^1.3.0",
33
- "cross-env": "^7.0.3",
34
- "mysql-easy-query": "^3.13.0",
35
- "rimraf": "^4.4.1",
36
- "ts-node": "^10.9.1",
37
- "typescript": "^5.0.4",
38
- "zenorm": "^3.31.0"
39
- },
40
- "dependencies": {
41
- "pascal-case": "^3.1.2",
42
- "snake-case": "^3.0.4"
43
- }
44
- }
1
+ {
2
+ "name": "@zenorm/generate",
3
+ "description": "Easy ORM, easy query. easy typing! Auto generate typescript declaration.",
4
+ "version": "1.8.0",
5
+ "exports": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "homepage": "https://zenorm.node.ltd",
8
+ "author": "YeFei <316606233@qq.com>",
9
+ "license": "MIT",
10
+ "bin": {
11
+ "zenorm-generate": "./dist/bin/zenorm-generate.js"
12
+ },
13
+ "files": [
14
+ "dist"
15
+ ],
16
+ "scripts": {
17
+ "build": "rimraf dist && tsc",
18
+ "prepublishOnly": "npm run build",
19
+ "gen": "cd test && ts-node ../src/bin/zenorm-generate.ts config.json",
20
+ "t1": "cd test && cross-env DEBUG=* ts-node t1"
21
+ },
22
+ "keywords": [
23
+ "mysql",
24
+ "query",
25
+ "model",
26
+ "types",
27
+ "generate",
28
+ "database"
29
+ ],
30
+ "devDependencies": {
31
+ "@types/node": "^12.20.41",
32
+ "@zenorm/generate-mysql": "^1.3.0",
33
+ "cross-env": "^7.0.3",
34
+ "mysql-easy-query": "^3.13.0",
35
+ "rimraf": "^4.4.1",
36
+ "ts-node": "^10.9.1",
37
+ "typescript": "^5.0.4",
38
+ "zenorm": "^3.31.0"
39
+ },
40
+ "dependencies": {
41
+ "pascal-case": "^3.1.2",
42
+ "snake-case": "^3.0.4"
43
+ }
44
+ }