@asla/yoursql 0.9.0 → 0.9.2

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.
@@ -24,7 +24,7 @@ class DbPoolTransaction extends DbQuery {
24
24
  .then((conn) => {
25
25
  this.#conn = conn;
26
26
  const begin = "BEGIN" + (this.mode ? " TRANSACTION ISOLATION LEVEL " + this.mode : "");
27
- const promise = conn.multipleQuery([begin, sql]);
27
+ const promise = conn.multipleQuery(sql instanceof Array ? [begin, ...sql] : [begin, sql]);
28
28
  this.#pending = promise;
29
29
  this.#query = this.#queryAfter;
30
30
  return promise;
@@ -17,16 +17,11 @@ export declare abstract class DbQuery implements DbQueryBase {
17
17
  /** 单语句查询,只返回第一行。如果查询没有返回行,则抛出异常。 */
18
18
  queryFirstRow<T = any>(sql: SqlStatementDataset<T>): Promise<T>;
19
19
  queryFirstRow<T = any>(sql: SqlLike): Promise<T>;
20
- /**
21
- * 查询行
22
- * 不应查询单条语句,否则返回错误值
23
- */
24
- multipleQueryRows<T extends any[] = any[]>(sql: SqlStatementDataset<T>): Promise<T[]>;
25
20
  /**
26
21
  * 查询行
27
22
  * 不应查询单语句,否则返回错误值
28
23
  */
29
- multipleQueryRows<T extends any[] = any[]>(sql: SqlLike): Promise<T[]>;
24
+ multipleQueryRows<T extends any[] = any[]>(sql: SqlLike | SqlLike[]): Promise<T[]>;
30
25
  /**
31
26
  * 指定某一列为key,返回 key 到 row 的映射
32
27
  * 单语句查询,不应查询多语句,否则返回错误值
@@ -5,27 +5,31 @@
5
5
  class DbQuery {
6
6
  /** 单语句查询受影响的行 */
7
7
  queryCount(sql) {
8
- return this.query(sql.toString()).then((res) => {
8
+ return this.query(sql).then((res) => {
9
9
  if (res.rowCount === null)
10
10
  return 0;
11
11
  return res.rowCount;
12
12
  });
13
13
  }
14
14
  queryRows(sql) {
15
- return this.query(sql.toString()).then((res) => res.rows);
15
+ return this.query(sql).then((res) => res.rows);
16
16
  }
17
17
  queryFirstRow(sql) {
18
- return this.query(sql.toString()).then(({ rows, rowCount }) => {
18
+ return this.query(sql).then(({ rows, rowCount }) => {
19
19
  if (rows.length === 0)
20
20
  throw new Error("Query did not return any rows");
21
21
  return rows[0];
22
22
  });
23
23
  }
24
+ /**
25
+ * 查询行
26
+ * 不应查询单语句,否则返回错误值
27
+ */
24
28
  multipleQueryRows(sql) {
25
- return this.multipleQuery(sql.toString()).then((res) => res.map((item) => item.rows ?? []));
29
+ return this.multipleQuery(sql).then((res) => res.map((item) => item.rows ?? []));
26
30
  }
27
31
  async queryMap(sql, key) {
28
- const { rows } = await this.query(sql.toString());
32
+ const { rows } = await this.query(sql);
29
33
  let map = new Map();
30
34
  for (let i = 0; i < rows.length; i++) {
31
35
  map.set(rows[i][key], rows[i]);
@@ -13,7 +13,7 @@ class SqlStatementDataset extends SqlStatement {
13
13
  * 如果是 选择语句,则是 (xxx)
14
14
  */
15
15
  toSelect() {
16
- return "(" + this.toString() + ")";
16
+ return "(" + this.genSql() + ")";
17
17
  }
18
18
  }
19
19
  /** @public */
@@ -18,7 +18,7 @@ class SqlChainModify extends SqlStatement {
18
18
  else {
19
19
  columnsStr = selectColumns(returns);
20
20
  }
21
- let sql = this.toString() + "\nRETURNING " + columnsStr;
21
+ let sql = this.genSql() + "\nRETURNING " + columnsStr;
22
22
  return new SqlTextStatementDataset(sql);
23
23
  }
24
24
  onConflict(onConflict) {
@@ -26,12 +26,12 @@ class SqlChainModify extends SqlStatement {
26
26
  onConflict = onConflict();
27
27
  if (typeof onConflict !== "string")
28
28
  onConflict = onConflict.join(",");
29
- let sql = this.toString() + `\nON CONFLICT (${onConflict})`;
29
+ let sql = this.genSql() + `\nON CONFLICT (${onConflict})`;
30
30
  return new SqlInsertConflictBranch(sql);
31
31
  }
32
32
  where(where$1) {
33
33
  const sql = where(where$1);
34
- return new SqlChainModify(this.toString() + sql);
34
+ return new SqlChainModify(this.genSql() + sql);
35
35
  }
36
36
  genSql() {
37
37
  return this.sql;
@@ -8,10 +8,10 @@ var _a;
8
8
  */
9
9
  class SqlSelectChain extends SqlTextStatementDataset {
10
10
  where(param) {
11
- return new SqlSelectChain(this.toString() + where(param));
11
+ return new SqlSelectChain(this.genSql() + where(param));
12
12
  }
13
13
  groupBy(columns) {
14
- let sql = this.toString();
14
+ let sql = this.genSql();
15
15
  if (typeof columns === "string")
16
16
  sql += " GROUP BY " + columns;
17
17
  else
@@ -19,13 +19,13 @@ class SqlSelectChain extends SqlTextStatementDataset {
19
19
  return new SqlSelectChain(sql);
20
20
  }
21
21
  having(param) {
22
- return new SqlSelectChain(this.toString() + having(param));
22
+ return new SqlSelectChain(this.genSql() + having(param));
23
23
  }
24
24
  orderBy(param) {
25
- return new SqlSelectChain(this.toString() + orderBy(param));
25
+ return new SqlSelectChain(this.genSql() + orderBy(param));
26
26
  }
27
27
  limit(limit, offset) {
28
- let sql = this.toString();
28
+ let sql = this.genSql();
29
29
  let type;
30
30
  if (limit) {
31
31
  type = typeof limit;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@asla/yoursql",
3
- "version": "0.9.0",
3
+ "version": "0.9.2",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "types": "./dist/mod.d.ts",