rado 0.1.48 → 0.1.49

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 (72) hide show
  1. package/README.md +1 -1
  2. package/dist/define/Column.d.ts +58 -0
  3. package/dist/define/Column.js +75 -0
  4. package/dist/define/Cursor.d.ts +85 -0
  5. package/dist/define/Cursor.js +256 -0
  6. package/dist/define/Expr.d.ts +154 -0
  7. package/dist/define/Expr.js +284 -0
  8. package/dist/define/Fields.d.ts +13 -0
  9. package/dist/define/Fields.js +0 -0
  10. package/dist/define/Functions.d.ts +5 -0
  11. package/dist/define/Functions.js +11 -0
  12. package/dist/define/Id.d.ts +3 -0
  13. package/dist/define/Id.js +0 -0
  14. package/dist/define/Index.d.ts +17 -0
  15. package/dist/define/Index.js +20 -0
  16. package/dist/define/Ops.d.ts +7 -0
  17. package/dist/define/Ops.js +36 -0
  18. package/dist/define/OrderBy.d.ts +9 -0
  19. package/dist/define/OrderBy.js +9 -0
  20. package/dist/define/Param.d.ts +15 -0
  21. package/dist/define/Param.js +18 -0
  22. package/dist/define/Query.d.ts +109 -0
  23. package/dist/define/Query.js +74 -0
  24. package/dist/define/Schema.d.ts +18 -0
  25. package/dist/define/Schema.js +67 -0
  26. package/dist/define/Selection.d.ts +20 -0
  27. package/dist/define/Selection.js +7 -0
  28. package/dist/define/Table.d.ts +62 -0
  29. package/dist/define/Table.js +130 -0
  30. package/dist/define/Target.d.ts +38 -0
  31. package/dist/define/Target.js +42 -0
  32. package/dist/define/Update.d.ts +4 -0
  33. package/dist/define/Update.js +0 -0
  34. package/dist/driver/better-sqlite3.d.ts +15 -15
  35. package/dist/driver/bun-sqlite.d.ts +18 -18
  36. package/dist/driver/bun-sqlite.js +2 -2
  37. package/dist/driver/sql.js.d.ts +15 -15
  38. package/dist/driver/sqlite3.d.ts +18 -18
  39. package/dist/index.d.ts +20 -20
  40. package/dist/index.js +16 -20
  41. package/dist/lib/Column.d.ts +57 -58
  42. package/dist/lib/Column.js +4 -11
  43. package/dist/lib/Cursor.d.ts +85 -85
  44. package/dist/lib/Driver.d.ts +110 -110
  45. package/dist/lib/Driver.js +5 -5
  46. package/dist/lib/Expr.d.ts +154 -154
  47. package/dist/lib/Fields.d.ts +13 -13
  48. package/dist/lib/Formatter.d.ts +67 -67
  49. package/dist/lib/Formatter.js +6 -6
  50. package/dist/lib/Functions.d.ts +5 -5
  51. package/dist/lib/Id.d.ts +3 -3
  52. package/dist/lib/Index.d.ts +17 -17
  53. package/dist/lib/Ops.d.ts +7 -7
  54. package/dist/lib/OrderBy.d.ts +9 -9
  55. package/dist/lib/Param.d.ts +20 -20
  56. package/dist/lib/Query.d.ts +109 -109
  57. package/dist/lib/Sanitizer.d.ts +5 -5
  58. package/dist/lib/Schema.d.ts +18 -18
  59. package/dist/lib/Selection.d.ts +20 -20
  60. package/dist/lib/Statement.d.ts +29 -29
  61. package/dist/lib/Statement.js +1 -1
  62. package/dist/lib/Table.d.ts +62 -62
  63. package/dist/lib/Target.d.ts +38 -38
  64. package/dist/lib/Update.d.ts +4 -4
  65. package/dist/sqlite/SqliteFormatter.d.ts +11 -11
  66. package/dist/sqlite/SqliteFormatter.js +1 -1
  67. package/dist/sqlite/SqliteFunctions.d.ts +165 -165
  68. package/dist/sqlite/SqliteFunctions.js +1 -1
  69. package/dist/sqlite/SqliteSchema.d.ts +25 -25
  70. package/dist/sqlite/SqliteSchema.js +1 -1
  71. package/dist/sqlite.d.ts +2 -2
  72. package/package.json +58 -57
