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.
@@ -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
- [Column.type]: T;
27
- [Column.data]: PartialColumnData;
28
+ [TYPE]: T;
29
+ [DATA]: PartialColumnData;
28
30
  }
29
31
  export declare namespace Column {
30
- const data: unique symbol;
31
- const type: unique symbol;
32
- const isOptional: unique symbol;
33
- const isNullable: unique symbol;
34
- const isPrimary: unique symbol;
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
- [Column.type]: T;
41
- [Column.data]: PartialColumnData;
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.isOptional]: true;
53
+ [Column.IsOptional]: true;
52
54
  }
53
55
  export declare class PrimaryColumn<T, K> extends ValueColumn<PrimaryKey<T, K>> {
54
- [Column.isPrimary]: K;
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
- [Column.type]: T;
61
- [Column.data]: PartialColumnData;
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.isOptional]: true;
70
+ [Column.IsOptional]: true;
69
71
  }
70
72
  export type PrimaryKey<T, K> = string extends K ? T : T & {
71
- [Column.isPrimary]: K;
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
- [Column.data]: PartialColumnData;
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
- [Column.data]: PartialColumnData;
93
+ [DATA]: PartialColumnData;
92
94
  get unique(): UnTyped;
93
95
  get string(): ValueColumn<string | null>;
94
96
  get integer(): ValueColumn<number | null>;
@@ -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.data = Symbol("columnData");
15
- Column2.type = Symbol("columnType");
16
+ Column2.Data = DATA;
17
+ Column2.Type = TYPE;
16
18
  })(Column || (Column = {}));
17
19
  var ValueColumn = class {
18
- [Column.type];
19
- [Column.data];
20
+ [(TYPE, DATA)];
20
21
  constructor(data) {
21
- this[Column.data] = data;
22
+ this[DATA] = data;
22
23
  return callable(this, (defaultValue) => {
23
24
  return new ValueColumn({
24
- ...this[Column.data],
25
+ ...this[DATA],
25
26
  defaultValue: createDefaultValue(defaultValue)
26
27
  });
27
28
  });
28
29
  }
29
30
  get nullable() {
30
- return new ValueColumn({ ...this[Column.data], nullable: true });
31
+ return new ValueColumn({ ...this[DATA], nullable: true });
31
32
  }
32
33
  get unique() {
33
- return new ValueColumn({ ...this[Column.data], unique: true });
34
+ return new ValueColumn({ ...this[DATA], unique: true });
34
35
  }
35
36
  get autoIncrement() {
36
- return new OptionalColumn({ ...this[Column.data], autoIncrement: true });
37
+ return new OptionalColumn({ ...this[DATA], autoIncrement: true });
37
38
  }
38
39
  primaryKey(create) {
39
40
  return new PrimaryColumn({
40
- ...this[Column.data],
41
+ ...this[DATA],
41
42
  primaryKey: true,
42
- defaultValue: create ? () => ExprData.create(create()) : this[Column.data].defaultValue
43
+ defaultValue: create ? () => ExprData.create(create()) : this[DATA].defaultValue
43
44
  });
44
45
  }
45
46
  references(column2) {
46
47
  return new ValueColumn({
47
- ...this[Column.data],
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[Column.data],
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.isOptional];
65
+ [Column.IsOptional];
65
66
  };
66
67
  var PrimaryColumn = class extends ValueColumn {
67
- [Column.isPrimary];
68
+ [Column.IsPrimary];
68
69
  };
69
70
  var ObjectColumn = class {
70
- [Column.type];
71
- [Column.data];
71
+ [(TYPE, DATA)];
72
72
  constructor(data) {
73
- this[Column.data] = data;
73
+ this[DATA] = data;
74
74
  return callable(this, () => this);
75
75
  }
76
76
  get nullable() {
77
- return new ObjectColumn({ ...this[Column.data], nullable: true });
77
+ return new ObjectColumn({ ...this[DATA], nullable: true });
78
78
  }
79
79
  get unique() {
80
- return new ObjectColumn({ ...this[Column.data], unique: true });
80
+ return new ObjectColumn({ ...this[DATA], unique: true });
81
81
  }
82
82
  defaultValue(value) {
83
83
  return new OptionalObjectColumn({
84
- ...this[Column.data],
84
+ ...this[DATA],
85
85
  defaultValue: createDefaultValue(value)
86
86
  });
87
87
  }
88
88
  };
89
89
  var OptionalObjectColumn = class extends ObjectColumn {
90
- [Column.isOptional];
90
+ [Column.IsOptional];
91
91
  };
92
92
  var UnTyped = class {
93
- [Column.data];
93
+ [DATA];
94
94
  constructor(data = {}) {
95
- this[Column.data] = data;
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[Column.data], nullable: true });
101
+ return new UnTyped({ ...this[DATA], nullable: true });
102
102
  }
103
103
  get unique() {
104
- return new UnTyped({ ...this[Column.data], unique: true });
104
+ return new UnTyped({ ...this[DATA], unique: true });
105
105
  }
106
106
  get string() {
107
107
  return new ValueColumn({
108
- ...this[Column.data],
108
+ ...this[DATA],
109
109
  type: "String" /* String */
110
110
  });
111
111
  }
112
112
  get integer() {
113
113
  return new ValueColumn({
114
- ...this[Column.data],
114
+ ...this[DATA],
115
115
  type: "Integer" /* Integer */
116
116
  });
117
117
  }
118
118
  get number() {
119
119
  return new ValueColumn({
120
- ...this[Column.data],
120
+ ...this[DATA],
121
121
  type: "Number" /* Number */
122
122
  });
123
123
  }
124
124
  get boolean() {
125
125
  return new ValueColumn({
126
- ...this[Column.data],
126
+ ...this[DATA],
127
127
  type: "Boolean" /* Boolean */
128
128
  });
129
129
  }
130
130
  get json() {
131
131
  return new ValueColumn({
132
- ...this[Column.data],
132
+ ...this[DATA],
133
133
  type: "Json" /* Json */
134
134
  });
135
135
  }
136
136
  get object() {
137
137
  return new ObjectColumn({
138
- ...this[Column.data],
138
+ ...this[DATA],
139
139
  type: "Json" /* Json */
140
140
  });
141
141
  }
142
142
  get array() {
143
143
  return new ValueColumn({
144
- ...this[Column.data],
144
+ ...this[DATA],
145
145
  type: "Json" /* Json */
146
146
  });
147
147
  }
@@ -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.__cursorType](): T;
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
- query(): Query.Update;
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
- query(): Query.Insert;
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
- query(): Query.Batch;
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
- query(): Query.Select;
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
- query(): Query.Select;
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 {};