rado 0.2.22 → 0.2.23

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.
@@ -35,6 +35,7 @@ export declare namespace Column {
35
35
  const IsOptional: unique symbol;
36
36
  const IsNullable: unique symbol;
37
37
  const IsPrimary: unique symbol;
38
+ function isColumn<T>(input: any): input is Column<T>;
38
39
  }
39
40
  interface ValueColumn<T> extends Expr<T> {
40
41
  <X extends T = T>(): ValueColumn<T extends null ? X | null : X>;
@@ -48,7 +49,7 @@ declare class ValueColumn<T> extends Callable implements Column<T> {
48
49
  get autoIncrement(): OptionalColumn<T>;
49
50
  primaryKey<K = string>(create?: () => EV<T>): PrimaryColumn<T, K>;
50
51
  references<X extends T>(column: Expr<X> | (() => Expr<X>)): ValueColumn<X>;
51
- defaultValue(value: DefaultValue<T>): OptionalColumn<T>;
52
+ default(value: DefaultValue<T>): OptionalColumn<T>;
52
53
  }
53
54
  export declare class OptionalColumn<T> extends ValueColumn<T> {
54
55
  [Column.IsOptional]: true;
@@ -15,6 +15,10 @@ var Column;
15
15
  ((Column2) => {
16
16
  Column2.Data = DATA;
17
17
  Column2.Type = TYPE;
18
+ function isColumn(input) {
19
+ return Boolean(input[DATA]);
20
+ }
21
+ Column2.isColumn = isColumn;
18
22
  })(Column || (Column = {}));
19
23
  var ValueColumn = class extends Callable {
20
24
  [DATA];
@@ -46,7 +50,7 @@ var ValueColumn = class extends Callable {
46
50
  }
47
51
  });
48
52
  }
49
- defaultValue(value) {
53
+ default(value) {
50
54
  return new OptionalColumn({
51
55
  ...this[DATA],
52
56
  defaultValue: createDefaultValue(value)
@@ -57,15 +57,12 @@ export declare namespace Table {
57
57
  export interface TableMeta {
58
58
  indexes?: Record<string, Index>;
59
59
  }
60
- type Blueprint<T> = {
61
- [K in keyof T as K extends string ? K : never]: Column<any> | (() => any);
62
- };
63
60
  interface Define<T> {
64
61
  new (): T;
65
62
  }
66
63
  export type table<T> = T extends Table<infer D> ? Table.Select<D> : never;
67
64
  export declare function createTable<Definition>(data: TableData): Table<Definition>;
68
- export declare function table<T extends Blueprint<T>>(define: Record<string, T | Define<T>>): Table<T>;
65
+ export declare function table<T extends {}>(define: Record<string, T | Define<T>>): Table<T>;
69
66
  export declare namespace table {
70
67
  const meta: typeof META;
71
68
  }
@@ -81,23 +81,24 @@ function table(define) {
81
81
  name,
82
82
  definition,
83
83
  columns: fromEntries(
84
- entries(getOwnPropertyDescriptors(columns)).map(
85
- ([name2, descriptor]) => {
86
- const column = columns[name2];
87
- const data = column[Column.Data];
88
- if (!data.type)
89
- throw new Error(`Column ${name2} has no type`);
90
- return [
91
- name2,
92
- {
93
- ...data,
94
- type: data.type,
95
- name: data.name || name2,
96
- enumerable: descriptor.enumerable
97
- }
98
- ];
99
- }
100
- )
84
+ entries(getOwnPropertyDescriptors(columns)).filter(([name2]) => {
85
+ const column = columns[name2];
86
+ return Column.isColumn(column);
87
+ }).map(([name2, descriptor]) => {
88
+ const column = columns[name2];
89
+ const data = column[Column.Data];
90
+ if (!data.type)
91
+ throw new Error(`Column ${name2} has no type`);
92
+ return [
93
+ name2,
94
+ {
95
+ ...data,
96
+ type: data.type,
97
+ name: data.name || name2,
98
+ enumerable: descriptor.enumerable
99
+ }
100
+ ];
101
+ })
101
102
  ),
102
103
  meta() {
103
104
  const createMeta = res[table.meta];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rado",
3
- "version": "0.2.22",
3
+ "version": "0.2.23",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",