rado 0.3.2 → 0.3.3

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 (68) hide show
  1. package/README.md +277 -275
  2. package/dist/define/Expr.d.ts +2 -2
  3. package/dist/define/Expr.js +4 -1
  4. package/dist/define/Ops.d.ts +1 -6
  5. package/dist/define/Ops.js +10 -7
  6. package/dist/define/Query.d.ts +117 -2
  7. package/dist/define/Query.js +472 -17
  8. package/dist/define/Selection.d.ts +1 -1
  9. package/dist/define/Table.d.ts +1 -2
  10. package/dist/define/Table.js +1 -1
  11. package/dist/define/VirtualTable.d.ts +1 -1
  12. package/dist/driver/bun-sqlite.js +1 -2
  13. package/dist/index.d.ts +0 -8
  14. package/dist/index.js +0 -8
  15. package/dist/lib/Driver.d.ts +1 -2
  16. package/package.json +74 -74
  17. package/dist/define/Cursor.d.ts +0 -85
  18. package/dist/define/Cursor.js +0 -256
  19. package/dist/define/Update.d.ts +0 -4
  20. package/dist/define/Update.js +0 -0
  21. package/dist/define/query/Batch.d.ts +0 -7
  22. package/dist/define/query/Batch.js +0 -17
  23. package/dist/define/query/CreateTable.d.ts +0 -6
  24. package/dist/define/query/CreateTable.js +0 -11
  25. package/dist/define/query/Delete.d.ts +0 -13
  26. package/dist/define/query/Delete.js +0 -21
  27. package/dist/define/query/Insert.d.ts +0 -22
  28. package/dist/define/query/Insert.js +0 -47
  29. package/dist/define/query/Select.d.ts +0 -41
  30. package/dist/define/query/Select.js +0 -183
  31. package/dist/define/query/TableSelect.d.ts +0 -28
  32. package/dist/define/query/TableSelect.js +0 -79
  33. package/dist/define/query/Union.d.ts +0 -17
  34. package/dist/define/query/Union.js +0 -116
  35. package/dist/define/query/Update.d.ts +0 -12
  36. package/dist/define/query/Update.js +0 -18
  37. package/dist/lib/Column.d.ts +0 -57
  38. package/dist/lib/Column.js +0 -68
  39. package/dist/lib/Cursor.d.ts +0 -85
  40. package/dist/lib/Cursor.js +0 -256
  41. package/dist/lib/Expr.d.ts +0 -154
  42. package/dist/lib/Expr.js +0 -284
  43. package/dist/lib/Fields.d.ts +0 -13
  44. package/dist/lib/Fields.js +0 -0
  45. package/dist/lib/Functions.d.ts +0 -5
  46. package/dist/lib/Functions.js +0 -11
  47. package/dist/lib/Id.d.ts +0 -3
  48. package/dist/lib/Id.js +0 -0
  49. package/dist/lib/Index.d.ts +0 -17
  50. package/dist/lib/Index.js +0 -20
  51. package/dist/lib/Ops.d.ts +0 -7
  52. package/dist/lib/Ops.js +0 -36
  53. package/dist/lib/OrderBy.d.ts +0 -9
  54. package/dist/lib/OrderBy.js +0 -9
  55. package/dist/lib/Param.d.ts +0 -20
  56. package/dist/lib/Param.js +0 -27
  57. package/dist/lib/Query.d.ts +0 -109
  58. package/dist/lib/Query.js +0 -74
  59. package/dist/lib/Schema.d.ts +0 -18
  60. package/dist/lib/Schema.js +0 -67
  61. package/dist/lib/Selection.d.ts +0 -20
  62. package/dist/lib/Selection.js +0 -7
  63. package/dist/lib/Table.d.ts +0 -62
  64. package/dist/lib/Table.js +0 -130
  65. package/dist/lib/Target.d.ts +0 -38
  66. package/dist/lib/Target.js +0 -42
  67. package/dist/lib/Update.d.ts +0 -4
  68. package/dist/lib/Update.js +0 -0
