@everystack/model 0.3.3 → 0.3.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@everystack/model",
3
- "version": "0.3.3",
3
+ "version": "0.3.4",
4
4
  "description": "Declare a table's schema, validation, and authorization once — compiled to migrations, RLS, and handler config",
5
5
  "license": "AGPL-3.0-only",
6
6
  "publishConfig": {
package/src/drizzle.ts CHANGED
@@ -22,7 +22,10 @@ import {
22
22
  uuid,
23
23
  integer,
24
24
  bigint,
25
+ serial,
25
26
  bigserial,
27
+ real,
28
+ doublePrecision,
26
29
  boolean,
27
30
  timestamp,
28
31
  date,
@@ -74,8 +77,14 @@ function baseColumn(columnName: string, spec: FieldSpec): PgColumnBuilderBase {
74
77
  return integer(columnName);
75
78
  case 'bigint':
76
79
  return bigint(columnName, { mode: 'number' });
80
+ case 'serial':
81
+ return serial(columnName);
77
82
  case 'bigserial':
78
83
  return bigserial(columnName, { mode: 'number' });
84
+ case 'real':
85
+ return real(columnName);
86
+ case 'doublePrecision':
87
+ return doublePrecision(columnName);
79
88
  case 'boolean':
80
89
  return boolean(columnName);
81
90
  case 'timestamptz':
package/src/field.ts CHANGED
@@ -15,8 +15,11 @@ export type FieldType =
15
15
  | 'text'
16
16
  | 'uuid'
17
17
  | 'bigint'
18
+ | 'serial'
18
19
  | 'bigserial'
19
20
  | 'integer'
21
+ | 'real'
22
+ | 'doublePrecision'
20
23
  | 'boolean'
21
24
  | 'timestamptz'
22
25
  | 'timestamp'
@@ -186,8 +189,14 @@ export const field = {
186
189
  text: (): FieldBuilder => new FieldBuilder('text'),
187
190
  uuid: (): FieldBuilder => new FieldBuilder('uuid'),
188
191
  bigint: (): FieldBuilder => new FieldBuilder('bigint'),
189
- bigserial: (): FieldBuilder => new FieldBuilder('bigserial'),
192
+ // A serial column is NOT NULL by Postgres definition, so the builder starts that way.
193
+ serial: (): FieldBuilder => new FieldBuilder('serial').notNull(),
194
+ bigserial: (): FieldBuilder => new FieldBuilder('bigserial').notNull(),
190
195
  integer: (): FieldBuilder => new FieldBuilder('integer'),
196
+ /** `real` — single-precision float (float4). */
197
+ real: (): FieldBuilder => new FieldBuilder('real'),
198
+ /** `double precision` — double-precision float (float8). */
199
+ doublePrecision: (): FieldBuilder => new FieldBuilder('doublePrecision'),
191
200
  boolean: (): FieldBuilder => new FieldBuilder('boolean'),
192
201
  timestamptz: (): FieldBuilder => new FieldBuilder('timestamptz'),
193
202
  timestamp: (): FieldBuilder => new FieldBuilder('timestamp'),