@rdyl/node-mysql 0.2.6 → 0.2.8

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,4 +1,4 @@
1
- ## 0.2.5 (2025-08-29)
1
+ ## 0.2.8 (2025-12-31)
2
2
 
3
3
 
4
4
 
package/dist/helper.js CHANGED
@@ -75,8 +75,10 @@ exports.MysqlUpdater = exports.MysqlDeleter = exports.MysqlInserter = exports.My
75
75
  var interface_1 = require("./interface");
76
76
  var utils_1 = require("./utils");
77
77
  var BaseHelper = /** @class */ (function () {
78
- function BaseHelper(table) {
78
+ function BaseHelper(table, related) {
79
+ if (related === void 0) { related = {}; }
79
80
  this.table = table;
81
+ this.related = related;
80
82
  this.selects = [];
81
83
  this.options = {
82
84
  limit: 0,
@@ -86,6 +88,29 @@ var BaseHelper = /** @class */ (function () {
86
88
  // @ts-ignore
87
89
  this.pool = global.$MysqlPool;
88
90
  }
91
+ Object.defineProperty(BaseHelper.prototype, "relatedStat", {
92
+ get: function () {
93
+ var _this = this;
94
+ var relatedFields = Object.keys(this.related);
95
+ var sqlList = [];
96
+ if (relatedFields.length) {
97
+ /* 单个角色对象 */
98
+ relatedFields.forEach(function (n) {
99
+ var item = _this.related[n];
100
+ // @ts-ignore
101
+ var _a = (global.$MysqlTable[item.table] || {}).fields, fields = _a === void 0 ? [] : _a;
102
+ sqlList.push("COALESCE(\n (\n SELECT JSON_OBJECT(".concat(fields
103
+ .map(function (e) { return "".concat(e, ": ").concat(item.table, ".").concat(e); })
104
+ .join(","), ")\n FROM ").concat(item.relatedTable, "\n JOIN ").concat(item.table, " ON ").concat(item.table, ".id = ").concat(item.relatedTable, ".").concat(item.table, "_id\n WHERE ").concat(item.relatedTable, ".").concat(_this.table, "_id = ").concat(_this.table, ".id\n LIMIT 1\n ),\n JSON_OBJECT()\n) AS role"));
105
+ });
106
+ }
107
+ return {
108
+ sql: sqlList.join(",\n"),
109
+ };
110
+ },
111
+ enumerable: false,
112
+ configurable: true
113
+ });
89
114
  Object.defineProperty(BaseHelper.prototype, "selectStat", {
90
115
  get: function () {
91
116
  var sql = "";
@@ -161,8 +186,8 @@ var BaseHelper = /** @class */ (function () {
161
186
  /** @description 查询数据 */
162
187
  var MysqlSelector = /** @class */ (function (_super) {
163
188
  __extends(MysqlSelector, _super);
164
- function MysqlSelector(d) {
165
- return _super.call(this, d) || this;
189
+ function MysqlSelector(table, related) {
190
+ return _super.call(this, table, related) || this;
166
191
  }
167
192
  Object.defineProperty(MysqlSelector.prototype, "sql", {
168
193
  get: function () {
@@ -313,7 +338,7 @@ var MysqlInserter = /** @class */ (function (_super) {
313
338
  get: function () {
314
339
  return "INSERT INTO ".concat(this.table, " (").concat(this.fields
315
340
  .map(utils_1.Parser.toDbName)
316
- .join(", "), ") \nVALUES (").concat(this.fields.map(function () { return "?"; }).join(", "), ")");
341
+ .join(", "), ") VALUES (").concat(this.fields.map(function () { return "?"; }).join(", "), ")");
317
342
  },
318
343
  enumerable: false,
319
344
  configurable: true
@@ -448,7 +473,7 @@ var MysqlUpdater = /** @class */ (function (_super) {
448
473
  Object.defineProperty(MysqlUpdater.prototype, "updateStat", {
449
474
  get: function () {
450
475
  var updateFields = this.updateFields;
451
- var keys = Object.keys(updateFields).filter(function (k) { return k !== "id" && k !== "createTime"; });
476
+ var keys = Object.keys(updateFields).filter(function (k) { return k !== "id" && k !== "createAt"; });
452
477
  var sql = "";
453
478
  var values = [];
454
479
  if (keys.length > 0) {
package/dist/meta.js CHANGED
@@ -45,13 +45,16 @@ var utils_1 = require("./utils");
45
45
  * 使用$toMap时 不返回的字段名前面需要加$
46
46
  */
47
47
  var MysqlDbSchema = /** @class */ (function () {
48
- function MysqlDbSchema($table, $mapExFields) {
49
- if ($mapExFields === void 0) { $mapExFields = []; }
48
+ function MysqlDbSchema($table, opts) {
50
49
  this.$table = $table;
51
- this.$mapExFields = $mapExFields;
52
50
  this.id = "";
53
- this.createTime = utils_1.Parser.easyDate();
54
- this.updateTime = utils_1.Parser.easyDate();
51
+ this.createAt = utils_1.Parser.easyDate();
52
+ this.updateAt = utils_1.Parser.easyDate();
53
+ this.$mapExFields = [];
54
+ this.$related = {};
55
+ var _a = opts || {}, _b = _a.exFields, exFields = _b === void 0 ? [] : _b, _c = _a.related, related = _c === void 0 ? {} : _c;
56
+ this.$mapExFields = exFields;
57
+ this.$related = related;
55
58
  }
56
59
  Object.defineProperty(MysqlDbSchema.prototype, "$toJson", {
57
60
  get: function () {
@@ -103,7 +106,7 @@ var MysqlDbSchema = /** @class */ (function () {
103
106
  return __generator(this, function (_a) {
104
107
  switch (_a.label) {
105
108
  case 0:
106
- selector = new helper_1.MysqlSelector(this.$table);
109
+ selector = new helper_1.MysqlSelector(this.$table, this.$related);
107
110
  return [4 /*yield*/, selector.getById(this.id)];
108
111
  case 1:
109
112
  res = _a.sent();
package/dist/utils.js CHANGED
@@ -95,13 +95,13 @@ exports.Parser = {
95
95
  case 0:
96
96
  pool = global.$MysqlPool;
97
97
  _a = global.$MysqlTable[table], fields = _a.fields, json = _a.json;
98
- return [4 /*yield*/, pool.execute("\n CREATE TABLE IF NOT EXISTS `".concat(table, "` (\n id BIGINT AUTO_INCREMENT PRIMARY KEY,\n create_time VARCHAR(255),\n update_time VARCHAR(255)\n )\n "))];
98
+ return [4 /*yield*/, pool.execute("\n CREATE TABLE IF NOT EXISTS `".concat(table, "` (\n id BIGINT AUTO_INCREMENT PRIMARY KEY,\n create_at VARCHAR(255),\n update_at VARCHAR(255)\n )\n "))];
99
99
  case 1:
100
100
  _c.sent();
101
101
  return [4 /*yield*/, pool.execute("SELECT COLUMN_NAME \n FROM INFORMATION_SCHEMA.COLUMNS \n WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = ?", [table])];
102
102
  case 2:
103
103
  rows = (_c.sent())[0];
104
- ex = ["id", "create_time", "update_time"];
104
+ ex = ["id", "create_at", "update_at"];
105
105
  columns = rows.map(function (r) { return r.COLUMN_NAME; });
106
106
  fieldKeys = fields.map(exports.Parser.toDbName);
107
107
  add = fieldKeys.filter(function (c) { return !columns.includes(c); });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rdyl/node-mysql",
3
- "version": "0.2.6",
3
+ "version": "0.2.8",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "types": "types/index.d.ts",
package/types/helper.d.ts CHANGED
@@ -2,10 +2,14 @@ import mysql from "mysql2/promise";
2
2
  import { SortKey, SelectOption, OptionsType } from "./interface";
3
3
  declare class BaseHelper {
4
4
  table: string;
5
+ private related;
5
6
  pool: mysql.Pool;
6
- constructor(table: string);
7
+ constructor(table: string, related?: Record<string, MysqlRelatedField>);
7
8
  selects: SelectOption[];
8
9
  options: OptionsType;
10
+ get relatedStat(): {
11
+ sql: string;
12
+ };
9
13
  get selectStat(): {
10
14
  sql: string;
11
15
  values: unknown[];
@@ -20,7 +24,7 @@ declare class BaseHelper {
20
24
  }
21
25
  /** @description 查询数据 */
22
26
  export declare class MysqlSelector<T = object> extends BaseHelper {
23
- constructor(d: string);
27
+ constructor(table: string, related?: Record<string, MysqlRelatedField>);
24
28
  get sql(): string;
25
29
  get countSql(): string;
26
30
  total(): Promise<number>;
package/types/meta.d.ts CHANGED
@@ -3,12 +3,16 @@
3
3
  * 使用$toMap时 不返回的字段名前面需要加$
4
4
  */
5
5
  export declare class MysqlDbSchema implements MysqlDbBaseType {
6
- private $table;
7
- private $mapExFields;
6
+ readonly $table: string;
8
7
  id: number | string;
9
- createTime: string;
10
- updateTime: string;
11
- constructor($table: string, $mapExFields?: string[]);
8
+ createAt: string;
9
+ updateAt: string;
10
+ readonly $mapExFields: string[];
11
+ readonly $related: Record<string, MysqlRelatedField>;
12
+ constructor($table: string, opts?: {
13
+ exFields?: string[];
14
+ related?: Record<string, MysqlRelatedField>;
15
+ });
12
16
  get $toJson(): any;
13
17
  get $toMap(): any;
14
18
  get $fields(): string[];
package/types/type.d.ts CHANGED
@@ -2,8 +2,14 @@ type DbId = number | string;
2
2
 
3
3
  interface MysqlDbBaseType {
4
4
  id: DbId;
5
- createTime: string;
6
- updateTime: string;
5
+ createAt: string;
6
+ updateAt: string;
7
7
  }
8
8
 
9
9
  type MysqlDbResultStat = "exist" | "ok" | "fail";
10
+
11
+ type MysqlRelatedField = {
12
+ table: string;
13
+ relatedTable: string;
14
+ isArray?: boolean;
15
+ };