@proteinjs/db 1.0.26 → 1.0.27

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.
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ exports.columnTypeTests = exports.getColumnTypeTestTable = exports.TestTable = void 0;
55
+ var Db_1 = require("../src/Db");
56
+ var Columns_1 = require("../src/Columns");
57
+ var Record_1 = require("../src/Record");
58
+ var Table_1 = require("../src/Table");
59
+ var TestTable = /** @class */ (function (_super) {
60
+ __extends(TestTable, _super);
61
+ function TestTable() {
62
+ var _this = _super !== null && _super.apply(this, arguments) || this;
63
+ _this.name = 'db_test_table';
64
+ _this.columns = (0, Record_1.withRecordColumns)({
65
+ integerColumn: new Columns_1.IntegerColumn('integer_column'),
66
+ stringColumn: new Columns_1.StringColumn('string_column', {}, 255),
67
+ floatColumn: new Columns_1.FloatColumn('float_column'),
68
+ decimalColumn: new Columns_1.DecimalColumn('decimal_column'),
69
+ booleanColumn: new Columns_1.BooleanColumn('boolean_column'),
70
+ dateColumn: new Columns_1.DateColumn('date_column'),
71
+ dateTimeColumn: new Columns_1.DateTimeColumn('date_time_column'),
72
+ binaryColumn: new Columns_1.BinaryColumn('binary_column'),
73
+ uuidColumn: new Columns_1.UuidColumn('uuid_column'),
74
+ passwordColumn: new Columns_1.PasswordColumn('password_column'),
75
+ objectColumn: new Columns_1.ObjectColumn('object_column'),
76
+ arrayColumn: new Columns_1.ArrayColumn('array_column'),
77
+ referenceArrayColumn: new Columns_1.ReferenceArrayColumn('reference_array_column', 'reference_table', false),
78
+ referenceColumn: new Columns_1.ReferenceColumn('reference_column', 'reference_table', false),
79
+ });
80
+ return _this;
81
+ }
82
+ return TestTable;
83
+ }(Table_1.Table));
84
+ exports.TestTable = TestTable;
85
+ /**
86
+ * Used for testing purposes only.
87
+ * */
88
+ var getColumnTypeTestTable = function (tableName) {
89
+ var testTable = new TestTable();
90
+ if (testTable.name === tableName) {
91
+ return new TestTable();
92
+ }
93
+ throw new Error("Cannot find test table: ".concat(tableName));
94
+ };
95
+ exports.getColumnTypeTestTable = getColumnTypeTestTable;
96
+ var columnTypeTests = function (driver, dropTable) {
97
+ return function () {
98
+ var db = new Db_1.Db(driver, exports.getColumnTypeTestTable);
99
+ beforeAll(function () { return __awaiter(void 0, void 0, void 0, function () {
100
+ return __generator(this, function (_a) {
101
+ switch (_a.label) {
102
+ case 0:
103
+ if (!driver.start) return [3 /*break*/, 2];
104
+ return [4 /*yield*/, driver.start()];
105
+ case 1:
106
+ _a.sent();
107
+ _a.label = 2;
108
+ case 2: return [4 /*yield*/, driver.getTableManager().loadTable(new TestTable())];
109
+ case 3:
110
+ _a.sent();
111
+ return [2 /*return*/];
112
+ }
113
+ });
114
+ }); });
115
+ afterAll(function () { return __awaiter(void 0, void 0, void 0, function () {
116
+ return __generator(this, function (_a) {
117
+ switch (_a.label) {
118
+ case 0: return [4 /*yield*/, dropTable(new TestTable())];
119
+ case 1:
120
+ _a.sent();
121
+ return [2 /*return*/];
122
+ }
123
+ });
124
+ }); });
125
+ test('Insert record with all null values', function () { return __awaiter(void 0, void 0, void 0, function () {
126
+ var testRecord, testTable, insertedRecord, fetchedRecord;
127
+ return __generator(this, function (_a) {
128
+ switch (_a.label) {
129
+ case 0:
130
+ testRecord = {
131
+ integerColumn: null,
132
+ stringColumn: null,
133
+ floatColumn: null,
134
+ decimalColumn: null,
135
+ booleanColumn: null,
136
+ dateColumn: null,
137
+ dateTimeColumn: null,
138
+ binaryColumn: null,
139
+ uuidColumn: null,
140
+ passwordColumn: null,
141
+ objectColumn: null,
142
+ arrayColumn: null,
143
+ referenceArrayColumn: null,
144
+ referenceColumn: null,
145
+ };
146
+ testTable = new TestTable();
147
+ return [4 /*yield*/, db.insert(testTable, testRecord)];
148
+ case 1:
149
+ insertedRecord = _a.sent();
150
+ return [4 /*yield*/, db.get(testTable, { id: insertedRecord.id })];
151
+ case 2:
152
+ fetchedRecord = _a.sent();
153
+ expect(fetchedRecord).toBeTruthy();
154
+ expect(fetchedRecord.integerColumn).toBeNull();
155
+ expect(fetchedRecord.stringColumn).toBeNull();
156
+ expect(fetchedRecord.floatColumn).toBeNull();
157
+ expect(fetchedRecord.decimalColumn).toBeNull();
158
+ expect(fetchedRecord.booleanColumn).toBeNull();
159
+ expect(fetchedRecord.dateColumn).toBeNull();
160
+ expect(fetchedRecord.dateTimeColumn).toBeNull();
161
+ expect(fetchedRecord.binaryColumn).toBeNull();
162
+ expect(fetchedRecord.uuidColumn).toBeNull();
163
+ expect(fetchedRecord.passwordColumn).toBeNull();
164
+ expect(fetchedRecord.objectColumn).toBeNull();
165
+ expect(fetchedRecord.arrayColumn).toBeNull();
166
+ expect(fetchedRecord.referenceArrayColumn).toBeNull();
167
+ expect(fetchedRecord.referenceColumn).toBeNull();
168
+ // Clean up
169
+ return [4 /*yield*/, db.delete(testTable, { id: fetchedRecord.id })];
170
+ case 3:
171
+ // Clean up
172
+ _a.sent();
173
+ return [2 /*return*/];
174
+ }
175
+ });
176
+ }); });
177
+ test('Insert record with all undefined values', function () { return __awaiter(void 0, void 0, void 0, function () {
178
+ var testRecord, testTable;
179
+ return __generator(this, function (_a) {
180
+ switch (_a.label) {
181
+ case 0:
182
+ testRecord = {
183
+ integerColumn: undefined,
184
+ stringColumn: undefined,
185
+ floatColumn: undefined,
186
+ decimalColumn: undefined,
187
+ booleanColumn: undefined,
188
+ dateColumn: undefined,
189
+ dateTimeColumn: undefined,
190
+ binaryColumn: undefined,
191
+ uuidColumn: undefined,
192
+ passwordColumn: undefined,
193
+ objectColumn: undefined,
194
+ arrayColumn: undefined,
195
+ referenceArrayColumn: undefined,
196
+ referenceColumn: undefined,
197
+ };
198
+ testTable = new TestTable();
199
+ return [4 /*yield*/, expect(db.insert(testTable, testRecord)).rejects.toThrow()];
200
+ case 1:
201
+ _a.sent();
202
+ return [2 /*return*/];
203
+ }
204
+ });
205
+ }); });
206
+ };
207
+ };
208
+ exports.columnTypeTests = columnTypeTests;
209
+ //# sourceMappingURL=ColumnTypesTests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnTypesTests.js","sourceRoot":"","sources":["../../test/ColumnTypesTests.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CrudTests.d.ts","sourceRoot":"","sources":["../../test/CrudTests.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAM,MAAM,WAAW,CAAC;AACzC,OAAO,EAAqB,MAAM,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAGrC,MAAM,WAAW,QAAS,SAAQ,MAAM;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAc,SAAQ,KAAK,CAAC,QAAQ,CAAC;IAChD,IAAI,SAAsB;IAC1B,OAAO;;;;;;;;;;;WAOJ;CACJ;AAED;;MAEM;AACN,eAAO,MAAM,YAAY,cAAe,MAAM,kBAO7C,CAAC;AAEF,eAAO,MAAM,SAAS,WAAY,QAAQ,qBAAqB,MAAM,GAAG,CAAC,KAAK,QAAQ,IAAI,CAAC,eA4Q1F,CAAC"}
1
+ {"version":3,"file":"CrudTests.d.ts","sourceRoot":"","sources":["../../test/CrudTests.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAM,MAAM,WAAW,CAAC;AACzC,OAAO,EAAqB,MAAM,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,MAAM,WAAW,QAAS,SAAQ,MAAM;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAc,SAAQ,KAAK,CAAC,QAAQ,CAAC;IAChD,IAAI,SAAsB;IAC1B,OAAO;;;;;;;;;;;WAOJ;CACJ;AAED;;MAEM;AACN,eAAO,MAAM,YAAY,cAAe,MAAM,kBAO7C,CAAC;AAEF,eAAO,MAAM,SAAS,WAAY,QAAQ,qBAAqB,MAAM,GAAG,CAAC,KAAK,QAAQ,IAAI,CAAC,eA8S1F,CAAC"}
@@ -81,7 +81,7 @@ exports.EmployeeTable = EmployeeTable;
81
81
  var getTestTable = function (tableName) {
82
82
  var employeeTable = new EmployeeTable();
83
83
  if (employeeTable.name == tableName) {
84
- return employeeTable;
84
+ return new EmployeeTable();
85
85
  }
86
86
  throw new Error("Cannot find test table: ".concat(tableName));
87
87
  };
@@ -457,7 +457,7 @@ var crudTests = function (driver, dropTable) {
457
457
  });
