rado 0.2.14 → 0.2.16
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/dist/define/Column.d.ts +19 -17
- package/dist/define/Column.js +33 -33
- package/dist/define/Cursor.d.ts +16 -7
- package/dist/define/Cursor.js +83 -84
- package/dist/define/Expr.d.ts +41 -28
- package/dist/define/Expr.js +202 -152
- package/dist/define/Functions.js +1 -1
- package/dist/define/Ops.js +6 -6
- package/dist/define/Schema.js +1 -1
- package/dist/define/Selection.d.ts +4 -4
- package/dist/define/Table.d.ts +8 -6
- package/dist/define/Table.js +25 -12
- package/dist/lib/Driver.js +12 -12
- package/dist/lib/Formatter.js +2 -2
- package/package.json +2 -2
package/dist/define/Column.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { EV, Expr, ExprData } from './Expr';
|
|
2
2
|
import { Fields } from './Fields';
|
|
3
|
+
declare const DATA: unique symbol;
|
|
4
|
+
declare const TYPE: unique symbol;
|
|
3
5
|
export declare enum ColumnType {
|
|
4
6
|
String = "String",
|
|
5
7
|
Integer = "Integer",
|
|
@@ -23,22 +25,22 @@ export interface ColumnData extends PartialColumnData {
|
|
|
23
25
|
name: string;
|
|
24
26
|
}
|
|
25
27
|
export interface Column<T> {
|
|
26
|
-
[
|
|
27
|
-
[
|
|
28
|
+
[TYPE]: T;
|
|
29
|
+
[DATA]: PartialColumnData;
|
|
28
30
|
}
|
|
29
31
|
export declare namespace Column {
|
|
30
|
-
const
|
|
31
|
-
const
|
|
32
|
-
const
|
|
33
|
-
const
|
|
34
|
-
const
|
|
32
|
+
const Data: typeof DATA;
|
|
33
|
+
const Type: typeof TYPE;
|
|
34
|
+
const IsOptional: unique symbol;
|
|
35
|
+
const IsNullable: unique symbol;
|
|
36
|
+
const IsPrimary: unique symbol;
|
|
35
37
|
}
|
|
36
38
|
interface ValueColumn<T> extends Expr<T> {
|
|
37
39
|
<X extends T = T>(): ValueColumn<T extends null ? X | null : X>;
|
|
38
40
|
}
|
|
39
41
|
declare class ValueColumn<T> implements Column<T> {
|
|
40
|
-
[
|
|
41
|
-
[
|
|
42
|
+
[TYPE]: T;
|
|
43
|
+
[DATA]: PartialColumnData;
|
|
42
44
|
constructor(data: PartialColumnData);
|
|
43
45
|
get nullable(): ValueColumn<T | null>;
|
|
44
46
|
get unique(): ValueColumn<T>;
|
|
@@ -48,34 +50,34 @@ declare class ValueColumn<T> implements Column<T> {
|
|
|
48
50
|
defaultValue(value: DefaultValue<T>): OptionalColumn<T>;
|
|
49
51
|
}
|
|
50
52
|
export declare class OptionalColumn<T> extends ValueColumn<T> {
|
|
51
|
-
[Column.
|
|
53
|
+
[Column.IsOptional]: true;
|
|
52
54
|
}
|
|
53
55
|
export declare class PrimaryColumn<T, K> extends ValueColumn<PrimaryKey<T, K>> {
|
|
54
|
-
[Column.
|
|
56
|
+
[Column.IsPrimary]: K;
|
|
55
57
|
}
|
|
56
58
|
interface ObjectColumn<T> {
|
|
57
59
|
<X extends T = T>(): Column<T extends null ? X | null : X> & Fields<X>;
|
|
58
60
|
}
|
|
59
61
|
declare class ObjectColumn<T> implements Column<T> {
|
|
60
|
-
[
|
|
61
|
-
[
|
|
62
|
+
[TYPE]: T;
|
|
63
|
+
[DATA]: PartialColumnData;
|
|
62
64
|
constructor(data: PartialColumnData);
|
|
63
65
|
get nullable(): ObjectColumn<T | null>;
|
|
64
66
|
get unique(): ObjectColumn<T>;
|
|
65
67
|
defaultValue<X extends T = T>(value: DefaultValue<X>): Column<X> & Fields<X>;
|
|
66
68
|
}
|
|
67
69
|
export declare class OptionalObjectColumn<T> extends ObjectColumn<T> {
|
|
68
|
-
[Column.
|
|
70
|
+
[Column.IsOptional]: true;
|
|
69
71
|
}
|
|
70
72
|
export type PrimaryKey<T, K> = string extends K ? T : T & {
|
|
71
|
-
[Column.
|
|
73
|
+
[Column.IsPrimary]: K;
|
|
72
74
|
};
|
|
73
75
|
type DefaultValue<T> = EV<T> | (() => EV<T>);
|
|
74
76
|
interface UnTyped {
|
|
75
77
|
(name: string): UnTyped;
|
|
76
78
|
}
|
|
77
79
|
declare class UnTyped {
|
|
78
|
-
[
|
|
80
|
+
[DATA]: PartialColumnData;
|
|
79
81
|
constructor(data?: PartialColumnData);
|
|
80
82
|
get nullable(): NullableUnTyped;
|
|
81
83
|
get unique(): UnTyped;
|
|
@@ -88,7 +90,7 @@ declare class UnTyped {
|
|
|
88
90
|
get array(): ValueColumn<any[]>;
|
|
89
91
|
}
|
|
90
92
|
declare class NullableUnTyped {
|
|
91
|
-
[
|
|
93
|
+
[DATA]: PartialColumnData;
|
|
92
94
|
get unique(): UnTyped;
|
|
93
95
|
get string(): ValueColumn<string | null>;
|
|
94
96
|
get integer(): ValueColumn<number | null>;
|
package/dist/define/Column.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// src/define/Column.ts
|
|
2
2
|
import { callable } from "../util/Callable.js";
|
|
3
3
|
import { Expr, ExprData } from "./Expr.js";
|
|
4
|
+
var DATA = Symbol("DATA");
|
|
5
|
+
var TYPE = Symbol("tYPE");
|
|
4
6
|
var ColumnType = /* @__PURE__ */ ((ColumnType2) => {
|
|
5
7
|
ColumnType2["String"] = "String";
|
|
6
8
|
ColumnType2["Integer"] = "Integer";
|
|
@@ -11,40 +13,39 @@ var ColumnType = /* @__PURE__ */ ((ColumnType2) => {
|
|
|
11
13
|
})(ColumnType || {});
|
|
12
14
|
var Column;
|
|
13
15
|
((Column2) => {
|
|
14
|
-
Column2.
|
|
15
|
-
Column2.
|
|
16
|
+
Column2.Data = DATA;
|
|
17
|
+
Column2.Type = TYPE;
|
|
16
18
|
})(Column || (Column = {}));
|
|
17
19
|
var ValueColumn = class {
|
|
18
|
-
[
|
|
19
|
-
[Column.data];
|
|
20
|
+
[(TYPE, DATA)];
|
|
20
21
|
constructor(data) {
|
|
21
|
-
this[
|
|
22
|
+
this[DATA] = data;
|
|
22
23
|
return callable(this, (defaultValue) => {
|
|
23
24
|
return new ValueColumn({
|
|
24
|
-
...this[
|
|
25
|
+
...this[DATA],
|
|
25
26
|
defaultValue: createDefaultValue(defaultValue)
|
|
26
27
|
});
|
|
27
28
|
});
|
|
28
29
|
}
|
|
29
30
|
get nullable() {
|
|
30
|
-
return new ValueColumn({ ...this[
|
|
31
|
+
return new ValueColumn({ ...this[DATA], nullable: true });
|
|
31
32
|
}
|
|
32
33
|
get unique() {
|
|
33
|
-
return new ValueColumn({ ...this[
|
|
34
|
+
return new ValueColumn({ ...this[DATA], unique: true });
|
|
34
35
|
}
|
|
35
36
|
get autoIncrement() {
|
|
36
|
-
return new OptionalColumn({ ...this[
|
|
37
|
+
return new OptionalColumn({ ...this[DATA], autoIncrement: true });
|
|
37
38
|
}
|
|
38
39
|
primaryKey(create) {
|
|
39
40
|
return new PrimaryColumn({
|
|
40
|
-
...this[
|
|
41
|
+
...this[DATA],
|
|
41
42
|
primaryKey: true,
|
|
42
|
-
defaultValue: create ? () => ExprData.create(create()) : this[
|
|
43
|
+
defaultValue: create ? () => ExprData.create(create()) : this[DATA].defaultValue
|
|
43
44
|
});
|
|
44
45
|
}
|
|
45
46
|
references(column2) {
|
|
46
47
|
return new ValueColumn({
|
|
47
|
-
...this[
|
|
48
|
+
...this[DATA],
|
|
48
49
|
references() {
|
|
49
50
|
return ExprData.create(Expr.isExpr(column2) ? column2 : column2());
|
|
50
51
|
}
|
|
@@ -52,7 +53,7 @@ var ValueColumn = class {
|
|
|
52
53
|
}
|
|
53
54
|
defaultValue(value) {
|
|
54
55
|
return new OptionalColumn({
|
|
55
|
-
...this[
|
|
56
|
+
...this[DATA],
|
|
56
57
|
defaultValue: createDefaultValue(value)
|
|
57
58
|
});
|
|
58
59
|
}
|
|
@@ -61,87 +62,86 @@ function createDefaultValue(value) {
|
|
|
61
62
|
return typeof value === "function" && !Expr.isExpr(value) ? () => ExprData.create(value()) : ExprData.create(value);
|
|
62
63
|
}
|
|
63
64
|
var OptionalColumn = class extends ValueColumn {
|
|
64
|
-
[Column.
|
|
65
|
+
[Column.IsOptional];
|
|
65
66
|
};
|
|
66
67
|
var PrimaryColumn = class extends ValueColumn {
|
|
67
|
-
[Column.
|
|
68
|
+
[Column.IsPrimary];
|
|
68
69
|
};
|
|
69
70
|
var ObjectColumn = class {
|
|
70
|
-
[
|
|
71
|
-
[Column.data];
|
|
71
|
+
[(TYPE, DATA)];
|
|
72
72
|
constructor(data) {
|
|
73
|
-
this[
|
|
73
|
+
this[DATA] = data;
|
|
74
74
|
return callable(this, () => this);
|
|
75
75
|
}
|
|
76
76
|
get nullable() {
|
|
77
|
-
return new ObjectColumn({ ...this[
|
|
77
|
+
return new ObjectColumn({ ...this[DATA], nullable: true });
|
|
78
78
|
}
|
|
79
79
|
get unique() {
|
|
80
|
-
return new ObjectColumn({ ...this[
|
|
80
|
+
return new ObjectColumn({ ...this[DATA], unique: true });
|
|
81
81
|
}
|
|
82
82
|
defaultValue(value) {
|
|
83
83
|
return new OptionalObjectColumn({
|
|
84
|
-
...this[
|
|
84
|
+
...this[DATA],
|
|
85
85
|
defaultValue: createDefaultValue(value)
|
|
86
86
|
});
|
|
87
87
|
}
|
|
88
88
|
};
|
|
89
89
|
var OptionalObjectColumn = class extends ObjectColumn {
|
|
90
|
-
[Column.
|
|
90
|
+
[Column.IsOptional];
|
|
91
91
|
};
|
|
92
92
|
var UnTyped = class {
|
|
93
|
-
[
|
|
93
|
+
[DATA];
|
|
94
94
|
constructor(data = {}) {
|
|
95
|
-
this[
|
|
95
|
+
this[DATA] = data;
|
|
96
96
|
return callable(this, (name) => {
|
|
97
97
|
return new ValueColumn({ ...data, name });
|
|
98
98
|
});
|
|
99
99
|
}
|
|
100
100
|
get nullable() {
|
|
101
|
-
return new UnTyped({ ...this[
|
|
101
|
+
return new UnTyped({ ...this[DATA], nullable: true });
|
|
102
102
|
}
|
|
103
103
|
get unique() {
|
|
104
|
-
return new UnTyped({ ...this[
|
|
104
|
+
return new UnTyped({ ...this[DATA], unique: true });
|
|
105
105
|
}
|
|
106
106
|
get string() {
|
|
107
107
|
return new ValueColumn({
|
|
108
|
-
...this[
|
|
108
|
+
...this[DATA],
|
|
109
109
|
type: "String" /* String */
|
|
110
110
|
});
|
|
111
111
|
}
|
|
112
112
|
get integer() {
|
|
113
113
|
return new ValueColumn({
|
|
114
|
-
...this[
|
|
114
|
+
...this[DATA],
|
|
115
115
|
type: "Integer" /* Integer */
|
|
116
116
|
});
|
|
117
117
|
}
|
|
118
118
|
get number() {
|
|
119
119
|
return new ValueColumn({
|
|
120
|
-
...this[
|
|
120
|
+
...this[DATA],
|
|
121
121
|
type: "Number" /* Number */
|
|
122
122
|
});
|
|
123
123
|
}
|
|
124
124
|
get boolean() {
|
|
125
125
|
return new ValueColumn({
|
|
126
|
-
...this[
|
|
126
|
+
...this[DATA],
|
|
127
127
|
type: "Boolean" /* Boolean */
|
|
128
128
|
});
|
|
129
129
|
}
|
|
130
130
|
get json() {
|
|
131
131
|
return new ValueColumn({
|
|
132
|
-
...this[
|
|
132
|
+
...this[DATA],
|
|
133
133
|
type: "Json" /* Json */
|
|
134
134
|
});
|
|
135
135
|
}
|
|
136
136
|
get object() {
|
|
137
137
|
return new ObjectColumn({
|
|
138
|
-
...this[
|
|
138
|
+
...this[DATA],
|
|
139
139
|
type: "Json" /* Json */
|
|
140
140
|
});
|
|
141
141
|
}
|
|
142
142
|
get array() {
|
|
143
143
|
return new ValueColumn({
|
|
144
|
-
...this[
|
|
144
|
+
...this[DATA],
|
|
145
145
|
type: "Json" /* Json */
|
|
146
146
|
});
|
|
147
147
|
}
|
package/dist/define/Cursor.d.ts
CHANGED
|
@@ -5,11 +5,13 @@ import { OrderBy } from './OrderBy';
|
|
|
5
5
|
import { Query } from './Query';
|
|
6
6
|
import { Selection } from './Selection';
|
|
7
7
|
import { Table, TableData } from './Table';
|
|
8
|
+
declare const QUERY: unique symbol;
|
|
8
9
|
export declare class Cursor<T> {
|
|
9
|
-
[Selection.
|
|
10
|
+
[Selection.CursorType]: () => T;
|
|
11
|
+
[QUERY]: Query<T>;
|
|
12
|
+
static Query: typeof QUERY;
|
|
10
13
|
constructor(query: Query<T>);
|
|
11
14
|
static all(strings: TemplateStringsArray, ...params: Array<any>): Cursor<any>;
|
|
12
|
-
query(): Query<T>;
|
|
13
15
|
next<T>(cursor: Cursor<T>): Cursor<T>;
|
|
14
16
|
on(driver: Driver.Sync): T;
|
|
15
17
|
on(driver: Driver.Async): Promise<T>;
|
|
@@ -28,7 +30,7 @@ export declare namespace Cursor {
|
|
|
28
30
|
class Update<Definition> extends Cursor<{
|
|
29
31
|
rowsAffected: number;
|
|
30
32
|
}> {
|
|
31
|
-
|
|
33
|
+
[QUERY]: Query.Update;
|
|
32
34
|
set(set: Table.Update<Definition>): Update<Definition>;
|
|
33
35
|
where(...where: Array<EV<boolean>>): Update<Definition>;
|
|
34
36
|
take(limit: number | undefined): Update<Definition>;
|
|
@@ -39,7 +41,8 @@ export declare namespace Cursor {
|
|
|
39
41
|
class Inserted extends Cursor<{
|
|
40
42
|
rowsAffected: number;
|
|
41
43
|
}> {
|
|
42
|
-
|
|
44
|
+
[QUERY]: Query.Insert;
|
|
45
|
+
constructor(query: Query.Insert);
|
|
43
46
|
returning<X extends Selection>(selection: X): InsertValuesReturning<Selection.Infer<X>>;
|
|
44
47
|
}
|
|
45
48
|
class Insert<Definition> {
|
|
@@ -54,12 +57,13 @@ export declare namespace Cursor {
|
|
|
54
57
|
}
|
|
55
58
|
class Batch<T = void> extends Cursor<T> {
|
|
56
59
|
protected queries: Array<Query>;
|
|
57
|
-
|
|
60
|
+
[QUERY]: Query.Batch;
|
|
58
61
|
constructor(queries: Array<Query>);
|
|
59
62
|
next<T>(cursor: Cursor<T>): Cursor<T>;
|
|
60
63
|
}
|
|
61
64
|
class SelectMultiple<Row> extends Cursor<Array<Row>> {
|
|
62
|
-
|
|
65
|
+
[QUERY]: Query.Select;
|
|
66
|
+
constructor(query: Query.Select);
|
|
63
67
|
leftJoin<C>(that: Table<C> | TableSelect<C>, ...on: Array<EV<boolean>>): SelectMultiple<Row>;
|
|
64
68
|
innerJoin<C>(that: Table<C> | TableSelect<C>, ...on: Array<EV<boolean>>): SelectMultiple<Row>;
|
|
65
69
|
select<X extends Selection>(selection: X): SelectMultiple<Selection.Infer<X>>;
|
|
@@ -71,9 +75,11 @@ export declare namespace Cursor {
|
|
|
71
75
|
where(...where: Array<EV<boolean>>): SelectMultiple<Row>;
|
|
72
76
|
take(limit: number | undefined): SelectMultiple<Row>;
|
|
73
77
|
skip(offset: number | undefined): SelectMultiple<Row>;
|
|
78
|
+
[Expr.ToExpr](): Expr<Row>;
|
|
74
79
|
}
|
|
75
80
|
class TableSelect<Definition> extends SelectMultiple<Table.Select<Definition>> {
|
|
76
81
|
protected table: TableData;
|
|
82
|
+
[QUERY]: Query.Select;
|
|
77
83
|
constructor(table: TableData, conditions?: Array<EV<boolean>>);
|
|
78
84
|
as(alias: string): Table<Definition>;
|
|
79
85
|
create(): CreateTable;
|
|
@@ -85,7 +91,8 @@ export declare namespace Cursor {
|
|
|
85
91
|
get(name: string): Expr<any>;
|
|
86
92
|
}
|
|
87
93
|
class SelectSingle<Row> extends Cursor<Row> {
|
|
88
|
-
|
|
94
|
+
[QUERY]: Query.Select;
|
|
95
|
+
constructor(query: Query.Select);
|
|
89
96
|
leftJoin<C>(that: Table<C> | TableSelect<C>, ...on: Array<EV<boolean>>): SelectSingle<Row>;
|
|
90
97
|
innerJoin<C>(that: Table<C> | TableSelect<C>, ...on: Array<EV<boolean>>): SelectSingle<Row>;
|
|
91
98
|
select<X extends Selection>(selection: X): SelectSingle<Selection.Infer<X>>;
|
|
@@ -95,5 +102,7 @@ export declare namespace Cursor {
|
|
|
95
102
|
take(limit: number | undefined): SelectSingle<Row>;
|
|
96
103
|
skip(offset: number | undefined): SelectSingle<Row>;
|
|
97
104
|
all(): SelectMultiple<Row>;
|
|
105
|
+
[Expr.ToExpr](): Expr<Row>;
|
|
98
106
|
}
|
|
99
107
|
}
|
|
108
|
+
export {};
|