@@ -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
+ }
@@ -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,67 +1,67 @@
1
- import { ColumnData, ColumnType } from './Column';
2
- import { ExprData } from './Expr';
3
- import { OrderBy } from './OrderBy';
4
- import { Query } from './Query';
5
- import { Sanitizer } from './Sanitizer';
6
- import { Statement } from './Statement';
7
- import { Target } from './Target';
8
- export interface FormatContext {
9
- stmt: Statement;
10
- nameResult?: string;
11
- /** Skip prefixing fields with their table name */
12
- skipTableName?: boolean;
13
- /**
14
- * In SQLite table names are used as expressions in the FTS5 plugin.
15
- * To distinguish between formatting a row of the table and just the table name
16
- * this flag can be used.
17
- **/
18
- tableAsExpr?: boolean;
19
- /** Inline all parameters */
20
- forceInline?: boolean;
21
- formatAsJson?: boolean;
22
- formatAsDefault?: boolean;
23
- topLevel?: boolean;
24
- }
25
- type FormatSubject = (stmt: Statement, mkSubject: () => void) => void;
26
- export declare abstract class Formatter implements Sanitizer {
27
- constructor();
28
- abstract escapeValue(value: any): string;
29
- abstract escapeIdentifier(ident: string): string;
30
- abstract formatParamValue(paramValue: any): any;
31
- abstract formatAccess(ctx: FormatContext, mkSubject: () => void, field: string): Statement;
32
- compile<T>(query: Query<T>, options?: Partial<FormatContext>): Statement;
33
- format<T>(ctx: FormatContext, query: Query<T>): Statement;
34
- formatSelect(ctx: FormatContext, query: Query.Select): Statement;
35
- formatInsert(ctx: FormatContext, query: Query.Insert): Statement;
36
- formatUpdate(ctx: FormatContext, query: Query.Update): Statement;
37
- formatDelete(ctx: FormatContext, query: Query.Delete): Statement;
38
- formatCreateTable(ctx: FormatContext, query: Query.CreateTable): Statement;
39
- formatCreateIndex(ctx: FormatContext, query: Query.CreateIndex): Statement;
40
- formatDropIndex(ctx: FormatContext, query: Query.DropIndex): Statement;
41
- formatAlterTable(ctx: FormatContext, query: Query.AlterTable): Statement;
42
- formatTransaction(ctx: FormatContext, { op, id }: Query.Transaction): Statement;
43
- formatBatch(ctx: FormatContext, { queries }: Query.Batch): Statement;
44
- formatRaw(ctx: FormatContext, { strings, params }: Query.Raw): Statement;
45
- formatColumn(ctx: FormatContext, column: ColumnData): Statement;
46
- formatContraintReference(ctx: FormatContext, reference: ExprData): Statement;
47
- formatType(ctx: FormatContext, type: ColumnType): Statement;
48
- formatInsertRow(ctx: FormatContext, columns: Record<string, ColumnData>, row: Record<string, any>): Statement;
49
- formatColumnValue(ctx: FormatContext, column: ColumnData, columnValue: any): Statement;
50
- formatTarget(ctx: FormatContext, target: Target): Statement;
51
- formatWhere(ctx: FormatContext, expr: ExprData | undefined): Statement;
52
- formatHaving(ctx: FormatContext, expr: ExprData | undefined): Statement;
53
- formatGroupBy(ctx: FormatContext, groupBy: Array<ExprData> | undefined): Statement;
54
- formatOrderBy(ctx: FormatContext, orderBy: Array<OrderBy> | undefined): Statement;
55
- formatLimit(ctx: FormatContext, { limit, offset, singleResult }: Query.QueryBase): Statement;
56
- formatSelection(ctx: FormatContext, selection: ExprData, formatSubject?: FormatSubject): Statement;
57
- formatExprJson(ctx: FormatContext, expr: ExprData): Statement;
58
- formatExprValue(ctx: FormatContext, expr: ExprData): Statement;
59
- formatIn(ctx: FormatContext, expr: ExprData): Statement;
60
- retrieveField(expr: ExprData, field: string): ExprData | undefined;
61
- formatField(ctx: FormatContext, expr: ExprData, field: string): Statement;
62
- formatString(ctx: FormatContext, input: string): Statement;
63
- formatInlineValue(ctx: FormatContext, rawValue: any): Statement;
64
- formatValue(ctx: FormatContext, rawValue: any): Statement;
65
- formatExpr(ctx: FormatContext, expr: ExprData): Statement;
66
- }
67
- export {};
1
+ import { ColumnData, ColumnType } from '../define/Column';
2
+ import { ExprData } from '../define/Expr';
3
+ import { OrderBy } from '../define/OrderBy';
4
+ import { Query } from '../define/Query';
5
+ import { Target } from '../define/Target';
6
+ import { Sanitizer } from './Sanitizer';
7
+ import { Statement } from './Statement';
8
+ export interface FormatContext {
9
+ stmt: Statement;
10
+ nameResult?: string;
11
+ /** Skip prefixing fields with their table name */
12
+ skipTableName?: boolean;
13
+ /**
14
+ * In SQLite table names are used as expressions in the FTS5 plugin.
15
+ * To distinguish between formatting a row of the table and just the table name
16
+ * this flag can be used.
17
+ **/
18
+ tableAsExpr?: boolean;
19
+ /** Inline all parameters */
20
+ forceInline?: boolean;
21
+ formatAsJson?: boolean;
22
+ formatAsDefault?: boolean;
23
+ topLevel?: boolean;
24
+ }
25
+ type FormatSubject = (stmt: Statement, mkSubject: () => void) => void;
26
+ export declare abstract class Formatter implements Sanitizer {
27
+ constructor();
28
+ abstract escapeValue(value: any): string;
29
+ abstract escapeIdentifier(ident: string): string;
30
+ abstract formatParamValue(paramValue: any): any;
31
+ abstract formatAccess(ctx: FormatContext, mkSubject: () => void, field: string): Statement;
32
+ compile<T>(query: Query<T>, options?: Partial<FormatContext>): Statement;
33
+ format<T>(ctx: FormatContext, query: Query<T>): Statement;
34
+ formatSelect(ctx: FormatContext, query: Query.Select): Statement;
35
+ formatInsert(ctx: FormatContext, query: Query.Insert): Statement;
36
+ formatUpdate(ctx: FormatContext, query: Query.Update): Statement;
37
+ formatDelete(ctx: FormatContext, query: Query.Delete): Statement;
38
+ formatCreateTable(ctx: FormatContext, query: Query.CreateTable): Statement;
39
+ formatCreateIndex(ctx: FormatContext, query: Query.CreateIndex): Statement;
40
+ formatDropIndex(ctx: FormatContext, query: Query.DropIndex): Statement;
41
+ formatAlterTable(ctx: FormatContext, query: Query.AlterTable): Statement;
42
+ formatTransaction(ctx: FormatContext, { op, id }: Query.Transaction): Statement;
43
+ formatBatch(ctx: FormatContext, { queries }: Query.Batch): Statement;
44
+ formatRaw(ctx: FormatContext, { strings, params }: Query.Raw): Statement;
45
+ formatColumn(ctx: FormatContext, column: ColumnData): Statement;
46
+ formatContraintReference(ctx: FormatContext, reference: ExprData): Statement;
47
+ formatType(ctx: FormatContext, type: ColumnType): Statement;
48
+ formatInsertRow(ctx: FormatContext, columns: Record<string, ColumnData>, row: Record<string, any>): Statement;
49
+ formatColumnValue(ctx: FormatContext, column: ColumnData, columnValue: any): Statement;
50
+ formatTarget(ctx: FormatContext, target: Target): Statement;
51
+ formatWhere(ctx: FormatContext, expr: ExprData | undefined): Statement;
52
+ formatHaving(ctx: FormatContext, expr: ExprData | undefined): Statement;
53
+ formatGroupBy(ctx: FormatContext, groupBy: Array<ExprData> | undefined): Statement;
54
+ formatOrderBy(ctx: FormatContext, orderBy: Array<OrderBy> | undefined): Statement;
55
+ formatLimit(ctx: FormatContext, { limit, offset, singleResult }: Query.QueryBase): Statement;
56
+ formatSelection(ctx: FormatContext, selection: ExprData, formatSubject?: FormatSubject): Statement;
57
+ formatExprJson(ctx: FormatContext, expr: ExprData): Statement;
58
+ formatExprValue(ctx: FormatContext, expr: ExprData): Statement;
59
+ formatIn(ctx: FormatContext, expr: ExprData): Statement;
60
+ retrieveField(expr: ExprData, field: string): ExprData | undefined;
61
+ formatField(ctx: FormatContext, expr: ExprData, field: string): Statement;
62
+ formatString(ctx: FormatContext, input: string): Statement;
63
+ formatInlineValue(ctx: FormatContext, rawValue: any): Statement;
64
+ formatValue(ctx: FormatContext, rawValue: any): Statement;
65
+ formatExpr(ctx: FormatContext, expr: ExprData): Statement;
66
+ }
67
+ export {};
@@ -1,11 +1,11 @@
1
1
  // src/lib/Formatter.ts
