@ignisia/sql 0.3.0 → 0.4.1

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.
Files changed (108) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/column/index.js +2 -9
  3. package/dist/cjs/database/alter.d.cts +2 -2
  4. package/dist/cjs/database/column.d.cts +2 -2
  5. package/dist/cjs/database/contract.d.cts +2 -2
  6. package/dist/cjs/database/index.d.cts +2 -2
  7. package/dist/cjs/database/index.js +1 -1
  8. package/dist/cjs/database/table.d.cts +2 -2
  9. package/dist/cjs/database/types.d.cts +1 -1
  10. package/dist/cjs/database/wrapper.d.cts +3 -3
  11. package/dist/cjs/database/wrapper.js +1 -17
  12. package/dist/cjs/{index-2jl8MRfX.d.cts → index-BjgeY76W.d.cts} +2 -2
  13. package/dist/cjs/{index-CnQVnCEI.d.cts → index-K07efKgt.d.cts} +194 -86
  14. package/dist/cjs/index.d.cts +2 -2
  15. package/dist/cjs/migration/index.d.cts +2 -2
  16. package/dist/cjs/migration/type.d.cts +2 -2
  17. package/dist/cjs/query/ast.d.cts +8 -0
  18. package/dist/cjs/query/ast.js +2 -0
  19. package/dist/cjs/query/builder.d.cts +5 -5
  20. package/dist/cjs/query/builder.js +8 -10
  21. package/dist/cjs/query/compiler.d.cts +13 -0
  22. package/dist/cjs/query/compiler.js +114 -0
  23. package/dist/cjs/query/condition/common.d.cts +46 -0
  24. package/dist/cjs/query/condition/common.js +50 -0
  25. package/dist/cjs/query/condition/core.d.cts +8 -0
  26. package/dist/cjs/query/condition/core.js +91 -0
  27. package/dist/cjs/query/condition/index.d.cts +10 -0
  28. package/dist/cjs/query/condition/index.js +26 -0
  29. package/dist/cjs/query/condition/not.d.cts +46 -0
  30. package/dist/cjs/query/condition/not.js +51 -0
  31. package/dist/cjs/query/constants.d.cts +31 -6
  32. package/dist/cjs/query/constants.js +30 -5
  33. package/dist/cjs/query/contract.d.cts +2 -2
  34. package/dist/cjs/query/explain.d.cts +12 -0
  35. package/dist/cjs/query/explain.js +65 -0
  36. package/dist/cjs/query/helper.d.cts +3 -3
  37. package/dist/cjs/query/helper.js +1 -5
  38. package/dist/cjs/query/index.d.cts +4 -4
  39. package/dist/cjs/query/index.js +57 -72
  40. package/dist/cjs/query/join.d.cts +19 -7
  41. package/dist/cjs/query/join.js +46 -9
  42. package/dist/cjs/query/sql.d.cts +6 -4
  43. package/dist/cjs/query/sql.js +64 -25
  44. package/dist/cjs/query/types.d.cts +2 -2
  45. package/dist/cjs/query/utilities.d.cts +7 -8
  46. package/dist/cjs/query/utilities.js +21 -66
  47. package/dist/cjs/table/index.d.cts +3 -3
  48. package/dist/cjs/table/types.d.cts +2 -2
  49. package/dist/cjs/table/utilities.d.cts +2 -2
  50. package/dist/cjs/types.d.cts +5 -1
  51. package/dist/cjs/utilities.d.cts +2 -1
  52. package/dist/cjs/utilities.js +22 -0
  53. package/dist/esm/column/index.js +3 -10
  54. package/dist/esm/database/alter.d.ts +2 -2
  55. package/dist/esm/database/column.d.ts +2 -2
  56. package/dist/esm/database/contract.d.ts +2 -2
  57. package/dist/esm/database/index.d.ts +2 -2
  58. package/dist/esm/database/index.js +2 -2
  59. package/dist/esm/database/table.d.ts +2 -2
  60. package/dist/esm/database/types.d.ts +1 -1
  61. package/dist/esm/database/wrapper.d.ts +3 -3
  62. package/dist/esm/database/wrapper.js +1 -17
  63. package/dist/esm/{index-BXOAxB_h.d.ts → index-B4y4GiNB.d.ts} +2 -2
  64. package/dist/esm/{index-BdpoD4zk.d.ts → index-CARBkj9h.d.ts} +194 -86
  65. package/dist/esm/index.d.ts +2 -2
  66. package/dist/esm/migration/index.d.ts +2 -2
  67. package/dist/esm/migration/type.d.ts +2 -2
  68. package/dist/esm/query/ast.d.ts +8 -0
  69. package/dist/esm/query/ast.js +1 -0
  70. package/dist/esm/query/builder.d.ts +5 -5
  71. package/dist/esm/query/builder.js +8 -10
  72. package/dist/esm/query/compiler.d.ts +13 -0
  73. package/dist/esm/query/compiler.js +112 -0
  74. package/dist/esm/query/condition/common.d.ts +46 -0
  75. package/dist/esm/query/condition/common.js +45 -0
  76. package/dist/esm/query/condition/core.d.ts +8 -0
  77. package/dist/esm/query/condition/core.js +89 -0
  78. package/dist/esm/query/condition/index.d.ts +10 -0
  79. package/dist/esm/query/condition/index.js +3 -0
  80. package/dist/esm/query/condition/not.d.ts +46 -0
  81. package/dist/esm/query/condition/not.js +46 -0
  82. package/dist/esm/query/constants.d.ts +31 -6
  83. package/dist/esm/query/constants.js +28 -6
  84. package/dist/esm/query/contract.d.ts +2 -2
  85. package/dist/esm/query/explain.d.ts +12 -0
  86. package/dist/esm/query/explain.js +64 -0
  87. package/dist/esm/query/helper.d.ts +3 -3
  88. package/dist/esm/query/helper.js +3 -6
  89. package/dist/esm/query/index.d.ts +4 -4
  90. package/dist/esm/query/index.js +60 -75
  91. package/dist/esm/query/join.d.ts +19 -7
  92. package/dist/esm/query/join.js +45 -9
  93. package/dist/esm/query/sql.d.ts +6 -4
  94. package/dist/esm/query/sql.js +64 -27
  95. package/dist/esm/query/types.d.ts +2 -2
  96. package/dist/esm/query/utilities.d.ts +7 -8
  97. package/dist/esm/query/utilities.js +22 -66
  98. package/dist/esm/table/index.d.ts +3 -3
  99. package/dist/esm/table/types.d.ts +2 -2
  100. package/dist/esm/table/utilities.d.ts +2 -2
  101. package/dist/esm/types.d.ts +5 -1
  102. package/dist/esm/utilities.d.ts +2 -1
  103. package/dist/esm/utilities.js +22 -1
  104. package/package.json +11 -5
  105. package/dist/cjs/query/condition.d.cts +0 -8
  106. package/dist/cjs/query/condition.js +0 -109
  107. package/dist/esm/query/condition.d.ts +0 -8
  108. package/dist/esm/query/condition.js +0 -101
