@proteinjs/db 1.5.1 → 1.5.3
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/CHANGELOG.md +11 -0
- package/dist/generated/index.js +5 -5
- package/dist/generated/index.js.map +1 -1
- package/dist/src/Record.d.ts +1 -0
- package/dist/src/Record.d.ts.map +1 -1
- package/dist/src/Record.js +67 -17
- package/dist/src/Record.js.map +1 -1
- package/dist/src/RecordIterator.js +1 -1
- package/dist/src/RecordIterator.js.map +1 -1
- package/generated/index.ts +5 -5
- package/package.json +9 -9
- package/src/Record.ts +35 -8
- package/src/RecordIterator.ts +1 -1
package/dist/src/Record.js
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
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
|
+
})();
|
|
2
17
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
18
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
19
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -37,6 +52,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
52
|
};
|
|
38
53
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
54
|
exports.FieldSerializer = exports.RecordSerializer = exports.withRecordColumns = void 0;
|
|
55
|
+
var util_1 = require("@proteinjs/util");
|
|
40
56
|
var Columns_1 = require("./Columns");
|
|
41
57
|
var moment_1 = require("./opt/moment");
|
|
42
58
|
var recordColumns = {
|
|
@@ -55,6 +71,15 @@ var recordColumns = {
|
|
|
55
71
|
}); }); },
|
|
56
72
|
}),
|
|
57
73
|
};
|
|
74
|
+
var MissingFieldError = /** @class */ (function (_super) {
|
|
75
|
+
__extends(MissingFieldError, _super);
|
|
76
|
+
function MissingFieldError(tableName, fieldName) {
|
|
77
|
+
var _this = _super.call(this, "Table ".concat(tableName, " is missing field: ").concat(fieldName)) || this;
|
|
78
|
+
_this.name = 'MissingFieldError';
|
|
79
|
+
return _this;
|
|
80
|
+
}
|
|
81
|
+
return MissingFieldError;
|
|
82
|
+
}(Error));
|
|
58
83
|
/**
|
|
59
84
|
* Wrapper function to add default Record columns to your table's columns (should always use).
|
|
60
85
|
*
|
|
@@ -69,16 +94,18 @@ function withRecordColumns(columns) {
|
|
|
69
94
|
exports.withRecordColumns = withRecordColumns;
|
|
70
95
|
var RecordSerializer = /** @class */ (function () {
|
|
71
96
|
function RecordSerializer(table) {
|
|
97
|
+
this.logger = new util_1.Logger(this.constructor.name);
|
|
72
98
|
this.table = table;
|
|
73
99
|
}
|
|
74
100
|
RecordSerializer.prototype.serialize = function (record) {
|
|
75
101
|
return __awaiter(this, void 0, void 0, function () {
|
|
76
|
-
var serialized, fieldSerializer, _a, _b, _c, _i, fieldPropertyName, fieldValue, _d, columnName, serializedFieldValue;
|
|
102
|
+
var serialized, fieldSerializer, omittedFields, _a, _b, _c, _i, fieldPropertyName, fieldValue, _d, columnName, serializedFieldValue, MissingFieldError_1;
|
|
77
103
|
return __generator(this, function (_e) {
|
|
78
104
|
switch (_e.label) {
|
|
79
105
|
case 0:
|
|
80
106
|
serialized = {};
|
|
81
107
|
fieldSerializer = new FieldSerializer(this.table);
|
|
108
|
+
omittedFields = [];
|
|
82
109
|
_a = record;
|
|
83
110
|
_b = [];
|
|
84
111
|
for (_c in _a)
|
|
@@ -86,12 +113,12 @@ var RecordSerializer = /** @class */ (function () {
|
|
|
86
113
|
_i = 0;
|
|
87
114
|
_e.label = 1;
|
|
88
115
|
case 1:
|
|
89
|
-
if (!(_i < _b.length)) return [3 /*break*/,
|
|
116
|
+
if (!(_i < _b.length)) return [3 /*break*/, 7];
|
|
90
117
|
_c = _b[_i];
|
|
91
|
-
if (!(_c in _a)) return [3 /*break*/,
|
|
118
|
+
if (!(_c in _a)) return [3 /*break*/, 6];
|
|
92
119
|
fieldPropertyName = _c;
|
|
93
120
|
if (typeof record[fieldPropertyName] === 'function') {
|
|
94
|
-
return [3 /*break*/,
|
|
121
|
+
return [3 /*break*/, 6];
|
|
95
122
|
}
|
|
96
123
|
return [4 /*yield*/, record[fieldPropertyName]];
|
|
97
124
|
case 2:
|
|
@@ -99,27 +126,39 @@ var RecordSerializer = /** @class */ (function () {
|
|
|
99
126
|
if (fieldValue === undefined) {
|
|
100
127
|
throw new Error("Must not pass in undefined. Undefined was found for field: ".concat(fieldPropertyName));
|
|
101
128
|
}
|
|
102
|
-
|
|
129
|
+
_e.label = 3;
|
|
103
130
|
case 3:
|
|
131
|
+
_e.trys.push([3, 5, , 6]);
|
|
132
|
+
return [4 /*yield*/, fieldSerializer.serialize(fieldPropertyName, fieldValue)];
|
|
133
|
+
case 4:
|
|
104
134
|
_d = _e.sent(), columnName = _d.columnName, serializedFieldValue = _d.serializedFieldValue;
|
|
105
135
|
serialized[columnName] = serializedFieldValue;
|
|
106
|
-
|
|
107
|
-
case
|
|
136
|
+
return [3 /*break*/, 6];
|
|
137
|
+
case 5:
|
|
138
|
+
MissingFieldError_1 = _e.sent();
|
|
139
|
+
omittedFields.push(fieldPropertyName);
|
|
140
|
+
return [3 /*break*/, 6];
|
|
141
|
+
case 6:
|
|
108
142
|
_i++;
|
|
109
143
|
return [3 /*break*/, 1];
|
|
110
|
-
case
|
|
144
|
+
case 7:
|
|
145
|
+
if (omittedFields.length > 0) {
|
|
146
|
+
this.logger.info("Fields were omitted during serialization: ".concat(omittedFields.join(', ')));
|
|
147
|
+
}
|
|
148
|
+
return [2 /*return*/, serialized];
|
|
111
149
|
}
|
|
112
150
|
});
|
|
113
151
|
});
|
|
114
152
|
};
|
|
115
153
|
RecordSerializer.prototype.deserialize = function (serializedRecord) {
|
|
116
154
|
return __awaiter(this, void 0, void 0, function () {
|
|
117
|
-
var deserialized, fieldSerializer, _a, _b, _c, _i, columnName, serializedFieldValue, _d, fieldPropertyName, fieldValue;
|
|
155
|
+
var deserialized, fieldSerializer, omittedFields, _a, _b, _c, _i, columnName, serializedFieldValue, _d, fieldPropertyName, fieldValue, MissingFieldError_2;
|
|
118
156
|
return __generator(this, function (_e) {
|
|
119
157
|
switch (_e.label) {
|
|
120
158
|
case 0:
|
|
121
159
|
deserialized = {};
|
|
122
160
|
fieldSerializer = new FieldSerializer(this.table);
|
|
161
|
+
omittedFields = [];
|
|
123
162
|
_a = serializedRecord;
|
|
124
163
|
_b = [];
|
|
125
164
|
for (_c in _a)
|
|
@@ -127,20 +166,31 @@ var RecordSerializer = /** @class */ (function () {
|
|
|
127
166
|
_i = 0;
|
|
128
167
|
_e.label = 1;
|
|
129
168
|
case 1:
|
|
130
|
-
if (!(_i < _b.length)) return [3 /*break*/,
|
|
169
|
+
if (!(_i < _b.length)) return [3 /*break*/, 6];
|
|
131
170
|
_c = _b[_i];
|
|
132
|
-
if (!(_c in _a)) return [3 /*break*/,
|
|
171
|
+
if (!(_c in _a)) return [3 /*break*/, 5];
|
|
133
172
|
columnName = _c;
|
|
134
173
|
serializedFieldValue = serializedRecord[columnName];
|
|
135
|
-
|
|
174
|
+
_e.label = 2;
|
|
136
175
|
case 2:
|
|
176
|
+
_e.trys.push([2, 4, , 5]);
|
|
177
|
+
return [4 /*yield*/, fieldSerializer.deserialize(columnName, serializedFieldValue)];
|
|
178
|
+
case 3:
|
|
137
179
|
_d = _e.sent(), fieldPropertyName = _d.fieldPropertyName, fieldValue = _d.fieldValue;
|
|
138
180
|
deserialized[fieldPropertyName] = fieldValue;
|
|
139
|
-
|
|
140
|
-
case
|
|
181
|
+
return [3 /*break*/, 5];
|
|
182
|
+
case 4:
|
|
183
|
+
MissingFieldError_2 = _e.sent();
|
|
184
|
+
omittedFields.push(columnName);
|
|
185
|
+
return [3 /*break*/, 5];
|
|
186
|
+
case 5:
|
|
141
187
|
_i++;
|
|
142
188
|
return [3 /*break*/, 1];
|
|
143
|
-
case
|
|
189
|
+
case 6:
|
|
190
|
+
if (omittedFields.length > 0) {
|
|
191
|
+
this.logger.info("Fields were omitted during deserialization: ".concat(omittedFields.join(', ')));
|
|
192
|
+
}
|
|
193
|
+
return [2 /*return*/, deserialized];
|
|
144
194
|
}
|
|
145
195
|
});
|
|
146
196
|
});
|
|
@@ -161,7 +211,7 @@ var FieldSerializer = /** @class */ (function () {
|
|
|
161
211
|
columns = this.table.columns;
|
|
162
212
|
column = columns[fieldPropertyName];
|
|
163
213
|
if (!column) {
|
|
164
|
-
throw new
|
|
214
|
+
throw new MissingFieldError(this.table.name, fieldPropertyName);
|
|
165
215
|
}
|
|
166
216
|
serializedFieldValue = fieldValue;
|
|
167
217
|
if (!column.serialize) return [3 /*break*/, 2];
|
|
@@ -195,7 +245,7 @@ var FieldSerializer = /** @class */ (function () {
|
|
|
195
245
|
}
|
|
196
246
|
if (!column) {
|
|
197
247
|
// this is the case where a column exists in the db that is no longer defined in Table.columns
|
|
198
|
-
|
|
248
|
+
throw new MissingFieldError(this.table.name, fieldPropertyName);
|
|
199
249
|
}
|
|
200
250
|
fieldValue = serializedFieldValue;
|
|
201
251
|
if (!column.deserialize) return [3 /*break*/, 2];
|
package/dist/src/Record.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Record.js","sourceRoot":"","sources":["../../src/Record.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Record.js","sourceRoot":"","sources":["../../src/Record.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,7 +58,7 @@ var RecordIterator = /** @class */ (function () {
|
|
|
58
58
|
switch (_b.label) {
|
|
59
59
|
case 0:
|
|
60
60
|
if (!true) return [3 /*break*/, 11];
|
|
61
|
-
pagination = { start: this.currentPage * this.pageSize, end: (this.currentPage + 1) * this.pageSize
|
|
61
|
+
pagination = { start: this.currentPage * this.pageSize, end: (this.currentPage + 1) * this.pageSize };
|
|
62
62
|
this.query.paginate(pagination);
|
|
63
63
|
return [4 /*yield*/, __await(this.db.query(this.table, this.query))];
|
|
64
64
|
case 1:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordIterator.js","sourceRoot":"","sources":["../../src/RecordIterator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2BAAiC;AAIjC,6DAA4D;AAG5D;IAOE,wBAAY,KAAe,EAAE,KAAe,EAAE,QAAqB;QAArB,yBAAA,EAAA,aAAqB;QACjE,IAAI,CAAC,EAAE,GAAG,IAAA,UAAK,GAAE,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,yCAAmB,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACrE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACvB,CAAC;IAEM,yBAAC,MAAM,CAAC,aAAa,CAAC,GAA7B;;;;;;6BACS,IAAI;wBACH,UAAU,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"RecordIterator.js","sourceRoot":"","sources":["../../src/RecordIterator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2BAAiC;AAIjC,6DAA4D;AAG5D;IAOE,wBAAY,KAAe,EAAE,KAAe,EAAE,QAAqB;QAArB,yBAAA,EAAA,aAAqB;QACjE,IAAI,CAAC,EAAE,GAAG,IAAA,UAAK,GAAE,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,yCAAmB,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACrE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACvB,CAAC;IAEM,yBAAC,MAAM,CAAC,aAAa,CAAC,GAA7B;;;;;;6BACS,IAAI;wBACH,UAAU,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAC5G,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;wBAChB,6BAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAA;;wBAArD,OAAO,GAAG,SAA2C;6BAEvD,CAAA,OAAO,CAAC,MAAM,KAAK,CAAC,CAAA,EAApB,wBAAoB;;4BACtB,iCAAO;;8BAGiB,EAAP,mBAAO;;;6BAAP,CAAA,qBAAO,CAAA;wBAAf,IAAI;qDACP,IAAI;4BAAV,gCAAU;;wBAAV,SAAU,CAAC;;;wBADM,IAAO,CAAA;;;6BAItB,CAAA,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAA,EAA9B,yBAA8B;;4BAChC,iCAAO;;wBAGT,IAAI,CAAC,WAAW,EAAE,CAAC;;;;;;KAEtB;IACH,qBAAC;AAAD,CAAC,AApCD,IAoCC;AApCY,wCAAc"}
|