rado 0.1.49 → 0.1.50
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/README.md +1 -1
- package/dist/define/Column.d.ts +58 -58
- package/dist/define/Cursor.d.ts +85 -85
- package/dist/define/Expr.d.ts +154 -154
- package/dist/define/Fields.d.ts +13 -13
- package/dist/define/Functions.d.ts +5 -5
- package/dist/define/Id.d.ts +3 -3
- package/dist/define/Index.d.ts +17 -17
- package/dist/define/Ops.d.ts +7 -7
- package/dist/define/OrderBy.d.ts +9 -9
- package/dist/define/Param.d.ts +15 -15
- package/dist/define/Query.d.ts +109 -109
- package/dist/define/Schema.d.ts +18 -18
- package/dist/define/Selection.d.ts +20 -20
- package/dist/define/Table.d.ts +62 -62
- package/dist/define/Target.d.ts +38 -38
- package/dist/define/Update.d.ts +4 -4
- package/dist/driver/better-sqlite3.d.ts +15 -15
- package/dist/driver/bun-sqlite.d.ts +18 -18
- package/dist/driver/sql.js.d.ts +15 -15
- package/dist/driver/sqlite3.d.ts +18 -18
- package/dist/index.d.ts +20 -20
- package/dist/lib/Driver.d.ts +110 -110
- package/dist/lib/Formatter.d.ts +67 -67
- package/dist/lib/Sanitizer.d.ts +5 -5
- package/dist/lib/Statement.d.ts +29 -29
- package/dist/sqlite/SqliteFormatter.d.ts +11 -11
- package/dist/sqlite/SqliteFunctions.d.ts +165 -165
- package/dist/sqlite/SqliteSchema.d.ts +25 -25
- package/dist/sqlite.d.ts +2 -2
- package/package.json +60 -58
- package/dist/lib/Column.d.ts +0 -57
- package/dist/lib/Column.js +0 -68
- package/dist/lib/Cursor.d.ts +0 -85
- package/dist/lib/Cursor.js +0 -256
- package/dist/lib/Expr.d.ts +0 -154
- package/dist/lib/Expr.js +0 -284
- package/dist/lib/Fields.d.ts +0 -13
- package/dist/lib/Fields.js +0 -0
- package/dist/lib/Functions.d.ts +0 -5
- package/dist/lib/Functions.js +0 -11
- package/dist/lib/Id.d.ts +0 -3
- package/dist/lib/Id.js +0 -0
- package/dist/lib/Index.d.ts +0 -17
- package/dist/lib/Index.js +0 -20
- package/dist/lib/Ops.d.ts +0 -7
- package/dist/lib/Ops.js +0 -36
- package/dist/lib/OrderBy.d.ts +0 -9
- package/dist/lib/OrderBy.js +0 -9
- package/dist/lib/Param.d.ts +0 -20
- package/dist/lib/Param.js +0 -27
- package/dist/lib/Query.d.ts +0 -109
- package/dist/lib/Query.js +0 -74
- package/dist/lib/Schema.d.ts +0 -18
- package/dist/lib/Schema.js +0 -67
- package/dist/lib/Selection.d.ts +0 -20
- package/dist/lib/Selection.js +0 -7
- package/dist/lib/Table.d.ts +0 -62
- package/dist/lib/Table.js +0 -130
- package/dist/lib/Target.d.ts +0 -38
- package/dist/lib/Target.js +0 -42
- package/dist/lib/Update.d.ts +0 -4
- package/dist/lib/Update.js +0 -0
package/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
# rado
|
|
1
|
+
# rado
|
package/dist/define/Column.d.ts
CHANGED
|
@@ -1,58 +1,58 @@
|
|
|
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 | (() => 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>(create?: () => EV<T>): Column<Column.IsPrimary<T, K>>;
|
|
30
|
-
references<X extends T>(column: Expr<X> | (() => Expr<X>)): Column<X>;
|
|
31
|
-
unique(): Column<T>;
|
|
32
|
-
defaultValue(create: () => EV<T>): Column<Column.IsOptional<T>>;
|
|
33
|
-
defaultValue(value: EV<T>): Column<Column.IsOptional<T>>;
|
|
34
|
-
}
|
|
35
|
-
export type PrimaryKey<T, K> = string extends K ? T : T & {
|
|
36
|
-
[Column.isPrimary]: K;
|
|
37
|
-
};
|
|
38
|
-
export declare namespace Column {
|
|
39
|
-
const isOptional: unique symbol;
|
|
40
|
-
type IsOptional<T> = {
|
|
41
|
-
[isOptional]: true;
|
|
42
|
-
__t: T;
|
|
43
|
-
};
|
|
44
|
-
const isPrimary: unique symbol;
|
|
45
|
-
type IsPrimary<T, K> = {
|
|
46
|
-
[isPrimary]: K;
|
|
47
|
-
__t: T;
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
export declare const column: {
|
|
51
|
-
string<T extends string = string>(): Column<T>;
|
|
52
|
-
integer<T_1 extends number = number>(): Column<T_1>;
|
|
53
|
-
number<T_2 extends number = number>(): Column<T_2>;
|
|
54
|
-
boolean<T_3 extends boolean = boolean>(): Column<T_3>;
|
|
55
|
-
object<T_4 extends object = object>(): Column<T_4>;
|
|
56
|
-
array<T_5 = any>(): Column<T_5[]>;
|
|
57
|
-
};
|
|
58
|
-
export {};
|
|
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 | (() => 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>(create?: () => EV<T>): Column<Column.IsPrimary<T, K>>;
|
|
30
|
+
references<X extends T>(column: Expr<X> | (() => Expr<X>)): Column<X>;
|
|
31
|
+
unique(): Column<T>;
|
|
32
|
+
defaultValue(create: () => EV<T>): Column<Column.IsOptional<T>>;
|
|
33
|
+
defaultValue(value: EV<T>): Column<Column.IsOptional<T>>;
|
|
34
|
+
}
|
|
35
|
+
export type PrimaryKey<T, K> = string extends K ? T : T & {
|
|
36
|
+
[Column.isPrimary]: K;
|
|
37
|
+
};
|
|
38
|
+
export declare namespace Column {
|
|
39
|
+
const isOptional: unique symbol;
|
|
40
|
+
type IsOptional<T> = {
|
|
41
|
+
[isOptional]: true;
|
|
42
|
+
__t: T;
|
|
43
|
+
};
|
|
44
|
+
const isPrimary: unique symbol;
|
|
45
|
+
type IsPrimary<T, K> = {
|
|
46
|
+
[isPrimary]: K;
|
|
47
|
+
__t: T;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export declare const column: {
|
|
51
|
+
string<T extends string = string>(): Column<T>;
|
|
52
|
+
integer<T_1 extends number = number>(): Column<T_1>;
|
|
53
|
+
number<T_2 extends number = number>(): Column<T_2>;
|
|
54
|
+
boolean<T_3 extends boolean = boolean>(): Column<T_3>;
|
|
55
|
+
object<T_4 extends object = object>(): Column<T_4>;
|
|
56
|
+
array<T_5 = any>(): Column<T_5[]>;
|
|
57
|
+
};
|
|
58
|
+
export {};
|
package/dist/define/Cursor.d.ts
CHANGED
|
@@ -1,85 +1,85 @@
|
|
|
1
|
-
import { Driver } from '../lib/Driver';
|
|
2
|
-
import { EV, Expr } from './Expr';
|
|
3
|
-
import { OrderBy } from './OrderBy';
|
|
4
|
-
import { Query } from './Query';
|
|
5
|
-
import { Schema } from './Schema';
|
|
6
|
-
import { Selection } from './Selection';
|
|
7
|
-
import { Table } from './Table';
|
|
8
|
-
import { Update as UpdateSet } from './Update';
|
|
9
|
-
export declare class Cursor<T> {
|
|
10
|
-
[Selection.__cursorType](): T;
|
|
11
|
-
constructor(query: Query<T>);
|
|
12
|
-
static all(strings: TemplateStringsArray, ...params: Array<any>): Cursor<any>;
|
|
13
|
-
query(): Query<T>;
|
|
14
|
-
on(driver: Driver.Sync): T;
|
|
15
|
-
on(driver: Driver.Async): Promise<T>;
|
|
16
|
-
toJSON(): Query<T>;
|
|
17
|
-
}
|
|
18
|
-
export declare namespace Cursor {
|
|
19
|
-
class Delete extends Cursor<{
|
|
20
|
-
rowsAffected: number;
|
|
21
|
-
}> {
|
|
22
|
-
query(): Query.Delete;
|
|
23
|
-
where(...where: Array<EV<boolean>>): Delete;
|
|
24
|
-
take(limit: number | undefined): Delete;
|
|
25
|
-
skip(offset: number | undefined): Delete;
|
|
26
|
-
}
|
|
27
|
-
class Update<T> extends Cursor<{
|
|
28
|
-
rowsAffected: number;
|
|
29
|
-
}> {
|
|
30
|
-
query(): Query.Update;
|
|
31
|
-
set(set: UpdateSet<T>): Update<T>;
|
|
32
|
-
where(...where: Array<EV<boolean>>): Update<T>;
|
|
33
|
-
take(limit: number | undefined): Update<T>;
|
|
34
|
-
skip(offset: number | undefined): Update<T>;
|
|
35
|
-
}
|
|
36
|
-
class InsertValuesReturning<T> extends Cursor<T> {
|
|
37
|
-
}
|
|
38
|
-
class InsertValues extends Cursor<{
|
|
39
|
-
rowsAffected: number;
|
|
40
|
-
}> {
|
|
41
|
-
query(): Query.Insert;
|
|
42
|
-
returning<X extends Selection>(selection: X): InsertValuesReturning<Selection.Infer<X>>;
|
|
43
|
-
}
|
|
44
|
-
class Insert<T> {
|
|
45
|
-
protected into: Schema;
|
|
46
|
-
constructor(into: Schema);
|
|
47
|
-
values(...data: Array<Table.Insert<T>>): InsertValues;
|
|
48
|
-
}
|
|
49
|
-
class CreateTable extends Cursor<void> {
|
|
50
|
-
protected table: Schema;
|
|
51
|
-
constructor(table: Schema);
|
|
52
|
-
}
|
|
53
|
-
class Batch<T = void> extends Cursor<T> {
|
|
54
|
-
protected queries: Array<Query>;
|
|
55
|
-
constructor(queries: Array<Query>);
|
|
56
|
-
}
|
|
57
|
-
class SelectMultiple<T> extends Cursor<Array<T>> {
|
|
58
|
-
query(): Query.Select;
|
|
59
|
-
leftJoin<C>(that: Table<C>, ...on: Array<EV<boolean>>): SelectMultiple<T>;
|
|
60
|
-
innerJoin<C>(that: Table<C>, ...on: Array<EV<boolean>>): SelectMultiple<T>;
|
|
61
|
-
select<X extends Selection>(selection: X): SelectMultiple<Selection.Infer<X>>;
|
|
62
|
-
count(): SelectSingle<number>;
|
|
63
|
-
orderBy(...orderBy: Array<Expr<any> | OrderBy>): SelectMultiple<T>;
|
|
64
|
-
groupBy(...groupBy: Array<Expr<any>>): SelectMultiple<T>;
|
|
65
|
-
first(): SelectSingle<T | undefined>;
|
|
66
|
-
sure(): SelectSingle<T>;
|
|
67
|
-
where(...where: Array<EV<boolean>>): SelectMultiple<T>;
|
|
68
|
-
take(limit: number | undefined): SelectMultiple<T>;
|
|
69
|
-
skip(offset: number | undefined): SelectMultiple<T>;
|
|
70
|
-
toExpr(): Expr<T>;
|
|
71
|
-
}
|
|
72
|
-
class SelectSingle<T> extends Cursor<T> {
|
|
73
|
-
query(): Query.Select;
|
|
74
|
-
leftJoin<C>(that: Table<C>, ...on: Array<EV<boolean>>): SelectSingle<T>;
|
|
75
|
-
innerJoin<C>(that: Table<C>, ...on: Array<EV<boolean>>): SelectSingle<T>;
|
|
76
|
-
select<X extends Selection>(selection: X): SelectSingle<Selection.Infer<X>>;
|
|
77
|
-
orderBy(...orderBy: Array<OrderBy>): SelectSingle<T>;
|
|
78
|
-
groupBy(...groupBy: Array<Expr<any>>): SelectSingle<T>;
|
|
79
|
-
where(...where: Array<EV<boolean>>): SelectSingle<T>;
|
|
80
|
-
take(limit: number | undefined): SelectSingle<T>;
|
|
81
|
-
skip(offset: number | undefined): SelectSingle<T>;
|
|
82
|
-
all(): SelectMultiple<T>;
|
|
83
|
-
toExpr(): Expr<T>;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
1
|
+
import { Driver } from '../lib/Driver';
|
|
2
|
+
import { EV, Expr } from './Expr';
|
|
3
|
+
import { OrderBy } from './OrderBy';
|
|
4
|
+
import { Query } from './Query';
|
|
5
|
+
import { Schema } from './Schema';
|
|
6
|
+
import { Selection } from './Selection';
|
|
7
|
+
import { Table } from './Table';
|
|
8
|
+
import { Update as UpdateSet } from './Update';
|
|
9
|
+
export declare class Cursor<T> {
|
|
10
|
+
[Selection.__cursorType](): T;
|
|
11
|
+
constructor(query: Query<T>);
|
|
12
|
+
static all(strings: TemplateStringsArray, ...params: Array<any>): Cursor<any>;
|
|
13
|
+
query(): Query<T>;
|
|
14
|
+
on(driver: Driver.Sync): T;
|
|
15
|
+
on(driver: Driver.Async): Promise<T>;
|
|
16
|
+
toJSON(): Query<T>;
|
|
17
|
+
}
|
|
18
|
+
export declare namespace Cursor {
|
|
19
|
+
class Delete extends Cursor<{
|
|
20
|
+
rowsAffected: number;
|
|
21
|
+
}> {
|
|
22
|
+
query(): Query.Delete;
|
|
23
|
+
where(...where: Array<EV<boolean>>): Delete;
|
|
24
|
+
take(limit: number | undefined): Delete;
|
|
25
|
+
skip(offset: number | undefined): Delete;
|
|
26
|
+
}
|
|
27
|
+
class Update<T> extends Cursor<{
|
|
28
|
+
rowsAffected: number;
|
|
29
|
+
}> {
|
|
30
|
+
query(): Query.Update;
|
|
31
|
+
set(set: UpdateSet<T>): Update<T>;
|
|
32
|
+
where(...where: Array<EV<boolean>>): Update<T>;
|
|
33
|
+
take(limit: number | undefined): Update<T>;
|
|
34
|
+
skip(offset: number | undefined): Update<T>;
|
|
35
|
+
}
|
|
36
|
+
class InsertValuesReturning<T> extends Cursor<T> {
|
|
37
|
+
}
|
|
38
|
+
class InsertValues extends Cursor<{
|
|
39
|
+
rowsAffected: number;
|
|
40
|
+
}> {
|
|
41
|
+
query(): Query.Insert;
|
|
42
|
+
returning<X extends Selection>(selection: X): InsertValuesReturning<Selection.Infer<X>>;
|
|
43
|
+
}
|
|
44
|
+
class Insert<T> {
|
|
45
|
+
protected into: Schema;
|
|
46
|
+
constructor(into: Schema);
|
|
47
|
+
values(...data: Array<Table.Insert<T>>): InsertValues;
|
|
48
|
+
}
|
|
49
|
+
class CreateTable extends Cursor<void> {
|
|
50
|
+
protected table: Schema;
|
|
51
|
+
constructor(table: Schema);
|
|
52
|
+
}
|
|
53
|
+
class Batch<T = void> extends Cursor<T> {
|
|
54
|
+
protected queries: Array<Query>;
|
|
55
|
+
constructor(queries: Array<Query>);
|
|
56
|
+
}
|
|
57
|
+
class SelectMultiple<T> extends Cursor<Array<T>> {
|
|
58
|
+
query(): Query.Select;
|
|
59
|
+
leftJoin<C>(that: Table<C>, ...on: Array<EV<boolean>>): SelectMultiple<T>;
|
|
60
|
+
innerJoin<C>(that: Table<C>, ...on: Array<EV<boolean>>): SelectMultiple<T>;
|
|
61
|
+
select<X extends Selection>(selection: X): SelectMultiple<Selection.Infer<X>>;
|
|
62
|
+
count(): SelectSingle<number>;
|
|
63
|
+
orderBy(...orderBy: Array<Expr<any> | OrderBy>): SelectMultiple<T>;
|
|
64
|
+
groupBy(...groupBy: Array<Expr<any>>): SelectMultiple<T>;
|
|
65
|
+
first(): SelectSingle<T | undefined>;
|
|
66
|
+
sure(): SelectSingle<T>;
|
|
67
|
+
where(...where: Array<EV<boolean>>): SelectMultiple<T>;
|
|
68
|
+
take(limit: number | undefined): SelectMultiple<T>;
|
|
69
|
+
skip(offset: number | undefined): SelectMultiple<T>;
|
|
70
|
+
toExpr(): Expr<T>;
|
|
71
|
+
}
|
|
72
|
+
class SelectSingle<T> extends Cursor<T> {
|
|
73
|
+
query(): Query.Select;
|
|
74
|
+
leftJoin<C>(that: Table<C>, ...on: Array<EV<boolean>>): SelectSingle<T>;
|
|
75
|
+
innerJoin<C>(that: Table<C>, ...on: Array<EV<boolean>>): SelectSingle<T>;
|
|
76
|
+
select<X extends Selection>(selection: X): SelectSingle<Selection.Infer<X>>;
|
|
77
|
+
orderBy(...orderBy: Array<OrderBy>): SelectSingle<T>;
|
|
78
|
+
groupBy(...groupBy: Array<Expr<any>>): SelectSingle<T>;
|
|
79
|
+
where(...where: Array<EV<boolean>>): SelectSingle<T>;
|
|
80
|
+
take(limit: number | undefined): SelectSingle<T>;
|
|
81
|
+
skip(offset: number | undefined): SelectSingle<T>;
|
|
82
|
+
all(): SelectMultiple<T>;
|
|
83
|
+
toExpr(): Expr<T>;
|
|
84
|
+
}
|
|
85
|
+
}
|
package/dist/define/Expr.d.ts
CHANGED
|
@@ -1,154 +1,154 @@
|
|
|
1
|
-
import { Cursor } from './Cursor';
|
|
2
|
-
import { Fields } from './Fields';
|
|
3
|
-
import { OrderBy } from './OrderBy';
|
|
4
|
-
import { ParamData } from './Param';
|
|
5
|
-
import { Query } from './Query';
|
|
6
|
-
import { Selection } from './Selection';
|
|
7
|
-
import { Target } from './Target';
|
|
8
|
-
export declare enum UnOp {
|
|
9
|
-
Not = "Not",
|
|
10
|
-
IsNull = "IsNull"
|
|
11
|
-
}
|
|
12
|
-
export declare enum BinOp {
|
|
13
|
-
Add = "Add",
|
|
14
|
-
Subt = "Subt",
|
|
15
|
-
Mult = "Mult",
|
|
16
|
-
Mod = "Mod",
|
|
17
|
-
Div = "Div",
|
|
18
|
-
Greater = "Greater",
|
|
19
|
-
GreaterOrEqual = "GreaterOrEqual",
|
|
20
|
-
Less = "Less",
|
|
21
|
-
LessOrEqual = "LessOrEqual",
|
|
22
|
-
Equals = "Equals",
|
|
23
|
-
NotEquals = "NotEquals",
|
|
24
|
-
And = "And",
|
|
25
|
-
Or = "Or",
|
|
26
|
-
Like = "Like",
|
|
27
|
-
Glob = "Glob",
|
|
28
|
-
Match = "Match",
|
|
29
|
-
In = "In",
|
|
30
|
-
NotIn = "NotIn",
|
|
31
|
-
Concat = "Concat"
|
|
32
|
-
}
|
|
33
|
-
export declare enum ExprType {
|
|
34
|
-
UnOp = "UnOp",
|
|
35
|
-
BinOp = "BinOp",
|
|
36
|
-
Field = "Field",
|
|
37
|
-
Param = "Param",
|
|
38
|
-
Call = "Call",
|
|
39
|
-
Query = "Query",
|
|
40
|
-
Record = "Record",
|
|
41
|
-
Row = "Row",
|
|
42
|
-
Map = "Map",
|
|
43
|
-
Filter = "Filter",
|
|
44
|
-
Merge = "Merge",
|
|
45
|
-
Case = "Case"
|
|
46
|
-
}
|
|
47
|
-
export type ExprData = {
|
|
48
|
-
type: ExprType.UnOp;
|
|
49
|
-
op: UnOp;
|
|
50
|
-
expr: ExprData;
|
|
51
|
-
} | {
|
|
52
|
-
type: ExprType.BinOp;
|
|
53
|
-
op: BinOp;
|
|
54
|
-
a: ExprData;
|
|
55
|
-
b: ExprData;
|
|
56
|
-
} | {
|
|
57
|
-
type: ExprType.Field;
|
|
58
|
-
expr: ExprData;
|
|
59
|
-
field: string;
|
|
60
|
-
} | {
|
|
61
|
-
type: ExprType.Param;
|
|
62
|
-
param: ParamData;
|
|
63
|
-
} | {
|
|
64
|
-
type: ExprType.Call;
|
|
65
|
-
method: string;
|
|
66
|
-
params: Array<ExprData>;
|
|
67
|
-
} | {
|
|
68
|
-
type: ExprType.Query;
|
|
69
|
-
query: Query.Select;
|
|
70
|
-
} | {
|
|
71
|
-
type: ExprType.Record;
|
|
72
|
-
fields: Record<string, ExprData>;
|
|
73
|
-
} | {
|
|
74
|
-
type: ExprType.Merge;
|
|
75
|
-
a: ExprData;
|
|
76
|
-
b: ExprData;
|
|
77
|
-
} | {
|
|
78
|
-
type: ExprType.Row;
|
|
79
|
-
target: Target;
|
|
80
|
-
} | {
|
|
81
|
-
type: ExprType.Map;
|
|
82
|
-
target: Target;
|
|
83
|
-
result: ExprData;
|
|
84
|
-
} | {
|
|
85
|
-
type: ExprType.Filter;
|
|
86
|
-
target: Target;
|
|
87
|
-
condition: ExprData;
|
|
88
|
-
} | {
|
|
89
|
-
type: ExprType.Case;
|
|
90
|
-
expr: ExprData;
|
|
91
|
-
cases: Record<string, ExprData>;
|
|
92
|
-
defaultCase?: ExprData;
|
|
93
|
-
};
|
|
94
|
-
export declare const ExprData: {
|
|
95
|
-
UnOp(op: UnOp, expr: ExprData): ExprData;
|
|
96
|
-
BinOp(op: BinOp, a: ExprData, b: ExprData): ExprData;
|
|
97
|
-
Field(expr: ExprData, field: string): ExprData;
|
|
98
|
-
Param(param: ParamData): ExprData;
|
|
99
|
-
Call(method: string, params: Array<ExprData>): ExprData;
|
|
100
|
-
Query(query: Query.Select): ExprData;
|
|
101
|
-
Record(fields: Record<string, ExprData>): ExprData;
|
|
102
|
-
Merge(a: ExprData, b: ExprData): ExprData;
|
|
103
|
-
Row(target: Target): ExprData;
|
|
104
|
-
Map(target: Target, result: ExprData): ExprData;
|
|
105
|
-
Filter(target: Target, condition: ExprData): ExprData;
|
|
106
|
-
Case(expr: ExprData, cases: Record<string, ExprData>, defaultCase?: ExprData): ExprData;
|
|
107
|
-
create(input: any): ExprData;
|
|
108
|
-
};
|
|
109
|
-
/** Expression or value of type T */
|
|
110
|
-
export type EV<T> = Expr<T> | T;
|
|
111
|
-
export declare class Expr<T> {
|
|
112
|
-
expr: ExprData;
|
|
113
|
-
static NULL: ExprData;
|
|
114
|
-
static value<T>(value: T): Expr<T>;
|
|
115
|
-
static create<T>(input: EV<T>): Expr<T>;
|
|
116
|
-
static and(...conditions: Array<EV<boolean>>): Expr<boolean>;
|
|
117
|
-
static or(...conditions: Array<EV<boolean>>): Expr<boolean>;
|
|
118
|
-
constructor(expr: ExprData);
|
|
119
|
-
asc(): OrderBy;
|
|
120
|
-
desc(): OrderBy;
|
|
121
|
-
not(): Expr<boolean>;
|
|
122
|
-
or(this: Expr<boolean>, that: EV<boolean>): Expr<boolean>;
|
|
123
|
-
and(this: Expr<boolean>, that: EV<boolean>): Expr<boolean>;
|
|
124
|
-
isNull(): Expr<boolean>;
|
|
125
|
-
isNotNull(): Expr<boolean>;
|
|
126
|
-
isNot(that: EV<T>): Expr<boolean>;
|
|
127
|
-
is(that: EV<T> | Cursor.SelectSingle<T>): Expr<boolean>;
|
|
128
|
-
in(that: EV<Array<T>> | Cursor.SelectMultiple<T>): Expr<boolean>;
|
|
129
|
-
notIn(that: EV<Array<T>> | Cursor.SelectMultiple<T>): Expr<boolean>;
|
|
130
|
-
add(this: Expr<number>, that: EV<number>): Expr<number>;
|
|
131
|
-
substract(this: Expr<number>, that: EV<number>): Expr<number>;
|
|
132
|
-
multiply(this: Expr<number>, that: EV<number>): Expr<number>;
|
|
133
|
-
remainder(this: Expr<number>, that: EV<number>): Expr<number>;
|
|
134
|
-
divide(this: Expr<number>, that: EV<number>): Expr<number>;
|
|
135
|
-
greater(that: EV<any>): Expr<boolean>;
|
|
136
|
-
greaterOrEqual(that: EV<any>): Expr<boolean>;
|
|
137
|
-
less(that: EV<any>): Expr<boolean>;
|
|
138
|
-
lessOrEqual(that: EV<any>): Expr<boolean>;
|
|
139
|
-
concat(this: Expr<string>, that: EV<string>): Expr<string>;
|
|
140
|
-
like(this: Expr<string>, that: EV<string>): Expr<boolean>;
|
|
141
|
-
glob(this: Expr<string>, that: EV<string>): Expr<boolean>;
|
|
142
|
-
match(this: Expr<string>, that: EV<string>): Expr<boolean>;
|
|
143
|
-
with<X extends Selection>(that: X): Selection.With<T, X>;
|
|
144
|
-
at<T>(this: Expr<Array<T>>, index: number): Expr<T | null>;
|
|
145
|
-
filter<T>(this: Expr<Array<T>>, fn: (cursor: Fields<T>) => Expr<boolean>): Expr<Array<T>>;
|
|
146
|
-
map<T, X extends Selection>(this: Expr<Array<T>>, fn: (cursor: Fields<T>) => X): Expr<Array<Selection.Infer<X>>>;
|
|
147
|
-
sure(): Expr<NonNullable<T>>;
|
|
148
|
-
get<T>(name: string): Expr<T>;
|
|
149
|
-
}
|
|
150
|
-
export declare namespace Expr {
|
|
151
|
-
type Record<T> = Expr<T> & {
|
|
152
|
-
[K in keyof T]: Expr<T[K]>;
|
|
153
|
-
};
|
|
154
|
-
}
|
|
1
|
+
import { Cursor } from './Cursor';
|
|
2
|
+
import { Fields } from './Fields';
|
|
3
|
+
import { OrderBy } from './OrderBy';
|
|
4
|
+
import { ParamData } from './Param';
|
|
5
|
+
import { Query } from './Query';
|
|
6
|
+
import { Selection } from './Selection';
|
|
7
|
+
import { Target } from './Target';
|
|
8
|
+
export declare enum UnOp {
|
|
9
|
+
Not = "Not",
|
|
10
|
+
IsNull = "IsNull"
|
|
11
|
+
}
|
|
12
|
+
export declare enum BinOp {
|
|
13
|
+
Add = "Add",
|
|
14
|
+
Subt = "Subt",
|
|
15
|
+
Mult = "Mult",
|
|
16
|
+
Mod = "Mod",
|
|
17
|
+
Div = "Div",
|
|
18
|
+
Greater = "Greater",
|
|
19
|
+
GreaterOrEqual = "GreaterOrEqual",
|
|
20
|
+
Less = "Less",
|
|
21
|
+
LessOrEqual = "LessOrEqual",
|
|
22
|
+
Equals = "Equals",
|
|
23
|
+
NotEquals = "NotEquals",
|
|
24
|
+
And = "And",
|
|
25
|
+
Or = "Or",
|
|
26
|
+
Like = "Like",
|
|
27
|
+
Glob = "Glob",
|
|
28
|
+
Match = "Match",
|
|
29
|
+
In = "In",
|
|
30
|
+
NotIn = "NotIn",
|
|
31
|
+
Concat = "Concat"
|
|
32
|
+
}
|
|
33
|
+
export declare enum ExprType {
|
|
34
|
+
UnOp = "UnOp",
|
|
35
|
+
BinOp = "BinOp",
|
|
36
|
+
Field = "Field",
|
|
37
|
+
Param = "Param",
|
|
38
|
+
Call = "Call",
|
|
39
|
+
Query = "Query",
|
|
40
|
+
Record = "Record",
|
|
41
|
+
Row = "Row",
|
|
42
|
+
Map = "Map",
|
|
43
|
+
Filter = "Filter",
|
|
44
|
+
Merge = "Merge",
|
|
45
|
+
Case = "Case"
|
|
46
|
+
}
|
|
47
|
+
export type ExprData = {
|
|
48
|
+
type: ExprType.UnOp;
|
|
49
|
+
op: UnOp;
|
|
50
|
+
expr: ExprData;
|
|
51
|
+
} | {
|
|
52
|
+
type: ExprType.BinOp;
|
|
53
|
+
op: BinOp;
|
|
54
|
+
a: ExprData;
|
|
55
|
+
b: ExprData;
|
|
56
|
+
} | {
|
|
57
|
+
type: ExprType.Field;
|
|
58
|
+
expr: ExprData;
|
|
59
|
+
field: string;
|
|
60
|
+
} | {
|
|
61
|
+
type: ExprType.Param;
|
|
62
|
+
param: ParamData;
|
|
63
|
+
} | {
|
|
64
|
+
type: ExprType.Call;
|
|
65
|
+
method: string;
|
|
66
|
+
params: Array<ExprData>;
|
|
67
|
+
} | {
|
|
68
|
+
type: ExprType.Query;
|
|
69
|
+
query: Query.Select;
|
|
70
|
+
} | {
|
|
71
|
+
type: ExprType.Record;
|
|
72
|
+
fields: Record<string, ExprData>;
|
|
73
|
+
} | {
|
|
74
|
+
type: ExprType.Merge;
|
|
75
|
+
a: ExprData;
|
|
76
|
+
b: ExprData;
|
|
77
|
+
} | {
|
|
78
|
+
type: ExprType.Row;
|
|
79
|
+
target: Target;
|
|
80
|
+
} | {
|
|
81
|
+
type: ExprType.Map;
|
|
82
|
+
target: Target;
|
|
83
|
+
result: ExprData;
|
|
84
|
+
} | {
|
|
85
|
+
type: ExprType.Filter;
|
|
86
|
+
target: Target;
|
|
87
|
+
condition: ExprData;
|
|
88
|
+
} | {
|
|
89
|
+
type: ExprType.Case;
|
|
90
|
+
expr: ExprData;
|
|
91
|
+
cases: Record<string, ExprData>;
|
|
92
|
+
defaultCase?: ExprData;
|
|
93
|
+
};
|
|
94
|
+
export declare const ExprData: {
|
|
95
|
+
UnOp(op: UnOp, expr: ExprData): ExprData;
|
|
96
|
+
BinOp(op: BinOp, a: ExprData, b: ExprData): ExprData;
|
|
97
|
+
Field(expr: ExprData, field: string): ExprData;
|
|
98
|
+
Param(param: ParamData): ExprData;
|
|
99
|
+
Call(method: string, params: Array<ExprData>): ExprData;
|
|
100
|
+
Query(query: Query.Select): ExprData;
|
|
101
|
+
Record(fields: Record<string, ExprData>): ExprData;
|
|
102
|
+
Merge(a: ExprData, b: ExprData): ExprData;
|
|
103
|
+
Row(target: Target): ExprData;
|
|
104
|
+
Map(target: Target, result: ExprData): ExprData;
|
|
105
|
+
Filter(target: Target, condition: ExprData): ExprData;
|
|
106
|
+
Case(expr: ExprData, cases: Record<string, ExprData>, defaultCase?: ExprData): ExprData;
|
|
107
|
+
create(input: any): ExprData;
|
|
108
|
+
};
|
|
109
|
+
/** Expression or value of type T */
|
|
110
|
+
export type EV<T> = Expr<T> | T;
|
|
111
|
+
export declare class Expr<T> {
|
|
112
|
+
expr: ExprData;
|
|
113
|
+
static NULL: ExprData;
|
|
114
|
+
static value<T>(value: T): Expr<T>;
|
|
115
|
+
static create<T>(input: EV<T>): Expr<T>;
|
|
116
|
+
static and(...conditions: Array<EV<boolean>>): Expr<boolean>;
|
|
117
|
+
static or(...conditions: Array<EV<boolean>>): Expr<boolean>;
|
|
118
|
+
constructor(expr: ExprData);
|
|
119
|
+
asc(): OrderBy;
|
|
120
|
+
desc(): OrderBy;
|
|
121
|
+
not(): Expr<boolean>;
|
|
122
|
+
or(this: Expr<boolean>, that: EV<boolean>): Expr<boolean>;
|
|
123
|
+
and(this: Expr<boolean>, that: EV<boolean>): Expr<boolean>;
|
|
124
|
+
isNull(): Expr<boolean>;
|
|
125
|
+
isNotNull(): Expr<boolean>;
|
|
126
|
+
isNot(that: EV<T>): Expr<boolean>;
|
|
127
|
+
is(that: EV<T> | Cursor.SelectSingle<T>): Expr<boolean>;
|
|
128
|
+
in(that: EV<Array<T>> | Cursor.SelectMultiple<T>): Expr<boolean>;
|
|
129
|
+
notIn(that: EV<Array<T>> | Cursor.SelectMultiple<T>): Expr<boolean>;
|
|
130
|
+
add(this: Expr<number>, that: EV<number>): Expr<number>;
|
|
131
|
+
substract(this: Expr<number>, that: EV<number>): Expr<number>;
|
|
132
|
+
multiply(this: Expr<number>, that: EV<number>): Expr<number>;
|
|
133
|
+
remainder(this: Expr<number>, that: EV<number>): Expr<number>;
|
|
134
|
+
divide(this: Expr<number>, that: EV<number>): Expr<number>;
|
|
135
|
+
greater(that: EV<any>): Expr<boolean>;
|
|
136
|
+
greaterOrEqual(that: EV<any>): Expr<boolean>;
|
|
137
|
+
less(that: EV<any>): Expr<boolean>;
|
|
138
|
+
lessOrEqual(that: EV<any>): Expr<boolean>;
|
|
139
|
+
concat(this: Expr<string>, that: EV<string>): Expr<string>;
|
|
140
|
+
like(this: Expr<string>, that: EV<string>): Expr<boolean>;
|
|
141
|
+
glob(this: Expr<string>, that: EV<string>): Expr<boolean>;
|
|
142
|
+
match(this: Expr<string>, that: EV<string>): Expr<boolean>;
|
|
143
|
+
with<X extends Selection>(that: X): Selection.With<T, X>;
|
|
144
|
+
at<T>(this: Expr<Array<T>>, index: number): Expr<T | null>;
|
|
145
|
+
filter<T>(this: Expr<Array<T>>, fn: (cursor: Fields<T>) => Expr<boolean>): Expr<Array<T>>;
|
|
146
|
+
map<T, X extends Selection>(this: Expr<Array<T>>, fn: (cursor: Fields<T>) => X): Expr<Array<Selection.Infer<X>>>;
|
|
147
|
+
sure(): Expr<NonNullable<T>>;
|
|
148
|
+
get<T>(name: string): Expr<T>;
|
|
149
|
+
}
|
|
150
|
+
export declare namespace Expr {
|
|
151
|
+
type Record<T> = Expr<T> & {
|
|
152
|
+
[K in keyof T]: Expr<T[K]>;
|
|
153
|
+
};
|
|
154
|
+
}
|
package/dist/define/Fields.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { Column, PrimaryKey } from './Column';
|
|
2
|
-
import { Expr } from './Expr';
|
|
3
|
-
type ObjectUnion<T> = {
|
|
4
|
-
[K in T extends infer P ? keyof P : never]: T extends infer P ? K extends keyof P ? P[K] : never : never;
|
|
5
|
-
};
|
|
6
|
-
type RecordField<T> = Expr<T> & FieldsOf<ObjectUnion<T>>;
|
|
7
|
-
type Field<T> = [T] extends [Array<any>] ? Expr<T> : [T] extends [Column.IsPrimary<infer V, infer K>] ? Expr<PrimaryKey<V, K>> : [T] extends [Column.IsOptional<infer V>] ? Field<V> : [T] extends [number | string | boolean] ? Expr<T> : [T] extends [Record<string, any> | null] ? RecordField<T> : Expr<T>;
|
|
8
|
-
type FieldsOf<Row> = Row extends Record<string, any> ? {
|
|
9
|
-
[K in keyof Row]-?: Field<Row[K]>;
|
|
10
|
-
} : never;
|
|
11
|
-
type IsStrictlyAny<T> = (T extends never ? true : false) extends false ? false : true;
|
|
12
|
-
export type Fields<T> = IsStrictlyAny<T> extends true ? any : T extends object ? FieldsOf<T> : Field<T>;
|
|
13
|
-
export {};
|
|
1
|
+
import { Column, PrimaryKey } from './Column';
|
|
2
|
+
import { Expr } from './Expr';
|
|
3
|
+
type ObjectUnion<T> = {
|
|
4
|
+
[K in T extends infer P ? keyof P : never]: T extends infer P ? K extends keyof P ? P[K] : never : never;
|
|
5
|
+
};
|
|
6
|
+
type RecordField<T> = Expr<T> & FieldsOf<ObjectUnion<T>>;
|
|
7
|
+
type Field<T> = [T] extends [Array<any>] ? Expr<T> : [T] extends [Column.IsPrimary<infer V, infer K>] ? Expr<PrimaryKey<V, K>> : [T] extends [Column.IsOptional<infer V>] ? Field<V> : [T] extends [number | string | boolean] ? Expr<T> : [T] extends [Record<string, any> | null] ? RecordField<T> : Expr<T>;
|
|
8
|
+
type FieldsOf<Row> = Row extends Record<string, any> ? {
|
|
9
|
+
[K in keyof Row]-?: Field<Row[K]>;
|
|
10
|
+
} : never;
|
|
11
|
+
type IsStrictlyAny<T> = (T extends never ? true : false) extends false ? false : true;
|
|
12
|
+
export type Fields<T> = IsStrictlyAny<T> extends true ? any : T extends object ? FieldsOf<T> : Field<T>;
|
|
13
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Expr } from './Expr';
|
|
2
|
-
export declare const Functions: Functions;
|
|
3
|
-
export type Functions = {
|
|
4
|
-
[key: string]: (...args: Array<any>) => Expr<any>;
|
|
5
|
-
};
|
|
1
|
+
import { Expr } from './Expr';
|
|
2
|
+
export declare const Functions: Functions;
|
|
3
|
+
export type Functions = {
|
|
4
|
+
[key: string]: (...args: Array<any>) => Expr<any>;
|
|
5
|
+
};
|
package/dist/define/Id.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export type Id<T> = T extends {
|
|
2
|
-
id: any;
|
|
3
|
-
} ? T['id'] : never;
|
|
1
|
+
export type Id<T> = T extends {
|
|
2
|
+
id: any;
|
|
3
|
+
} ? T['id'] : never;
|