joist-orm 1.0.687 → 1.0.691

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.
@@ -4,6 +4,7 @@ exports.InMemoryDriver = void 0;
4
4
  const EntityManager_1 = require("../EntityManager");
5
5
  const keys_1 = require("../keys");
6
6
  const QueryBuilder_1 = require("../QueryBuilder");
7
+ const serde_1 = require("../serde");
7
8
  const utils_1 = require("../utils");
8
9
  class InMemoryDriver {
9
10
  constructor() {
@@ -43,8 +44,11 @@ class InMemoryDriver {
43
44
  Object.entries(todos).forEach(([_, todo]) => {
44
45
  todo.inserts.forEach((i) => {
45
46
  const row = {};
46
- todo.metadata.columns.forEach((c) => {
47
- row[c.columnName] = c.serde.mapToDb(i.__orm.data[c.fieldName]) ?? null;
47
+ Object.values(todo.metadata.fields)
48
+ .filter(serde_1.hasSerde)
49
+ .flatMap((f) => f.serde.columns.map((c) => [f, c]))
50
+ .forEach(([f, c]) => {
51
+ row[c.columnName] = c.mapToDb(i.__orm.data[f.fieldName]) ?? null;
48
52
  });
49
53
  row.id = this.nextId(todo.metadata.tableName);
50
54
  this.rowsOfTable(todo.metadata.tableName)[row.id] = row;
@@ -55,8 +59,11 @@ class InMemoryDriver {
55
59
  u.__orm.data["updatedAt"] = updatedAt;
56
60
  const id = (0, keys_1.deTagId)(todo.metadata, u.idOrFail);
57
61
  const row = {};
58
- todo.metadata.columns.forEach((c) => {
59
- row[c.columnName] = c.serde.mapToDb(u.__orm.data[c.fieldName]) ?? null;
62
+ Object.values(todo.metadata.fields)
63
+ .filter(serde_1.hasSerde)
64
+ .flatMap((f) => f.serde.columns.map((c) => [f, c]))
65
+ .forEach(([f, c]) => {
66
+ row[c.columnName] = c.mapToDb(u.__orm.data[f.fieldName]) ?? null;
60
67
  });
61
68
  this.rowsOfTable(todo.metadata.tableName)[id] = row;
62
69
  });
@@ -153,8 +160,9 @@ function rowMatches(driver, meta, row, where) {
153
160
  .every(([fieldName, value]) => {
154
161
  const field = meta.fields[fieldName] || (0, utils_1.fail)();
155
162
  // TODO Add column data to the fields
156
- const column = meta.columns.find((c) => c.fieldName === field.fieldName) || (0, utils_1.fail)();
157
- const currentValue = row[column.columnName] ?? null;
163
+ const column = meta.fields[field.fieldName] || (0, utils_1.fail)();
164
+ // TODO Support multiple columns i.e. polymorphic references
165
+ const currentValue = (column.serde && row[column.serde.columns[0].columnName]) ?? null;
158
166
  switch (field.kind) {
159
167
  case "primaryKey":
160
168
  case "primitive":
@@ -230,8 +238,8 @@ function sort(driver, meta, orderBy, a, b) {
230
238
  }
231
239
  }
232
240
  const flip = value === "DESC" ? -1 : 1;
233
- const column = meta.columns.find((c) => c.fieldName === fieldName) || (0, utils_1.fail)();
234
- const key = column.columnName;
241
+ const column = meta.fields[fieldName] || (0, utils_1.fail)();
242
+ const key = column.serde.columns[0].columnName;
235
243
  // TODO Handle sorting by more than just strings
236
244
  return a[key].localeCompare(b[key]) * flip;
237
245
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InMemoryDriver.js","sourceRoot":"","sources":["../../../src/drivers/InMemoryDriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InMemoryDriver.js","sourceRoot":"","sources":["../../../src/drivers/InMemoryDriver.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,10 @@ import { ManyToManyCollection, OneToOneReferenceImpl } from "../relations";
4
4
  import { JoinRow } from "../relations/ManyToManyCollection";
5
5
  import { JoinRowTodo, Todo } from "../Todo";
6
6
  import { Driver } from "./driver";
7
+ import { IdAssigner } from "./IdAssigner";
8
+ export interface PostgresDriverOpts {
9
+ idAssigner?: IdAssigner;
10
+ }
7
11
  /**
8
12
  * Implements the `Driver` interface for Postgres.
9
13
  *
@@ -20,7 +24,8 @@ import { Driver } from "./driver";
20
24
  */
21
25
  export declare class PostgresDriver implements Driver {
22
26
  private readonly knex;
23
- constructor(knex: Knex);
27
+ private readonly idAssigner;
28
+ constructor(knex: Knex, opts?: PostgresDriverOpts);
24
29
  load<T extends Entity>(em: EntityManager, meta: EntityMetadata<T>, untaggedIds: readonly string[]): Promise<unknown[]>;
25
30
  loadManyToMany<T extends Entity, U extends Entity>(em: EntityManager, collection: ManyToManyCollection<T, U>, keys: readonly string[]): Promise<JoinRow[]>;
26
31
  loadOneToMany<T extends Entity, U extends Entity>(em: EntityManager, collection: OneToManyCollection<T, U>, untaggedIds: readonly string[]): Promise<U[]>;
@@ -4,6 +4,7 @@ exports.PostgresDriver = void 0;
4
4
  const findDataLoader_1 = require("../dataloaders/findDataLoader");
5
5
  const index_1 = require("../index");
6
6
  const utils_1 = require("../utils");
7
+ const IdAssigner_1 = require("./IdAssigner");
7
8
  /**
8
9
  * Implements the `Driver` interface for Postgres.
9
10
  *
@@ -19,8 +20,9 @@ const utils_1 = require("../utils");
19
20
  * - We use a pg-specific bulk update syntax.
20
21
  */
21
22
  class PostgresDriver {
22
- constructor(knex) {
23
+ constructor(knex, opts) {
23
24
  this.knex = knex;
25
+ this.idAssigner = opts?.idAssigner ?? new IdAssigner_1.SequenceIdAssigner();
24
26
  }
25
27
  load(em, meta, untaggedIds) {
26
28
  const knex = this.getMaybeInTxnKnex(em);
@@ -154,7 +156,7 @@ class PostgresDriver {
154
156
  async flushEntities(em, todos) {
155
157
  const knex = this.getMaybeInTxnKnex(em);
156
158
  const updatedAt = new Date();
157
- await assignNewIds(knex, todos);
159
+ await this.idAssigner.assignNewIds(knex, todos);
158
160
  for await (const todo of Object.values(todos)) {
159
161
  if (todo) {
160
162
  const meta = todo.metadata;
@@ -223,44 +225,20 @@ class PostgresDriver {
223
225
  }
224
226
  }
225
227
  exports.PostgresDriver = PostgresDriver;
226
- /**
227
- * Assigns all new entities an id directly from their corresponding sequence generator, instead of via INSERTs.
228
- *
229
- * This lets us avoid cyclic issues with some INSERTs having foreign keys to other rows that themselves
230
- * need to first be INSERTed.
231
- */
232
- async function assignNewIds(knex, todos) {
233
- const seqStatements = [];
234
- Object.values(todos).forEach((todo) => {
235
- if (todo.inserts.length > 0) {
236
- const meta = todo.inserts[0].__orm.metadata;
237
- const sequenceName = `${meta.tableName}_id_seq`;
238
- const sql = `select nextval('${sequenceName}') from generate_series(1, ${todo.inserts.length})`;
239
- seqStatements.push(sql);
240
- }
241
- });
242
- if (seqStatements.length > 0) {
243
- // There will be 1 per table; 1 single insert should be fine but we might need to batch for super-large schemas?
244
- const sql = seqStatements.join(" UNION ALL ");
245
- const result = await knex.raw(sql);
246
- let i = 0;
247
- Object.values(todos).forEach((todo) => {
248
- for (const insert of todo.inserts) {
249
- insert.__orm.data["id"] = (0, index_1.keyToString)(todo.metadata, result.rows[i++]["nextval"]);
250
- }
251
- });
252
- }
253
- }
254
228
  async function batchInsert(knex, meta, entities) {
255
- const rows = entities.map((entity) => {
256
- const row = {};
257
- meta.columns.forEach((c) => c.serde.setOnRow(entity.__orm.data, row));
258
- return row;
259
- });
260
229
  // We don't use the ids that come back from batchInsert b/c we pre-assign ids for both inserts and updates.
261
230
  // We also use `.transacting` b/c even when `knex` is already a Transaction object,
262
231
  // `batchInsert` w/o the `transacting` adds savepoints that we don't want/need.
263
- await knex.batchInsert(meta.tableName, rows).transacting(knex);
232
+ const fields = Object.values(meta.fields).filter(index_1.hasSerde);
233
+ const columns = fields.flatMap((f) => f.serde.columns);
234
+ // Issue 1 UPDATE statement with N `VALUES (..., ...), (..., ...), ...` clauses
235
+ // and bindings is each individual value.
236
+ const bindings = entities.flatMap((entity) => columns.map((c) => c.dbValue(entity.__orm.data) ?? null));
237
+ const sql = `
238
+ INSERT INTO ${meta.tableName} (${columns.map((c) => `"${c.columnName}"`).join(", ")})
239
+ VALUES ${entities.map(() => `(${columns.map(() => `?`).join(", ")})`).join(",")}
240
+ `;
241
+ await knex.raw(cleanSql(sql), bindings);
264
242
  }
265
243
  // Uses a pg-specific syntax to issue a bulk update
266
244
  async function batchUpdate(knex, meta, entities) {
@@ -278,17 +256,19 @@ async function batchUpdate(knex, meta, entities) {
278
256
  if (changedFields.size === 2 && !entities.some((e) => e.__orm.isTouched)) {
279
257
  return;
280
258
  }
281
- // This currently assumes a 1-to-1 field-to-column mapping.
282
- const columns = meta.columns.filter((c) => changedFields.has(c.fieldName));
259
+ const fields = Object.values(meta.fields)
260
+ .filter((f) => changedFields.has(f.fieldName))
261
+ .filter(index_1.hasSerde);
262
+ const columns = fields.flatMap((f) => f.serde.columns);
283
263
  // We need to handle array columns different because the "unnest" approach fundamentally
284
264
  // won't work b/c we can't use it to send "a list of lists".
285
265
  let sql;
286
266
  let bindings;
287
- if (columns.some((c) => c.serde instanceof index_1.EnumArrayFieldSerde)) {
267
+ if (fields.some((f) => f.serde instanceof index_1.EnumArrayFieldSerde)) {
288
268
  // Issue 1 UPDATE statement with N `VALUES (..., ...), (..., ...), ...` clauses
289
269
  // and bindings is each individual value.
290
270
  bindings = entities.flatMap((entity) => [
291
- ...columns.map((c) => c.serde.getFromEntity(entity.__orm.data) ?? null),
271
+ ...columns.map((c) => c.dbValue(entity.__orm.data) ?? null),
292
272
  entity.__orm.originalData.updatedAt,
293
273
  ]);
294
274
  sql = `
@@ -298,14 +278,7 @@ async function batchUpdate(knex, meta, entities) {
298
278
  .map((c) => `"${c.columnName}" = data."${c.columnName}"`)
299
279
  .join(", ")}
300
280
  FROM (
301
- VALUES ${entities
302
- .map(() => `(${columns
303
- .map((c) => {
304
- const maybeArray = c.serde instanceof index_1.EnumArrayFieldSerde ? "[]" : "";
305
- return `?::${c.dbType}${maybeArray}`;
306
- })
307
- .join(", ")}, ?::timestamp)`)
308
- .join(",")}
281
+ VALUES ${entities.map(() => `(${columns.map((c) => `?::${c.dbType}`).join(", ")}, ?::timestamp)`).join(",")}
309
282
  ) AS data(${columns.map((c) => c.columnName).join(",")},original_updated_at)
310
283
  WHERE
311
284
  ${meta.tableName}.id = data.id
@@ -321,7 +294,7 @@ async function batchUpdate(knex, meta, entities) {
321
294
  bindings.push(originalUpdatedAt);
322
295
  for (const entity of entities) {
323
296
  columns.forEach((c, i) => {
324
- bindings[i].push(c.serde.getFromEntity(entity.__orm.data) ?? null);
297
+ bindings[i].push(c.dbValue(entity.__orm.data) ?? null);
325
298
  });
326
299
  originalUpdatedAt.push(entity.__orm.originalData.updatedAt);
327
300
  }
@@ -334,7 +307,7 @@ async function batchUpdate(knex, meta, entities) {
334
307
  FROM (
335
308
  SELECT
336
309
  ${columns.map((c) => `unnest(?::${c.dbType}[]) as "${c.columnName}"`).join(", ")},
337
- unnest(?::timestamp[]) as original_updated_at
310
+ unnest(?::timestamptz[]) as original_updated_at
338
311
  ) as data
339
312
  WHERE
340
313
  ${meta.tableName}.id = data.id
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresDriver.js","sourceRoot":"","sources":["../../../src/drivers/PostgresDriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostgresDriver.js","sourceRoot":"","sources":["../../../src/drivers/PostgresDriver.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export * from "./driver";
2
+ export * from "./IdAssigner";
2
3
  export * from "./InMemoryDriver";
3
4
  export * from "./PostgresDriver";
@@ -11,6 +11,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./driver"), exports);
14
+ __exportStar(require("./IdAssigner"), exports);
14
15
  __exportStar(require("./InMemoryDriver"), exports);
15
16
  __exportStar(require("./PostgresDriver"), exports);
16
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/drivers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAyB;AACzB,mDAAiC;AACjC,mDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/drivers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAyB;AACzB,+CAA6B;AAC7B,mDAAiC;AACjC,mDAAiC"}
@@ -1,6 +1,7 @@
1
1
  import { Entity } from "./EntityManager";
2
2
  declare type HasTagName = {
3
3
  tagName: string;
4
+ idType: "int" | "uuid";
4
5
  };
5
6
  export declare function maybeResolveReferenceToId(value: any): string | undefined;
6
7
  /** Converts `value` to a number, i.e. for string ids, unless its undefined. */
package/build/src/keys.js CHANGED
@@ -20,18 +20,25 @@ function keyToNumber(meta, value) {
20
20
  else if (typeof value === "string") {
21
21
  const [tag, id] = value.split(tagDelimiter);
22
22
  if (id === undefined) {
23
- return Number(value);
23
+ return maybeNumberUnlessUuid(meta, value);
24
24
  }
25
25
  if (tag !== meta.tagName) {
26
26
  throw new Error(`Invalid tagged id, expected tag ${meta.tagName}, got ${value}`);
27
27
  }
28
- return Number(id);
28
+ return maybeNumberUnlessUuid(meta, id);
29
29
  }
30
30
  else {
31
31
  throw new Error(`Invalid key ${value}`);
32
32
  }
33
33
  }
34
34
  exports.keyToNumber = keyToNumber;
35
+ // If we're using UUIDs, just lie to the type system and pretend they're numbers.
36
+ function maybeNumberUnlessUuid(meta, key) {
37
+ if (meta.idType === "uuid") {
38
+ return key;
39
+ }
40
+ return Number(key);
41
+ }
35
42
  /** Converts `value` to a tagged string, i.e. for string ids, unless its undefined. */
36
43
  function keyToString(meta, value) {
37
44
  return value === undefined || value === null ? undefined : `${meta.tagName}:${value}`;
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/keys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/keys.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,40 @@
1
+ import { Field, SerdeField } from "./EntityManager";
1
2
  import { EntityMetadata } from "./index";
2
- export interface ColumnSerde {
3
+ export declare function hasSerde(field: Field): field is SerdeField;
4
+ /**
5
+ * The database/column serialization / deserialization details of a given field.
6
+ *
7
+ * Most implementations will have just a single column in `columns`, but some logical
8
+ * domain fields can be mapped to multiple physical database columns, i.e. polymorphic
9
+ * references.
10
+ */
11
+ export interface FieldSerde {
12
+ /** A single field might persist to multiple columns, i.e. polymorphic references. */
13
+ columns: Column[];
14
+ /**
15
+ * Accepts a database `row` and sets the field's value(s) into the `__orm.data`.
16
+ *
17
+ * Used in EntityManager.hydrate to set row value on the entity
18
+ */
3
19
  setOnEntity(data: any, row: any): void;
4
- setOnRow(data: any, row: any): void;
5
- getFromEntity(data: any): any;
20
+ }
21
+ /** A specific physical column of a logical field. */
22
+ export interface Column {
23
+ columnName: string;
24
+ dbType: string;
25
+ dbValue(data: any): any;
6
26
  mapToDb(value: any): any;
27
+ isArray: boolean;
7
28
  }
8
- export declare class SimpleSerde implements ColumnSerde {
29
+ export declare class PrimitiveSerde implements FieldSerde {
9
30
  private fieldName;
10
- private columnName;
11
- constructor(fieldName: string, columnName: string);
31
+ columnName: string;
32
+ dbType: string;
33
+ isArray: boolean;
34
+ columns: this[];
35
+ constructor(fieldName: string, columnName: string, dbType: string);
12
36
  setOnEntity(data: any, row: any): void;
13
- setOnRow(data: any, row: any): void;
14
- getFromEntity(data: any): any;
37
+ dbValue(data: any): any;
15
38
  mapToDb(value: any): any;
16
39
  }
17
40
  /**
@@ -23,75 +46,76 @@ export declare class SimpleSerde implements ColumnSerde {
23
46
  * Also note that knex/pg accept `number`s as input, so we only need
24
47
  * to handle from-database -> to JS translation.
25
48
  */
26
- export declare class DecimalToNumberSerde implements ColumnSerde {
49
+ export declare class DecimalToNumberSerde implements FieldSerde {
27
50
  private fieldName;
28
- private columnName;
51
+ columnName: string;
52
+ dbType: string;
53
+ isArray: boolean;
54
+ columns: this[];
29
55
  constructor(fieldName: string, columnName: string);
30
56
  setOnEntity(data: any, row: any): void;
31
- setOnRow(data: any, row: any): void;
32
- getFromEntity(data: any): any;
57
+ dbValue(data: any): any;
33
58
  mapToDb(value: any): any;
34
59
  }
35
- /** Maps integer primary keys ot strings "because GraphQL". */
36
- export declare class PrimaryKeySerde implements ColumnSerde {
37
- private meta;
60
+ /** Maps physical integer keys to logical string IDs "because GraphQL". */
61
+ export declare class KeySerde implements FieldSerde {
38
62
  private fieldName;
39
- private columnName;
40
- constructor(meta: () => EntityMetadata<any>, fieldName: string, columnName: string);
63
+ columnName: string;
64
+ dbType: "int" | "uuid";
65
+ isArray: boolean;
66
+ columns: this[];
67
+ private meta;
68
+ constructor(tagName: string, fieldName: string, columnName: string, dbType: "int" | "uuid");
41
69
  setOnEntity(data: any, row: any): void;
42
- setOnRow(data: any, row: any): void;
43
- getFromEntity(data: any): number;
70
+ dbValue(data: any): number | undefined;
44
71
  mapToDb(value: any): number | undefined;
45
72
  }
46
- export declare class ForeignKeySerde implements ColumnSerde {
47
- private fieldName;
48
- private columnName;
49
- otherMeta: () => EntityMetadata<any>;
50
- constructor(fieldName: string, columnName: string, otherMeta: () => EntityMetadata<any>);
51
- setOnEntity(data: any, row: any): void;
52
- setOnRow(data: any, row: any): void;
53
- getFromEntity(data: any): number | undefined;
54
- mapToDb(value: any): any;
55
- }
56
- export declare class PolymorphicKeySerde implements ColumnSerde {
73
+ export declare class PolymorphicKeySerde implements FieldSerde {
74
+ private meta;
57
75
  private fieldName;
58
- private columnName;
59
- otherMeta: () => EntityMetadata<any>;
60
- constructor(fieldName: string, columnName: string, otherMeta: () => EntityMetadata<any>);
76
+ constructor(meta: () => EntityMetadata<any>, fieldName: string);
61
77
  setOnEntity(data: any, row: any): void;
62
- setOnRow(data: any, row: any): void;
63
- getFromEntity(data: any): number | undefined;
64
- mapToDb(value: any): any;
78
+ get columns(): Array<Column & {
79
+ otherMetadata: () => EntityMetadata<any>;
80
+ }>;
81
+ get columnName(): string;
82
+ private get field();
65
83
  }
66
- export declare class EnumFieldSerde implements ColumnSerde {
84
+ export declare class EnumFieldSerde implements FieldSerde {
67
85
  private fieldName;
68
- private columnName;
86
+ columnName: string;
69
87
  private enumObject;
88
+ dbType: string;
89
+ isArray: boolean;
90
+ columns: this[];
70
91
  constructor(fieldName: string, columnName: string, enumObject: any);
71
92
  setOnEntity(data: any, row: any): void;
72
- setOnRow(data: any, row: any): void;
73
- getFromEntity(data: any): any;
93
+ dbValue(data: any): any;
74
94
  mapToDb(value: any): any;
75
95
  }
76
- export declare class EnumArrayFieldSerde implements ColumnSerde {
96
+ export declare class EnumArrayFieldSerde implements FieldSerde {
77
97
  private fieldName;
78
- private columnName;
98
+ columnName: string;
79
99
  private enumObject;
100
+ dbType: string;
101
+ isArray: boolean;
102
+ columns: this[];
80
103
  constructor(fieldName: string, columnName: string, enumObject: any);
81
104
  setOnEntity(data: any, row: any): void;
82
- setOnRow(data: any, row: any): void;
83
- getFromEntity(data: any): any;
105
+ dbValue(data: any): any;
84
106
  mapToDb(value: any): any;
85
107
  }
86
108
  /** Similar to SimpleSerde, but applies the superstruct `assert` function when reading values from the db. */
87
- export declare class SuperstructSerde implements ColumnSerde {
109
+ export declare class SuperstructSerde implements FieldSerde {
88
110
  private fieldName;
89
- private columnName;
111
+ columnName: string;
90
112
  private superstruct;
113
+ dbType: string;
114
+ isArray: boolean;
115
+ columns: this[];
91
116
  private assert;
92
117
  constructor(fieldName: string, columnName: string, superstruct: any);
93
118
  setOnEntity(data: any, row: any): void;
94
- setOnRow(data: any, row: any): void;
95
- getFromEntity(data: any): any;
119
+ dbValue(data: any): any;
96
120
  mapToDb(value: any): any;
97
121
  }