2
- import { ColumnType } from "./Column.js";
3
- import { BinOp, Expr, ExprData, ExprType, UnOp } from "./Expr.js";
4
- import { OrderDirection } from "./OrderBy.js";
5
- import { ParamType } from "./Param.js";
6
- import { Query, QueryType } from "./Query.js";
2
+ import { ColumnType } from "../define/Column.js";
3
+ import { BinOp, Expr, ExprData, ExprType, UnOp } from "../define/Expr.js";
4
+ import { OrderDirection } from "../define/OrderBy.js";
5
+ import { ParamType } from "../define/Param.js";
6
+ import { Query, QueryType } from "../define/Query.js";
7
+ import { Target, TargetType } from "../define/Target.js";
7
8
  import { Statement } from "./Statement.js";
8
- import { Target, TargetType } from "./Target.js";
9
9
  var binOps = {
10
10
  [BinOp.Add]: "+",
11
11
  [BinOp.Subt]: "-",
@@ -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/lib/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;
@@ -1,17 +1,17 @@
1
- import { Expr, ExprData } from './Expr';
2
- interface PartialIndexData {
3
- on: Array<ExprData>;
4
- unique?: boolean;
5
- where?: ExprData;
6
- }
7
- export interface IndexData extends PartialIndexData {
8
- name: string;
9
- }
10
- export declare class Index {
11
- data: PartialIndexData;
12
- constructor(data: PartialIndexData);
13
- unique(): Index;
14
- where(where: Expr<boolean>): Index;
15
- }
16
- export declare function index(...on: Array<Expr<any>>): Index;
17
- export {};
1
+ import { Expr, ExprData } from './Expr';
2
+ interface PartialIndexData {
3
+ on: Array<ExprData>;
4
+ unique?: boolean;
5
+ where?: ExprData;
6
+ }
7
+ export interface IndexData extends PartialIndexData {
8
+ name: string;
9
+ }
10
+ export declare class Index {
11
+ data: PartialIndexData;
12
+ constructor(data: PartialIndexData);
13
+ unique(): Index;
14
+ where(where: Expr<boolean>): Index;
15
+ }
16
+ export declare function index(...on: Array<Expr<any>>): Index;
17
+ export {};
package/dist/lib/Ops.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { Cursor } from './Cursor';
2
- import { Table } from './Table';
3
- export declare function from<Row>(source: Table<Row> | Cursor.SelectMultiple<Row>): Cursor.SelectMultiple<Row>;
4
- export declare function update<Row>(table: Table<Row>): Cursor.Update<Row>;
5
- export declare function insertInto<Row>(table: Table<Row>): Cursor.Insert<Row>;
6
- export declare function deleteFrom<Row>(table: Table<Row>): Cursor.Delete;
7
- export declare function create(...tables: Array<Table<any>>): Cursor.Batch;
1
+ import { Cursor } from './Cursor';
2
+ import { Table } from './Table';
3
+ export declare function from<Row>(source: Table<Row> | Cursor.SelectMultiple<Row>): Cursor.SelectMultiple<Row>;
4
+ export declare function update<Row>(table: Table<Row>): Cursor.Update<Row>;
5
+ export declare function insertInto<Row>(table: Table<Row>): Cursor.Insert<Row>;
6
+ export declare function deleteFrom<Row>(table: Table<Row>): Cursor.Delete;
7
+ export declare function create(...tables: Array<Table<any>>): Cursor.Batch;
@@ -1,9 +1,9 @@
1
- import { ExprData } from './Expr';
2
- export declare enum OrderDirection {
3
- Asc = "Asc",
4
- Desc = "Desc"
5
- }
6
- export type OrderBy = {
7
- expr: ExprData;
8
- order: OrderDirection;
9
- };
1
+ import { ExprData } from './Expr';
2
+ export declare enum OrderDirection {
3
+ Asc = "Asc",
4
+ Desc = "Desc"
5
+ }
6
+ export type OrderBy = {
7
+ expr: ExprData;
8
+ order: OrderDirection;
9
+ };
@@ -1,20 +1,20 @@
1
- import { Expr } from './Expr';
2
- export declare enum ParamType {
3
- Value = "Value",
4
- Named = "Named"
5
- }
6
- export type ParamData = {
7
- type: ParamType.Value;
8
- value: any;
9
- } | {
10
- type: ParamType.Named;
11
- name: string;
12
- };
13
- export declare const ParamData: {
14
- Value(value: any): ParamData;
15
- Named(name: string): ParamData;
16
- };
17
- export type Params<T> = {
18
- [K in keyof T]: Expr<T[K]>;
19
- };
20
- export declare function createParams<T>(): Params<T>;
1
+ import { Expr } from './Expr';
2
+ export declare enum ParamType {
3
+ Value = "Value",
4
+ Named = "Named"
5
+ }
6
+ export type ParamData = {
7
+ type: ParamType.Value;
8
+ value: any;
9
+ } | {
10
+ type: ParamType.Named;
11
+ name: string;
12
+ };
13
+ export declare const ParamData: {
14
+ Value(value: any): ParamData;
15
+ Named(name: string): ParamData;
16
+ };
17
+ export type Params<T> = {
18
+ [K in keyof T]: Expr<T[K]>;
19
+ };
20
+ export declare function createParams<T>(): Params<T>;