458
458
  }); });
459
459
  test('Query with sort', function () { return __awaiter(void 0, void 0, void 0, function () {
460
- var testEmployee1, testEmployee2, testEmployee3, employeeTable, insertedEmployee1, insertedEmployee2, insertedEmployee3, sortQuery, sortResults, qb;
460
+ var testEmployee1, testEmployee2, testEmployee3, emplyeeTable, insertedEmployee1, insertedEmployee2, insertedEmployee3, sortQuery, sortResults, qb;
461
461
  return __generator(this, function (_a) {
462
462
  switch (_a.label) {
463
463
  case 0:
@@ -473,20 +473,20 @@ var crudTests = function (driver, dropTable) {
473
473
  name: 'Cassidy',
474
474
  jobTitle: 'Cowboy',
475
475
  };
476
- employeeTable = new EmployeeTable();
477
- return [4 /*yield*/, db.insert(employeeTable, testEmployee1)];
476
+ emplyeeTable = new EmployeeTable();
477
+ return [4 /*yield*/, db.insert(emplyeeTable, testEmployee1)];
478
478
  case 1:
479
479
  insertedEmployee1 = _a.sent();
480
- return [4 /*yield*/, db.insert(employeeTable, testEmployee2)];
480
+ return [4 /*yield*/, db.insert(emplyeeTable, testEmployee2)];
481
481
  case 2:
482
482
  insertedEmployee2 = _a.sent();
483
- return [4 /*yield*/, db.insert(employeeTable, testEmployee3)];
483
+ return [4 /*yield*/, db.insert(emplyeeTable, testEmployee3)];
484
484
  case 3:
485
485
  insertedEmployee3 = _a.sent();
486
- sortQuery = new db_query_1.QueryBuilder(employeeTable.name).sort([
486
+ sortQuery = new db_query_1.QueryBuilder(emplyeeTable.name).sort([
487
487
  { field: 'name', byValues: ['Cassidy', 'Veronica', 'Kiriko'] },
488
488
  ]);
489
- return [4 /*yield*/, db.query(employeeTable, sortQuery)];
489
+ return [4 /*yield*/, db.query(emplyeeTable, sortQuery)];
490
490
  case 4:
491
491
  sortResults = _a.sent();
492
492
  // Assertions
@@ -494,13 +494,60 @@ var crudTests = function (driver, dropTable) {
494
494
  expect(sortResults[0].name).toBe('Cassidy');
495
495
  expect(sortResults[1].name).toBe('Veronica');
496
496
  expect(sortResults[2].name).toBe('Kiriko');
497
- qb = new db_query_1.QueryBuilder(employeeTable.name).condition({
497
+ qb = new db_query_1.QueryBuilder(emplyeeTable.name).condition({
498
498
  field: 'id',
499
499
  operator: 'IN',
500
500
  value: [insertedEmployee1.id, insertedEmployee2.id, insertedEmployee3.id],
501
501
  });
502
- return [4 /*yield*/, db.delete(employeeTable, qb)];
502
+ return [4 /*yield*/, db.delete(emplyeeTable, qb)];
503
+ case 5:
504
+ _a.sent();
505
+ return [2 /*return*/];
506
+ }
507
+ });
508
+ }); });
509
+ test('CRUD operations with undefined values', function () { return __awaiter(void 0, void 0, void 0, function () {
510
+ var testEmployee1, testEmployee2, emplyeeTable, insertedEmployee1, deleteValidQuery;
511
+ return __generator(this, function (_a) {
512
+ switch (_a.label) {
513
+ case 0:
514
+ testEmployee1 = { name: 'Veronica', jobTitle: 'Software Engineer' };
515
+ testEmployee2 = { name: 'Brent', jobTitle: undefined };
516
+ emplyeeTable = new EmployeeTable();
517
+ // Insert operation with undefined values
518
+ return [4 /*yield*/, expect(db.insert(emplyeeTable, testEmployee2)).rejects.toThrow()];
519
+ case 1:
520
+ // Insert operation with undefined values
521
+ _a.sent();
522
+ return [4 /*yield*/, db.insert(emplyeeTable, testEmployee1)];
523
+ case 2:
524
+ insertedEmployee1 = _a.sent();
525
+ // Attempt to build query with undefined value
526
+ expect(function () {
527
+ new db_query_1.QueryBuilder(emplyeeTable.name).condition({ field: 'jobTitle', operator: '=', value: undefined });
528
+ }).toThrow();
529
+ // Attempt to query
530
+ return [4 /*yield*/, expect(db.query(emplyeeTable, { id: insertedEmployee1, jobTitle: undefined })).rejects.toThrow()];
531
+ case 3:
532
+ // Attempt to query
533
+ _a.sent();
534
+ // Update operation with undefined values
535
+ return [4 /*yield*/, expect(db.update(emplyeeTable, { id: insertedEmployee1.id, jobTitle: undefined })).rejects.toThrow()];
536
+ case 4:
537
+ // Update operation with undefined values
538
+ _a.sent();
539
+ // Attempt to delete
540
+ return [4 /*yield*/, expect(db.delete(emplyeeTable, { id: insertedEmployee1, jobTitle: undefined })).rejects.toThrow()];
503
541
  case 5:
542
+ // Attempt to delete
543
+ _a.sent();
544
+ deleteValidQuery = new db_query_1.QueryBuilder(emplyeeTable.name).condition({
545
+ field: 'id',
546
+ operator: 'IN',
547
+ value: [insertedEmployee1.id],
548
+ });
549
+ return [4 /*yield*/, db.delete(emplyeeTable, deleteValidQuery)];
550
+ case 6:
504
551
  _a.sent();
505
552
  return [2 /*return*/];
506
553
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CrudTests.js","sourceRoot":"","sources":["../../test/CrudTests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CrudTests.js","sourceRoot":"","sources":["../../test/CrudTests.ts"],"names":[],"mappings":"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"}
package/index.ts CHANGED
@@ -21,5 +21,6 @@ export * from './src/services/MigrationRunnerService';
21
21
 
22
22
  export * from './test/TableManagerTests';
23
23
  export * from './test/CrudTests';
24
+ export * from './test/ColumnTypesTests';
24
25
 
25
26
  export * from '@proteinjs/db-query';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proteinjs/db",
3
- "version": "1.0.26",
3
+ "version": "1.0.27",
4
4
  "description": "Db",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -21,7 +21,7 @@
21
21
  "watch": "reflection-watch"
22
22
  },
23
23
  "dependencies": {
24
- "@proteinjs/db-query": "^1.0.13",
24
+ "@proteinjs/db-query": "^1.0.14",
25
25
  "@proteinjs/reflection": "1.1.5",
26
26
  "@proteinjs/serializer": "1.0.10",
27
27
  "@proteinjs/service": "1.0.18",
@@ -46,5 +46,5 @@
46
46
  },
47
47
  "main": "./dist/generated/index.js",
48
48
  "types": "./dist/generated/index.d.ts",
49
- "gitHead": "3db0a07e2ee0a2ae2a622964f69a54f95284c922"
49
+ "gitHead": "0b7dd8cce7b00e30b1c5670e7b2a618aa7ccc2b6"
50
50
  }
package/src/Columns.ts CHANGED
@@ -47,26 +47,34 @@ export class DecimalColumn implements Column<number, number> {
47
47
  ) {}
48
48
  }
49
49
 
50
- export class BooleanColumn implements Column<boolean, boolean> {
50
+ export class BooleanColumn implements Column<boolean | null, boolean | null> {
51
51
  constructor(
52
52
  public name: string,
53
53
  public options?: ColumnOptions
54
54
  ) {}
55
55
 
56
- async serialize(fieldValue: boolean | undefined): Promise<boolean> {
56
+ async serialize(fieldValue: boolean | null | undefined): Promise<boolean | null> {
57
57
  if (fieldValue) {
58
58
  return true;
59
59
  }
60
60
 
61
- return false;
61
+ if (fieldValue === false) {
62
+ return false;
63
+ }
64
+
65
+ return null;
62
66
  }
63
67
 
64
- async deserialize(serializedFieldValue: boolean): Promise<boolean> {
68
+ async deserialize(serializedFieldValue: boolean | null): Promise<boolean | null> {
65
69
  if (serializedFieldValue) {
66
70
  return true;
67
71
  }
68
72
 
69
- return false;
73
+ if (serializedFieldValue === false) {
74
+ return false;
75
+ }
76
+
77
+ return null;
70
78
  }
71
79
  }
72
80
 
@@ -77,15 +85,15 @@ export class DateColumn implements Column<Date, Date> {
77
85
  ) {}
78
86
  }
79
87
 
80
- export class DateTimeColumn implements Column<moment.Moment, Date> {
88
+ export class DateTimeColumn implements Column<moment.Moment | null, Date | null> {
81
89
  constructor(
82
90
  public name: string,
83
91
  public options?: ColumnOptions
84
92
  ) {}
85
93
 
86
- async serialize(fieldValue: moment.Moment | undefined): Promise<Date | undefined> {
87
- if (typeof fieldValue === 'undefined') {
88
- return;
94
+ async serialize(fieldValue: moment.Moment | undefined | null): Promise<Date | null> {
95
+ if (fieldValue === undefined || fieldValue === null || !moment.isMoment(fieldValue)) {
96
+ return null;
89
97
  }
90
98
 
91
99
  if (typeof fieldValue.toDate === 'undefined') {
@@ -95,7 +103,11 @@ export class DateTimeColumn implements Column<moment.Moment, Date> {
95
103
  return fieldValue.toDate();
96
104
  }
97
105
 
98
- async deserialize(serializedFieldValue: Date): Promise<moment.Moment> {
106
+ async deserialize(serializedFieldValue: Date | null): Promise<moment.Moment | null> {
107
+ if (serializedFieldValue === undefined || serializedFieldValue === null) {
108
+ return null;
109
+ }
110
+
99
111
  return moment(serializedFieldValue);
100
112
  }
101
113
  }
@@ -157,17 +169,17 @@ export class ObjectColumn<T> extends StringColumn<T> {
157
169
  ); // MAX is 4gb
158
170
  }
159
171
 
160
- async serialize(fieldValue: T | undefined): Promise<string | undefined> {
161
- if (typeof fieldValue === 'undefined' || fieldValue == null) {
162
- return;
172
+ async serialize(fieldValue: T | null | undefined): Promise<string | null> {
173
+ if (fieldValue === undefined || fieldValue == null) {
174
+ return null;
163
175
  }
164
176
 
165
177
  return JSON.stringify(fieldValue);
166
178
  }
167
179
 
168
- async deserialize(serializedFieldValue: string): Promise<T | undefined> {
169
- if (typeof serializedFieldValue === 'undefined' || serializedFieldValue == null) {
170
- return;
180
+ async deserialize(serializedFieldValue: string): Promise<T | null> {
181
+ if (serializedFieldValue === undefined || serializedFieldValue == null) {
182
+ return null;
171
183
  }
172
184
 
173
185
  return JSON.parse(serializedFieldValue);
@@ -218,19 +230,19 @@ export class ReferenceArrayColumn<T extends Record> extends ObjectColumn<Referen
218
230
  );
219
231
  }
220
232
 
221
- async serialize(fieldValue: ReferenceArray<T> | undefined): Promise<string | undefined> {
222
- if (typeof fieldValue === 'undefined') {
223
- return;
233
+ async serialize(fieldValue: ReferenceArray<T> | null | undefined): Promise<string | null> {
234
+ if (fieldValue === undefined || fieldValue == null) {
235
+ return null;
224
236
  }
225
237
 
226
238
  const ids = (await fieldValue.get()).map((record) => record.id);
227
239
  return await super.serialize(ids as any);
228
240
  }
229
241
 
230
- async deserialize(serializedFieldValue: string): Promise<ReferenceArray<T>> {
231
- let ids = (await super.deserialize(serializedFieldValue)) as string[] | undefined;
232
- if (typeof ids === 'undefined') {
233
- ids = [];
242
+ async deserialize(serializedFieldValue: string): Promise<ReferenceArray<T> | null> {
243
+ const ids = (await super.deserialize(serializedFieldValue)) as string[] | null;
244
+ if (ids === null) {
245
+ return null;
234
246
  }
235
247
 
236
248
  return new ReferenceArray(this.referenceTable, ids);
@@ -291,20 +303,21 @@ export class ReferenceColumn<T extends Record> extends StringColumn<Reference<T>
291
303
  );
292
304
  }
293
305
 
294
- async serialize(fieldValue: Reference<T> | undefined): Promise<string | undefined> {
295
- if (typeof fieldValue === 'undefined') {
296
- return;
297
- }
298
-
299
- if (!fieldValue._id) {
300
- return;
306
+ async serialize(fieldValue: Reference<T> | null | undefined): Promise<string | null> {
307
+ if (fieldValue === undefined || fieldValue == null || !fieldValue._id) {
308
+ return null;
301
309
  }
302
310
 
303
311
  return fieldValue._id;
304
312
  }
305
313
 
306
- async deserialize(serializedFieldValue: string): Promise<Reference<T>> {
307
- return new Reference(this.referenceTable, serializedFieldValue);
314
+ async deserialize(serializedFieldValue: string): Promise<Reference<T> | null> {
315
+ const reference = new Reference(this.referenceTable, serializedFieldValue);
316
+ if (reference._id === null) {
317
+ return null;
318
+ }
319
+
320
+ return reference as Reference<T>;
308
321
  }
309
322
 
310
323
  async beforeDelete(table: Table<any>, columnPropertyName: string, records: any[]) {
package/src/Record.ts CHANGED
@@ -51,6 +51,9 @@ export class RecordSerializer<T extends Record> {
51
51
  }
52
52
 
53
53
  const fieldValue = await record[fieldPropertyName];
54
+ if (fieldValue === undefined) {
55
+ throw new Error(`Must not pass in undefined. Undefined was found for field: ${fieldPropertyName}`);
56
+ }
54
57
  const { columnName, serializedFieldValue } = await fieldSerializer.serialize(fieldPropertyName, fieldValue);
55
58
  serialized[columnName] = serializedFieldValue;
56
59
  }
package/src/Table.ts CHANGED
@@ -96,8 +96,8 @@ export type Column<T, Serialized> = {
96
96
  */
97
97
  oldName?: string;
98
98
  options?: ColumnOptions;
99
- serialize?: (fieldValue: T | undefined) => Promise<Serialized | undefined>;
100
- deserialize?: (serializedFieldValue: Serialized) => Promise<T | void>;
99
+ serialize?: (fieldValue: T | null | undefined) => Promise<Serialized | null | undefined>;
100
+ deserialize?: (serializedFieldValue: Serialized | null) => Promise<T | null | void>;
101
101
  beforeDelete?: (table: Table<any>, columnPropertyName: string, records: any[]) => Promise<void>;
102
102
  };
103
103