@@ -1,47 +0,0 @@
1
- import { ExprData } from "../Expr.js";
2
- import { Query, QueryData } from "../Query.js";
3
- class Insert extends Query {
4
- constructor(query) {
5
- super(query);
6
- }
7
- returning(selection) {
8
- return new Insert(
9
- new QueryData.Insert({
10
- ...this[Query.Data],
11
- selection: ExprData.create(selection)
12
- })
13
- );
14
- }
15
- }
16
- class InsertOne extends Query {
17
- constructor(query) {
18
- super(query);
19
- }
20
- returning(selection) {
21
- return new Insert(
22
- new QueryData.Insert({
23
- ...this[Query.Data],
24
- selection: ExprData.create(selection),
25
- singleResult: true
26
- })
27
- );
28
- }
29
- }
30
- class InsertInto {
31
- constructor(into) {
32
- this.into = into;
33
- }
34
- selection(query) {
35
- return new Insert(
36
- new QueryData.Insert({ into: this.into, select: query[Query.Data] })
37
- );
38
- }
39
- values(...data) {
40
- return new Insert(new QueryData.Insert({ into: this.into, data }));
41
- }
42
- }
43
- export {
44
- Insert,
45
- InsertInto,
46
- InsertOne
47
- };
@@ -1,41 +0,0 @@
1
- import { EV, Expr } from '../Expr.js';
2
- import { IndexData } from '../Index.js';
3
- import { OrderBy } from '../OrderBy.js';
4
- import { Query, QueryData } from '../Query.js';
5
- import { Selection } from '../Selection.js';
6
- import { Table } from '../Table.js';
7
- import { VirtualTable } from '../VirtualTable.js';
8
- import { Union } from './Union.js';
9
- export declare class Select<Row> extends Union<Row> {
10
- [Query.Data]: QueryData.Select;
11
- constructor(query: QueryData.Select);
12
- from(table: Table<any> | VirtualTable<any>): Select<Row>;
13
- indexedBy(index: IndexData): Select<unknown>;
14
- leftJoin<C>(that: Table<C> | Select<C>, ...on: Array<EV<boolean>>): Select<Row>;
15
- innerJoin<C>(that: Table<C> | Select<C>, ...on: Array<EV<boolean>>): Select<Row>;
16
- select<X extends Selection>(selection: X): Select<Selection.Infer<X>>;
17
- count(): SelectFirst<number>;
18
- orderBy(...orderBy: Array<Expr<any> | OrderBy>): Select<Row>;
19
- groupBy(...groupBy: Array<Expr<any>>): Select<Row>;
20
- maybeFirst(): SelectFirst<Row | null>;
21
- first(): SelectFirst<Row>;
22
- where(...where: Array<EV<boolean>>): Select<Row>;
23
- take(limit: number | undefined): Select<Row>;
24
- skip(offset: number | undefined): Select<Row>;
25
- [Expr.ToExpr](): Expr<Row>;
26
- }
27
- export declare class SelectFirst<Row> extends Query<Row> {
28
- [Query.Data]: QueryData.Select;
29
- constructor(query: QueryData.Select);
30
- from(table: Table<any>): Select<Row>;
31
- leftJoin<C>(that: Table<C> | Select<C>, ...on: Array<EV<boolean>>): SelectFirst<Row>;
32
- innerJoin<C>(that: Table<C> | Select<C>, ...on: Array<EV<boolean>>): SelectFirst<Row>;
33
- select<X extends Selection>(selection: X): SelectFirst<Selection.Infer<X>>;
34
- orderBy(...orderBy: Array<OrderBy>): SelectFirst<Row>;
35
- groupBy(...groupBy: Array<Expr<any>>): SelectFirst<Row>;
36
- where(...where: Array<EV<boolean>>): SelectFirst<Row>;
37
- take(limit: number | undefined): SelectFirst<Row>;
38
- skip(offset: number | undefined): SelectFirst<Row>;
39
- all(): Select<Row>;
40
- [Expr.ToExpr](): Expr<Row>;
41
- }
@@ -1,183 +0,0 @@
1
- import { Expr, ExprData } from "../Expr.js";
2
- import { Functions } from "../Functions.js";
3
- import { Query } from "../Query.js";
4
- import { Table } from "../Table.js";
5
- import { Target, TargetType } from "../Target.js";
6
- import { VirtualTable } from "../VirtualTable.js";
7
- import { Union } from "./Union.js";
8
- function joinTarget(joinType, query, to, on) {
9
- const toQuery = Query.isQuery(to) ? to[Query.Data] : void 0;
10
- const target = toQuery ? toQuery.from : new Target.Table(to[Table.Data]);
11
- if (!query.from || !target)
12
- throw new Error("No from clause");
13
- const conditions = [...on];
14
- if (toQuery) {
15
- const where = toQuery.where;
16
- if (where)
17
- conditions.push(new Expr(where));
18
- }
19
- return new Target.Join(
20
- query.from,
21
- target,
22
- joinType,
23
- Expr.and(...conditions)[Expr.Data]
24
- );
25
- }
26
- class Select extends Union {
27
- constructor(query) {
28
- super(query);
29
- }
30
- from(table) {
31
- const virtual = table[VirtualTable.Data];
32
- return new Select(
33
- this[Query.Data].with({ from: virtual?.target || new Target.Table(table) })
34
- );
35
- }
36
- indexedBy(index) {
37
- const from = this[Query.Data].from;
38
- switch (from?.type) {
39
- case TargetType.Table:
40
- return new Select(
41
- this[Query.Data].with({
42
- from: new Target.Table(from.table, index)
43
- })
44
- );
45
- default:
46
- throw new Error("Cannot index by without table target");
47
- }
48
- }
49
- leftJoin(that, ...on) {
50
- const query = this[Query.Data];
51
- return new Select(
52
- this[Query.Data].with({
53
- from: joinTarget("left", query, that, on)
54
- })
55
- );
56
- }
57
- innerJoin(that, ...on) {
58
- const query = this[Query.Data];
59
- return new Select(
60
- this[Query.Data].with({
61
- from: joinTarget("inner", query, that, on)
62
- })
63
- );
64
- }
65
- select(selection) {
66
- return new Select(
67
- this[Query.Data].with({
68
- selection: ExprData.create(selection)
69
- })
70
- );
71
- }
72
- count() {
73
- return new SelectFirst(
74
- this[Query.Data].with({
75
- selection: Functions.count()[Expr.Data],
76
- singleResult: true
77
- })
78
- );
79
- }
80
- orderBy(...orderBy) {
81
- return new Select(
82
- this[Query.Data].with({
83
- orderBy: orderBy.map((e) => {
84
- return Expr.isExpr(e) ? e.asc() : e;
85
- })
86
- })
87
- );
88
- }
89
- groupBy(...groupBy) {
90
- return new Select(
91
- this[Query.Data].with({
92
- groupBy: groupBy.map(ExprData.create)
93
- })
94
- );
95
- }
96
- maybeFirst() {
97
- return new SelectFirst(this[Query.Data].with({ singleResult: true }));
98
- }
99
- first() {
100
- return new SelectFirst(
101
- this[Query.Data].with({
102
- singleResult: true,
103
- validate: true
104
- })
105
- );
106
- }
107
- where(...where) {
108
- return new Select(this.addWhere(where));
109
- }
110
- take(limit) {
111
- return new Select(this[Query.Data].with({ limit }));
112
- }
113
- skip(offset) {
114
- return new Select(this[Query.Data].with({ offset }));
115
- }
116
- [Expr.ToExpr]() {
117
- return new Expr(new ExprData.Query(this[Query.Data]));
118
- }
119
- }
120
- class SelectFirst extends Query {
121
- constructor(query) {
122
- super(query);
123
- }
124
- from(table) {
125
- return new Select(this[Query.Data].with({ from: new Target.Table(table) }));
126
- }
127
- leftJoin(that, ...on) {
128
- const query = this[Query.Data];
129
- return new SelectFirst(
130
- this[Query.Data].with({
131
- from: joinTarget("left", query, that, on)
132
- })
133
- );
134
- }
135
- innerJoin(that, ...on) {
136
- const query = this[Query.Data];
137
- return new SelectFirst(
138
- this[Query.Data].with({
139
- from: joinTarget("inner", query, that, on)
140
- })
141
- );
142
- }
143
- select(selection) {
144
- return new SelectFirst(
145
- this[Query.Data].with({
146
- selection: ExprData.create(selection)
147
- })
148
- );
149
- }
150
- orderBy(...orderBy) {
151
- return new SelectFirst(
152
- this[Query.Data].with({
153
- orderBy
154
- })
155
- );
156
- }
157
- groupBy(...groupBy) {
158
- return new SelectFirst(
159
- this[Query.Data].with({
160
- groupBy: groupBy.map(ExprData.create)
161
- })
162
- );
163
- }
164
- where(...where) {
165
- return new SelectFirst(this.addWhere(where));
166
- }
167
- take(limit) {
168
- return new SelectFirst(this[Query.Data].with({ limit }));
169
- }
170
- skip(offset) {
171
- return new SelectFirst(this[Query.Data].with({ offset }));
172
- }
173
- all() {
174
- return new Select(this[Query.Data].with({ singleResult: false }));
175
- }
176
- [Expr.ToExpr]() {
177
- return new Expr(new ExprData.Query(this[Query.Data]));
178
- }
179
- }
180
- export {
181
- Select,
182
- SelectFirst
183
- };
@@ -1,28 +0,0 @@
1
- import { EV, Expr } from '../Expr.js';
2
- import { Query, QueryData } from '../Query.js';
3
- import { Table, TableData } from '../Table.js';
4
- import { CreateTable } from './CreateTable.js';
5
- import { Delete } from './Delete.js';
6
- import { Insert, InsertOne } from './Insert.js';
7
- import { Select } from './Select.js';
8
- import { Update } from './Update.js';
9
- export declare class TableSelect<Definition> extends Select<Table.Select<Definition>> {
10
- protected table: TableData;
11
- [Query.Data]: QueryData.Select;
12
- constructor(table: TableData, conditions?: Array<EV<boolean>>);
13
- as(alias: string): Table<Definition>;
14
- create(): CreateTable;
15
- insert(query: Select<Table.Insert<Definition>>): Insert;
16
- insert(rows: Array<Table.Insert<Definition>>): Insert;
17
- insert(row: Table.Insert<Definition>): InsertOne<Table.Select<Definition>>;
18
- insertSelect(query: Select<Table.Insert<Definition>>): Insert<{
19
- rowsAffected: number;
20
- }>;
21
- insertOne(record: Table.Insert<Definition>): InsertOne<{ [K in keyof Definition as Definition[K] extends import("../Column.js").Column<any> ? K : never]: Definition[K] extends import("../Column.js").Column<infer T> ? T : never; }>;
22
- insertAll(data: Array<Table.Insert<Definition>>): Insert<{
23
- rowsAffected: number;
24
- }>;
25
- set(data: Table.Update<Definition>): Update<Definition>;
26
- delete(): Delete;
27
- get(name: string): Expr<any>;
28
- }
@@ -1,79 +0,0 @@
1
- import { Expr, ExprData } from "../Expr.js";
2
- import { Query, QueryData } from "../Query.js";
3
- import { createTable } from "../Table.js";
4
- import { Target } from "../Target.js";
5
- import { CreateTable } from "./CreateTable.js";
6
- import { Delete } from "./Delete.js";
7
- import { Insert, InsertInto, InsertOne } from "./Insert.js";
8
- import { Select } from "./Select.js";
9
- import { Update } from "./Update.js";
10
- class TableSelect extends Select {
11
- constructor(table, conditions = []) {
12
- const target = new Target.Table(table);
13
- super(
14
- new QueryData.Select({
15
- from: target,
16
- selection: new ExprData.Row(target),
17
- where: Expr.and(...conditions)[Expr.Data]
18
- })
19
- );
20
- this.table = table;
21
- }
22
- as(alias) {
23
- return createTable({ ...this.table, alias });
24
- }
25
- create() {
26
- return new CreateTable(this.table);
27
- }
28
- insert(input) {
29
- if (input instanceof Select) {
30
- return this.insertSelect(input);
31
- } else if (Array.isArray(input)) {
32
- return this.insertAll(input);
33
- } else {
34
- return this.insertOne(input);
35
- }
36
- }
37
- insertSelect(query) {
38
- return new Insert(
39
- new QueryData.Insert({ into: this.table, select: query[Query.Data] })
40
- );
41
- }
42
- insertOne(record) {
43
- return new InsertOne(
44
- new QueryData.Insert({
45
- into: this.table,
46
- data: [record],
47
- selection: new ExprData.Row(new Target.Table(this.table)),
48
- singleResult: true
49
- })
50
- );
51
- }
52
- insertAll(data) {
53
- return new InsertInto(this.table).values(...data);
54
- }
55
- set(data) {
56
- return new Update(
57
- new QueryData.Update({
58
- table: this.table,
59
- where: this[Query.Data].where
60
- })
61
- ).set(data);
62
- }
63
- delete() {
64
- return new Delete(
65
- new QueryData.Delete({
66
- table: this.table,
67
- where: this[Query.Data].where
68
- })
69
- );
70
- }
71
- get(name) {
72
- return new Expr(
73
- new ExprData.Field(new ExprData.Row(new Target.Table(this.table)), name)
74
- );
75
- }
76
- }
77
- export {
78
- TableSelect
79
- };
@@ -1,17 +0,0 @@
1
- import { Query, QueryData } from '../Query.js';
2
- import { VirtualTable } from '../VirtualTable.js';
3
- import { Select } from './Select.js';
4
- export declare class RecursiveUnion<Row> {
5
- initialSelect: QueryData.Select;
6
- constructor(initialSelect: QueryData.Select);
7
- union(create: () => Select<Row> | Union<Row>): VirtualTable.Of<Row>;
8
- unionAll(create: () => Select<Row> | Union<Row>): VirtualTable.Of<Row>;
9
- }
10
- export declare class Union<Row> extends Query<Array<Row>> {
11
- [Query.Data]: QueryData.Union | QueryData.Select;
12
- constructor(query: QueryData.Union | QueryData.Select);
13
- union(query: Select<Row> | Union<Row>): Union<Row>;
14
- unionAll(query: Select<Row> | Union<Row>): Union<Row>;
15
- except(query: Select<Row> | Union<Row>): Union<Row>;
16
- intersect(query: Select<Row> | Union<Row>): Union<Row>;
17
- }
@@ -1,116 +0,0 @@
1
- import { randomAlias } from "../../util/Alias.js";
2
- import { Expr, ExprData, ExprType } from "../Expr.js";
3
- import { Query, QueryData } from "../Query.js";
4
- import { Target, TargetType } from "../Target.js";
5
- import { createVirtualTable } from "../VirtualTable.js";
6
- import { Select } from "./Select.js";
7
- const { keys, create, fromEntries } = Object;
8
- function columnsOf(expr) {
9
- switch (expr.type) {
10
- case ExprType.Record:
11
- return keys(expr.fields);
12
- case ExprType.Row:
13
- switch (expr.target.type) {
14
- case TargetType.Table:
15
- return keys(expr.target.table.columns);
16
- default:
17
- throw new Error("Could not retrieve CTE columns");
18
- }
19
- default:
20
- throw new Error("Could not retrieve CTE columns");
21
- }
22
- }
23
- function makeRecursiveUnion(initial, createUnion, operator) {
24
- const name = randomAlias();
25
- const cols = columnsOf(initial.selection);
26
- const union = new QueryData.Union({
27
- a: initial,
28
- operator,
29
- b: () => createUnion()[Query.Data]
30
- });
31
- const target = new Target.CTE(name, union);
32
- const row = new ExprData.Row(target);
33
- const selection = new ExprData.Record(
34
- fromEntries(cols.map((col) => [col, new ExprData.Field(row, col)]))
35
- );
36
- const select = (conditions) => {
37
- const where = Expr.and(...conditions)[Expr.Data];
38
- return new Select(
39
- new QueryData.Select({
40
- selection,
41
- from: target,
42
- where
43
- })
44
- );
45
- };
46
- const cte = createVirtualTable({
47
- name,
48
- target,
49
- select
50
- });
51
- return cte;
52
- }
53
- class RecursiveUnion {
54
- constructor(initialSelect) {
55
- this.initialSelect = initialSelect;
56
- }
57
- union(create2) {
58
- return makeRecursiveUnion(
59
- this.initialSelect,
60
- create2,
61
- QueryData.UnionOperation.Union
62
- );
63
- }
64
- unionAll(create2) {
65
- return makeRecursiveUnion(
66
- this.initialSelect,
67
- create2,
68
- QueryData.UnionOperation.UnionAll
69
- );
70
- }
71
- }
72
- class Union extends Query {
73
- constructor(query) {
74
- super(query);
75
- }
76
- union(query) {
77
- return new Union(
78
- new QueryData.Union({
79
- a: this[Query.Data],
80
- operator: QueryData.UnionOperation.Union,
81
- b: query[Query.Data]
82
- })
83
- );
84
- }
85
- unionAll(query) {
86
- return new Union(
87
- new QueryData.Union({
88
- a: this[Query.Data],
89
- operator: QueryData.UnionOperation.UnionAll,
90
- b: query[Query.Data]
91
- })
92
- );
93
- }
94
- except(query) {
95
- return new Union(
96
- new QueryData.Union({
97
- a: this[Query.Data],
98
- operator: QueryData.UnionOperation.Except,
99
- b: query[Query.Data]
100
- })
101
- );
102
- }
103
- intersect(query) {
104
- return new Union(
105
- new QueryData.Union({
106
- a: this[Query.Data],
107
- operator: QueryData.UnionOperation.Intersect,
108
- b: query[Query.Data]
109
- })
110
- );
111
- }
112
- }
113
- export {
114
- RecursiveUnion,
115
- Union
116
- };
@@ -1,12 +0,0 @@
1
- import { EV } from '../Expr.js';
2
- import { Query, QueryData } from '../Query.js';
3
- import { Table } from '../Table.js';
4
- export declare class Update<Definition> extends Query<{
5
- rowsAffected: number;
6
- }> {
7
- [Query.Data]: QueryData.Update;
8
- set(set: Table.Update<Definition>): Update<Definition>;
9
- where(...where: Array<EV<boolean>>): Update<Definition>;
10
- take(limit: number | undefined): Update<Definition>;
11
- skip(offset: number | undefined): Update<Definition>;
12
- }
@@ -1,18 +0,0 @@
1
- import { Query } from "../Query.js";
2
- class Update extends Query {
3
- set(set) {
4
- return new Update(this[Query.Data].with({ set }));
5
- }
6
- where(...where) {
7
- return new Update(this.addWhere(where));
8
- }
9
- take(limit) {
10
- return new Update(this[Query.Data].with({ limit }));
11
- }
12
- skip(offset) {
13
- return new Update(this[Query.Data].with({ offset }));
14
- }
15
- }
16
- export {
17
- Update
18
- };
@@ -1,57 +0,0 @@
1
- import { EV, Expr, ExprData } from './Expr';
2
- export declare enum ColumnType {
3
- String = "String",
4
- Integer = "Integer",
5
- Number = "Number",
6
- Boolean = "Boolean",
7
- Json = "Json"
8
- }
9
- interface PartialColumnData {
10
- type: ColumnType;
11
- name?: string;
12
- nullable?: boolean;
13
- defaultValue?: ExprData;
14
- autoIncrement?: boolean;
15
- primaryKey?: boolean;
16
- unique?: boolean;
17
- references?: ExprData;
18
- }
19
- export interface ColumnData extends PartialColumnData {
20
- type: ColumnType;
21
- name: string;
22
- }
23
- export declare class Column<T> {
24
- data: PartialColumnData;
25
- constructor(data: PartialColumnData);
26
- name(name: string): Column<T>;
27
- nullable(): Column<T | null>;
28
- autoIncrement(): Column<Column.IsOptional<T>>;
29
- primaryKey<K extends string>(): Column<Column.IsPrimary<T, K>>;
30
- references<X extends T>(column: Expr<X> | (() => Expr<X>)): Column<X>;
31
- unique(): Column<T>;
32
- defaultValue(value: EV<T>): Column<Column.IsOptional<T>>;
33
- }
34
- export type PrimaryKey<T, K> = string extends K ? T : T & {
35
- [Column.isPrimary]: K;
36
- };
37
- export declare namespace Column {
38
- const isOptional: unique symbol;
39
- type IsOptional<T> = {
40
- [isOptional]: true;
41
- __t: T;
42
- };
43
- const isPrimary: unique symbol;
44
- type IsPrimary<T, K> = {
45
- [isPrimary]: K;
46
- __t: T;
47
- };
48
- }
49
- export declare const column: {
50
- string<T extends string = string>(): Column<T>;
51
- integer<T_1 extends number = number>(): Column<T_1>;
52
- number<T_2 extends number = number>(): Column<T_2>;
53
- boolean<T_3 extends boolean = boolean>(): Column<T_3>;
54
- object<T_4 extends object = object>(): Column<T_4>;
55
- array<T_5 = any>(): Column<T_5[]>;
56
- };
57
- export {};
@@ -1,68 +0,0 @@
1
- // src/lib/Column.ts
2
- import { ExprData } from "./Expr.js";
3
- var ColumnType = /* @__PURE__ */ ((ColumnType2) => {
4
- ColumnType2["String"] = "String";
5
- ColumnType2["Integer"] = "Integer";
6
- ColumnType2["Number"] = "Number";
7
- ColumnType2["Boolean"] = "Boolean";
8
- ColumnType2["Json"] = "Json";
9
- return ColumnType2;
10
- })(ColumnType || {});
11
- var Column = class {
12
- constructor(data) {
13
- this.data = data;
14
- }
15
- name(name) {
16
- return new Column({ ...this.data, name });
17
- }
18
- nullable() {
19
- return new Column({ ...this.data, nullable: true });
20
- }
21
- autoIncrement() {
22
- return new Column({ ...this.data, autoIncrement: true });
23
- }
24
- primaryKey() {
25
- return new Column({ ...this.data, primaryKey: true });
26
- }
27
- references(column2) {
28
- return new Column({
29
- ...this.data,
30
- get references() {
31
- return ExprData.create(typeof column2 === "function" ? column2() : column2);
32
- }
33
- });
34
- }
35
- unique() {
36
- return new Column({ ...this.data, unique: true });
37
- }
38
- defaultValue(value) {
39
- return new Column({ ...this.data, defaultValue: ExprData.create(value) });
40
- }
41
- };
42
- ((Column2) => {
43
- })(Column || (Column = {}));
44
- var column = {
45
- string() {
46
- return new Column({ type: "String" /* String */ });
47
- },
48
- integer() {
49
- return new Column({ type: "Integer" /* Integer */ });
50
- },
51
- number() {
52
- return new Column({ type: "Number" /* Number */ });
53
- },
54
- boolean() {
55
- return new Column({ type: "Boolean" /* Boolean */ });
56
- },
57
- object() {
58
- return new Column({ type: "Json" /* Json */ });
59
- },
60
- array() {
61
- return new Column({ type: "Json" /* Json */ });
62
- }
63
- };
64
- export {
65
- Column,
66
- ColumnType,
67
- column
68
- };