package/README.md CHANGED
@@ -6,6 +6,7 @@ Type-safe SQL query builder for Bun SQL and SQLite.
6
6
 
7
7
  - [Bun](https://bun.sh/)
8
8
  - [PostgreSQL](https://www.postgresql.org/) (optional, only for PostgreSQL dialect)
9
+ - [MySQL](https://www.mysql.com/) (optional, only for MySQL dialect)
9
10
 
10
11
  ## Installation
11
12
 
@@ -21,7 +22,6 @@ import { Table, Column, Database } from '@ignisia/sql';
21
22
  // Define a table
22
23
  const users = Table.define({
23
24
  name: 'users',
24
- dialect: 'postgres',
25
25
  columns: {
26
26
  // Define a column called "id"
27
27
  id: Column.define({
@@ -21,14 +21,7 @@ class Column {
21
21
  if ("values" in options) {
22
22
  this.enums = options.values;
23
23
  }
24
- this.definition = {
25
- autoIncrement: false,
26
- primaryKey: false,
27
- notNull: false,
28
- unique: false,
29
- comment: null,
30
- default: void 0
31
- };
24
+ this.definition = {};
32
25
  }
33
26
  static define(options) {
34
27
  return new Column(options);
@@ -67,7 +60,7 @@ class Column {
67
60
  ...this.length && { length: this.length },
68
61
  ...this.enums.length && { values: this.enums }
69
62
  });
70
- Object.assign(column.definition, utilities.deepClone(this.definition));
63
+ Object.assign(column.definition, utilities.cloneDefinition(this.definition));
71
64
  return column;
72
65
  }
73
66
  toQuery() {
@@ -1,7 +1,7 @@
1
- import { D as Database } from '../index-2jl8MRfX.cjs';
1
+ import { D as Database } from '../index-BjgeY76W.cjs';
2
2
  import { Column } from '../column/index.cjs';
3
3
  import { AcceptedColumnTypes } from '../column/constants.cjs';
4
- import { T as Table, D as DatabaseDefinition } from '../index-CnQVnCEI.cjs';
4
+ import { T as Table, D as DatabaseDefinition } from '../index-K07efKgt.cjs';
5
5
  import { Dialect } from '../table/constants.cjs';
6
6
  import 'bun';
7
7
  import '../query/constants.cjs';
@@ -1,6 +1,6 @@
1
- import { D as Database } from '../index-2jl8MRfX.cjs';
1
+ import { D as Database } from '../index-BjgeY76W.cjs';
2
2
  import { Column } from '../column/index.cjs';
3
- import { T as Table, D as DatabaseDefinition } from '../index-CnQVnCEI.cjs';
3
+ import { T as Table, D as DatabaseDefinition } from '../index-K07efKgt.cjs';
4
4
  import { Dialect } from '../table/constants.cjs';
5
5
  import 'bun';
6
6
  import '../query/constants.cjs';
@@ -1,7 +1,7 @@
1
- export { C as ColumnAlterationContract, T as TableAlterationContract } from '../index-2jl8MRfX.cjs';
1
+ export { C as ColumnAlterationContract, T as TableAlterationContract } from '../index-BjgeY76W.cjs';
2
2
  import '../column/index.cjs';
3
3
  import '../column/constants.cjs';
4
- import '../index-CnQVnCEI.cjs';
4
+ import '../index-K07efKgt.cjs';
5
5
  import '../table/constants.cjs';
6
6
  import 'bun';
7
7
  import '../query/constants.cjs';
@@ -1,9 +1,9 @@
1
1
  import 'bun';
2
2
  import '../column/index.cjs';
3
- import '../index-CnQVnCEI.cjs';
3
+ import '../index-K07efKgt.cjs';
4
4
  import '../query/constants.cjs';
5
5
  import '../table/constants.cjs';
6
- export { D as Database } from '../index-2jl8MRfX.cjs';
6
+ export { D as Database } from '../index-BjgeY76W.cjs';
7
7
  import '../column/constants.cjs';
8
8
  import '../column/types.cjs';
9
9
  import '../types.cjs';
@@ -54,7 +54,7 @@ class Database {
54
54
  this.dropColumnDefault = alter.dropColumnDefault.bind(
55
55
  this
56
56
  );
57
- this.setColumnNotNull = alter.setColumnDefault.bind(
57
+ this.setColumnNotNull = alter.setColumnNotNull.bind(
58
58
  this
59
59
  );
60
60
  this.dropColumnNotNull = alter.dropColumnNotNull.bind(
@@ -1,6 +1,6 @@
1
- import { D as Database } from '../index-2jl8MRfX.cjs';
1
+ import { D as Database } from '../index-BjgeY76W.cjs';
2
2
  import { Column } from '../column/index.cjs';
3
- import { T as Table, D as DatabaseDefinition, a as TimestampOptions, M as MergeTimestampParanoid } from '../index-CnQVnCEI.cjs';
3
+ import { T as Table, D as DatabaseDefinition, h as TimestampOptions, M as MergeTimestampParanoid } from '../index-K07efKgt.cjs';
4
4
  import { Dialect } from '../table/constants.cjs';
5
5
  import 'bun';
6
6
  import '../query/constants.cjs';
@@ -1,6 +1,6 @@
1
1
  import 'bun';
2
2
  import '../column/index.cjs';
3
- export { D as DatabaseDefinition, b as DatabaseDialect, c as DatabaseExecOptions, i as DatabaseOptions, s as MysqlConfig, P as PostgresConfig, r as SqlConfig, S as SqlConfigMapping, d as SqliteConfig } from '../index-CnQVnCEI.cjs';
3
+ export { D as DatabaseDefinition, j as DatabaseDialect, k as DatabaseExecOptions, o as DatabaseOptions, l as MysqlConfig, P as PostgresConfig, x as SqlConfig, i as SqlConfigMapping, m as SqliteConfig } from '../index-K07efKgt.cjs';
4
4
  import '../table/constants.cjs';
5
5
  import '../column/constants.cjs';
6
6
  import '../column/types.cjs';
@@ -1,6 +1,6 @@
1
1
  import { SQL, TransactionSQL } from 'bun';
2
2
  import { Dialect } from '../table/constants.cjs';
3
- import { S as SqlConfigMapping, b as DatabaseDialect, c as DatabaseExecOptions, P as PostgresConfig, d as SqliteConfig } from '../index-CnQVnCEI.cjs';
3
+ import { i as SqlConfigMapping, j as DatabaseDialect, k as DatabaseExecOptions, P as PostgresConfig, l as MysqlConfig, m as SqliteConfig } from '../index-K07efKgt.cjs';
4
4
  import '../column/index.cjs';
5
5
  import '../column/constants.cjs';
6
6
  import '../column/types.cjs';
@@ -22,8 +22,8 @@ declare class BaseSql<DbDialect extends Dialect, Options extends SqlConfigMappin
22
22
  declare class DatabasePsql extends BaseSql<typeof Dialect.POSTGRES, PostgresConfig> {
23
23
  constructor(options: PostgresConfig);
24
24
  }
25
- declare class DatabaseMysql extends BaseSql<typeof Dialect.MYSQL, PostgresConfig> {
26
- constructor(options: PostgresConfig);
25
+ declare class DatabaseMysql extends BaseSql<typeof Dialect.MYSQL, MysqlConfig> {
26
+ constructor(options: MysqlConfig);
27
27
  }
28
28
  declare class DatabaseSqlite extends BaseSql<typeof Dialect.SQLITE, SqliteConfig> {
29
29
  constructor(options: SqliteConfig);
@@ -40,23 +40,7 @@ class BaseSql {
40
40
  if (!options.params) {
41
41
  return client.unsafe(options.sql);
42
42
  }
43
- const params = (options.params ?? []).map((param) => {
44
- if (param === null || typeof param === "string" || typeof param === "number" || typeof param === "boolean" || typeof param === "bigint") {
45
- return param;
46
- }
47
- if (param === void 0) {
48
- return null;
49
- }
50
- if (param instanceof Date) {
51
- return param.toISOString();
52
- }
53
- try {
54
- return JSON.stringify(param);
55
- } catch {
56
- return null;
57
- }
58
- });
59
- return client.unsafe(options.sql, params);
43
+ return client.unsafe(options.sql, options.params);
60
44
  }
61
45
  async transaction(fn) {
62
46
  return this.client.transaction(fn);
@@ -1,6 +1,6 @@
1
1
  import { TransactionSQL } from 'bun';
2
2
  import { Column } from './column/index.cjs';
3
- import { T as Table, D as DatabaseDefinition, a as TimestampOptions, M as MergeTimestampParanoid, h as QuerHooks, b as DatabaseDialect, i as DatabaseOptions, f as QueryBuilder, j as QueryRunHooks } from './index-CnQVnCEI.cjs';
3
+ import { T as Table, D as DatabaseDefinition, h as TimestampOptions, M as MergeTimestampParanoid, n as QueryHooks, j as DatabaseDialect, o as DatabaseOptions, c as QueryBuilder, p as QueryRunHooks } from './index-K07efKgt.cjs';
4
4
  import { QueryHooksType } from './query/constants.cjs';
5
5
  import { Dialect } from './table/constants.cjs';
6
6
  import { AcceptedColumnTypes } from './column/constants.cjs';
@@ -77,7 +77,7 @@ interface ColumnAlterationContract<DbDialect extends Dialect, Tables extends Rec
77
77
  }
78
78
 
79
79
  declare class Database<DbDialect extends Dialect, Tables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<DatabaseDefinition<DbDialect>> = DatabaseDefinition<DbDialect>> {
80
- readonly hooks: Partial<QuerHooks>;
80
+ readonly hooks: Partial<QueryHooks>;
81
81
  readonly dialect: DbDialect;
82
82
  readonly defintion: Definition;
83
83
  readonly tables: Tables;