leoric 2.8.7 → 2.9.0
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/History.md +24 -0
- package/index.d.ts +1 -0
- package/package.json +2 -3
- package/src/adapters/sequelize.d.ts +1 -1
- package/src/adapters/sequelize.js +9 -0
- package/src/bone.js +27 -7
- package/src/data_types.js +18 -7
- package/src/data_types.js.map +1 -1
- package/src/data_types.ts +19 -7
- package/src/decorators.js +9 -2
- package/src/decorators.js.map +1 -1
- package/src/decorators.ts +9 -2
- package/src/drivers/abstract/spellbook.js +1 -0
- package/src/drivers/index.d.ts +1 -1
- package/src/drivers/mysql/spellbook.js +2 -2
- package/src/drivers/postgres/index.js +7 -6
- package/src/drivers/sqlite/index.js +2 -2
- package/src/migrations.js +2 -2
- package/src/spell.d.ts +3 -0
- package/src/spell.js +5 -2
- package/src/types/abstract_bone.d.ts +20 -4
- package/src/types/common.d.ts +1 -1
package/History.md
CHANGED
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
2.9.0 / 2022-11-09
|
|
2
|
+
==================
|
|
3
|
+
|
|
4
|
+
## What's Changed
|
|
5
|
+
* fix: `tinytext` type error by @JimmyDaddy in https://github.com/cyjake/leoric/pull/364
|
|
6
|
+
* fix: date strings should be parsed with system time zone considered by @cyjake in https://github.com/cyjake/leoric/pull/365
|
|
7
|
+
* feat: support multiple level inherent by @JimmyDaddy in https://github.com/cyjake/leoric/pull/366
|
|
8
|
+
* fix: `cast/uncast` STRING and TEXT with non-string type value, and some type definitions by @JimmyDaddy in https://github.com/cyjake/leoric/pull/368
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
**Full Changelog**: https://github.com/cyjake/leoric/compare/v2.8.8...v2.9.0
|
|
12
|
+
|
|
13
|
+
2.8.8 / 2022-10-25
|
|
14
|
+
==================
|
|
15
|
+
|
|
16
|
+
## What's Changed
|
|
17
|
+
* fix: join query with select columns should include order columns by @cyjake in https://github.com/cyjake/leoric/pull/360
|
|
18
|
+
* docs: support switchable dark theme, at web app level by @cyjake in https://github.com/cyjake/leoric/pull/359
|
|
19
|
+
* fix: @Column() should not tamper parent attributes directly by @cyjake in https://github.com/cyjake/leoric/pull/362
|
|
20
|
+
* fix: bone.update({ deletedAt: null }) and likewise methods should work by @cyjake in https://github.com/cyjake/leoric/pull/363
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
**Full Changelog**: https://github.com/cyjake/leoric/compare/v2.8.7...v2.8.8
|
|
24
|
+
|
|
1
25
|
2.8.7 / 2022-10-11
|
|
2
26
|
==================
|
|
3
27
|
|
package/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "leoric",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.9.0",
|
|
4
4
|
"description": "JavaScript Object-relational mapping alchemy",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -49,13 +49,13 @@
|
|
|
49
49
|
"node": ">= 12.0.0"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
+
"dayjs": "^1.10.3",
|
|
52
53
|
"debug": "^3.1.0",
|
|
53
54
|
"deep-equal": "^2.0.5",
|
|
54
55
|
"heredoc": "^1.3.1",
|
|
55
56
|
"pluralize": "^7.0.0",
|
|
56
57
|
"reflect-metadata": "^0.1.13",
|
|
57
58
|
"sqlstring": "^2.3.0",
|
|
58
|
-
"strftime": "^0.10.0",
|
|
59
59
|
"validator": "^13.5.2"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
@@ -65,7 +65,6 @@
|
|
|
65
65
|
"@journeyapps/sqlcipher": "^5.2.0",
|
|
66
66
|
"@types/mocha": "^9.0.0",
|
|
67
67
|
"@types/node": "^16.10.1",
|
|
68
|
-
"dayjs": "^1.10.3",
|
|
69
68
|
"eslint": "^7.20.0",
|
|
70
69
|
"eslint-plugin-no-only-tests": "^3.0.0",
|
|
71
70
|
"expect.js": "^0.3.1",
|
|
@@ -171,9 +171,9 @@ export class SequelizeBone extends AbstractBone {
|
|
|
171
171
|
|
|
172
172
|
static findByPk<T extends typeof SequelizeBone>(this:T, pk: number | bigint | string, options?: Pick<SequelizeConditions<T>, 'paranoid' | 'connection' | 'transaction' |'hint' | 'hints'>): Spell<T, InstanceType<T>>;
|
|
173
173
|
|
|
174
|
+
static findOne<T extends typeof SequelizeBone>(this: T, options?: SequelizeConditions<T>): Spell<T, InstanceType<T>>;
|
|
174
175
|
static findOne<T extends typeof SequelizeBone>(this: T, whereConditions: string, ...values: Literal[]): Spell<T, InstanceType<T>>;
|
|
175
176
|
static findOne<T extends typeof SequelizeBone>(this: T, primaryKey: number | number[] | bigint): Spell<T, InstanceType<T>>;
|
|
176
|
-
static findOne<T extends typeof SequelizeBone>(this: T, options?: SequelizeConditions<T>): Spell<T, InstanceType<T>>;
|
|
177
177
|
|
|
178
178
|
static findCreateFind<T extends typeof SequelizeBone>(this: T, options: FindOrCreateOptions<T>): Promise<InstanceType<T>>;
|
|
179
179
|
static findOrBuild<T extends typeof SequelizeBone>(this: T, options: FindOrBuildOptions<T>): Promise<[InstanceType<T>, boolean]>;
|
|
@@ -156,9 +156,18 @@ module.exports = function sequelize(Bone) {
|
|
|
156
156
|
*/
|
|
157
157
|
static scope(name, ...args) {
|
|
158
158
|
const parentName = this.name;
|
|
159
|
+
const parentTable = this.table;
|
|
160
|
+
const parent = this;
|
|
159
161
|
class ScopeClass extends this {
|
|
160
162
|
static name = parentName;
|
|
163
|
+
static get synchronized() {
|
|
164
|
+
return parent.synchronized;
|
|
165
|
+
}
|
|
166
|
+
static get table() {
|
|
167
|
+
return parentTable;
|
|
168
|
+
}
|
|
161
169
|
}
|
|
170
|
+
|
|
162
171
|
ScopeClass.setScope(name, ...args);
|
|
163
172
|
return ScopeClass;
|
|
164
173
|
}
|
package/src/bone.js
CHANGED
|
@@ -25,7 +25,9 @@ const {
|
|
|
25
25
|
IS_LEORIC_BONE,
|
|
26
26
|
} = require('./constants');
|
|
27
27
|
|
|
28
|
-
const columnAttributesKey = Symbol('leoric#
|
|
28
|
+
const columnAttributesKey = Symbol('leoric#columnAttributes');
|
|
29
|
+
const synchronizedKey = Symbol('leoric#synchronized');
|
|
30
|
+
const tableKey = Symbol('leoric#table');
|
|
29
31
|
|
|
30
32
|
function looseReadonly(props) {
|
|
31
33
|
return Object.keys(props).reduce((result, name) => {
|
|
@@ -172,6 +174,14 @@ class Bone {
|
|
|
172
174
|
}
|
|
173
175
|
}
|
|
174
176
|
|
|
177
|
+
static set synchronized(value) {
|
|
178
|
+
this[synchronizedKey] = value;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
static get synchronized() {
|
|
182
|
+
return this[synchronizedKey];
|
|
183
|
+
}
|
|
184
|
+
|
|
175
185
|
/**
|
|
176
186
|
* Get or set attribute value by name. This method is quite similiar to `jQuery.attr()`. If the attribute isn't selected when queried from database, an error will be thrown when accessing it.
|
|
177
187
|
*
|
|
@@ -668,7 +678,7 @@ class Bone {
|
|
|
668
678
|
* @public
|
|
669
679
|
* @param {Object} values
|
|
670
680
|
* @param {Object?} options
|
|
671
|
-
* @returns {number} affected rows
|
|
681
|
+
* @returns {Promise<number>} affected rows
|
|
672
682
|
* @memberof Bone
|
|
673
683
|
*/
|
|
674
684
|
async update(values, options = {}) {
|
|
@@ -697,7 +707,7 @@ class Bone {
|
|
|
697
707
|
/**
|
|
698
708
|
* Persist changes on current instance back to database with `UPDATE`.
|
|
699
709
|
* @private
|
|
700
|
-
* @return {number}
|
|
710
|
+
* @return {Promise<number>}
|
|
701
711
|
*/
|
|
702
712
|
async _update(values, options = {}) {
|
|
703
713
|
const Model = this.constructor;
|
|
@@ -1033,15 +1043,16 @@ class Bone {
|
|
|
1033
1043
|
|
|
1034
1044
|
Object.defineProperties(this, looseReadonly({
|
|
1035
1045
|
timestamps,
|
|
1036
|
-
table,
|
|
1037
1046
|
primaryKey,
|
|
1038
1047
|
columns,
|
|
1039
1048
|
attributeMap,
|
|
1040
1049
|
associations,
|
|
1041
1050
|
tableAlias,
|
|
1042
|
-
synchronized: Object.keys(diff).length === 0,
|
|
1043
1051
|
}));
|
|
1044
1052
|
|
|
1053
|
+
this[tableKey] = table;
|
|
1054
|
+
this[synchronizedKey] = Object.keys(diff).length === 0;
|
|
1055
|
+
|
|
1045
1056
|
if (!this.synchronized) {
|
|
1046
1057
|
debug('[load] %s `%s` out of sync %j', this.name, this.table, Object.keys(diff));
|
|
1047
1058
|
}
|
|
@@ -1096,6 +1107,14 @@ class Bone {
|
|
|
1096
1107
|
return this.table || snakeCase(pluralize(this.name));
|
|
1097
1108
|
}
|
|
1098
1109
|
|
|
1110
|
+
static set table(value) {
|
|
1111
|
+
this[tableKey] = value;
|
|
1112
|
+
}
|
|
1113
|
+
|
|
1114
|
+
static get table() {
|
|
1115
|
+
return this[tableKey];
|
|
1116
|
+
}
|
|
1117
|
+
|
|
1099
1118
|
/**
|
|
1100
1119
|
* get the connection pool of the driver
|
|
1101
1120
|
*/
|
|
@@ -1639,7 +1658,8 @@ class Bone {
|
|
|
1639
1658
|
}, {});
|
|
1640
1659
|
|
|
1641
1660
|
this[columnAttributesKey] = null;
|
|
1642
|
-
|
|
1661
|
+
this[tableKey] = table;
|
|
1662
|
+
Object.defineProperties(this, looseReadonly({ ...hookMethods, attributes }));
|
|
1643
1663
|
}
|
|
1644
1664
|
|
|
1645
1665
|
static async sync({ force = false, alter = false } = {}) {
|
|
@@ -1647,7 +1667,7 @@ class Bone {
|
|
|
1647
1667
|
const { database } = this.options;
|
|
1648
1668
|
|
|
1649
1669
|
// a model that is not connected before
|
|
1650
|
-
if (this.
|
|
1670
|
+
if (!this.hasOwnProperty(synchronizedKey)) {
|
|
1651
1671
|
const schemaInfo = await driver.querySchemaInfo(database, [ table ]);
|
|
1652
1672
|
this.load(schemaInfo[table]);
|
|
1653
1673
|
}
|
package/src/data_types.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.invokable = exports.DataType = exports.LENGTH_VARIANTS = void 0;
|
|
7
7
|
const raw_1 = __importDefault(require("./raw"));
|
|
8
8
|
const util_1 = __importDefault(require("util"));
|
|
9
|
+
const dayjs_1 = __importDefault(require("dayjs"));
|
|
9
10
|
const invokableFunc = require('./utils/invokable');
|
|
10
11
|
var LENGTH_VARIANTS;
|
|
11
12
|
(function (LENGTH_VARIANTS) {
|
|
@@ -35,7 +36,7 @@ class DataType {
|
|
|
35
36
|
/**
|
|
36
37
|
* uncast js value into database type with precision
|
|
37
38
|
*/
|
|
38
|
-
uncast(value
|
|
39
|
+
uncast(value) {
|
|
39
40
|
return value;
|
|
40
41
|
}
|
|
41
42
|
}
|
|
@@ -60,6 +61,15 @@ class STRING extends DataType {
|
|
|
60
61
|
chunks.push(dataLength && dataLength > 0 ? `${dataType}(${dataLength})` : dataType);
|
|
61
62
|
return chunks.join(' ');
|
|
62
63
|
}
|
|
64
|
+
cast(value) {
|
|
65
|
+
if (typeof value === 'object' && value != null) {
|
|
66
|
+
return global.JSON.stringify(value);
|
|
67
|
+
}
|
|
68
|
+
if (value == null) {
|
|
69
|
+
return value;
|
|
70
|
+
}
|
|
71
|
+
return '' + value;
|
|
72
|
+
}
|
|
63
73
|
uncast(value) {
|
|
64
74
|
if (value == null || value instanceof raw_1.default)
|
|
65
75
|
return value;
|
|
@@ -285,7 +295,7 @@ class DATE extends DataType {
|
|
|
285
295
|
return original;
|
|
286
296
|
return this._round(value);
|
|
287
297
|
}
|
|
288
|
-
uncast(value
|
|
298
|
+
uncast(value) {
|
|
289
299
|
const originValue = value;
|
|
290
300
|
// type narrowing doesn't handle `return value` correctly
|
|
291
301
|
if (value == null)
|
|
@@ -298,14 +308,13 @@ class DATE extends DataType {
|
|
|
298
308
|
// @deprecated
|
|
299
309
|
// vaguely standard date formats such as 2021-10-15 15:50:02,548
|
|
300
310
|
if (typeof value === 'string' && rDateFormat.test(value)) {
|
|
301
|
-
// 2021-10-15 15:50:02,548 => 2021-10-
|
|
302
|
-
|
|
303
|
-
value = new Date(`${value.replace(' ', 'T').replace(',', '.')}`);
|
|
311
|
+
// 2021-10-15 15:50:02,548 => 2021-10-15 15:50:02.548,
|
|
312
|
+
value = (0, dayjs_1.default)(`${value.replace(',', '.')}`).toDate();
|
|
304
313
|
}
|
|
305
314
|
// 1634611135776
|
|
306
315
|
// '2021-10-15T08:38:43.877Z'
|
|
307
316
|
if (!(value instanceof Date))
|
|
308
|
-
value =
|
|
317
|
+
value = (0, dayjs_1.default)(value).toDate();
|
|
309
318
|
if (isNaN(value))
|
|
310
319
|
throw new Error(util_1.default.format('invalid date: %s', originValue));
|
|
311
320
|
return this._round(value);
|
|
@@ -342,7 +351,7 @@ class BOOLEAN extends DataType {
|
|
|
342
351
|
return Boolean(value);
|
|
343
352
|
}
|
|
344
353
|
}
|
|
345
|
-
class TEXT extends
|
|
354
|
+
class TEXT extends STRING {
|
|
346
355
|
constructor(length = LENGTH_VARIANTS.empty) {
|
|
347
356
|
if (!Object.values(LENGTH_VARIANTS).includes(length)) {
|
|
348
357
|
throw new Error(`invalid text length: ${length}`);
|
|
@@ -474,6 +483,8 @@ class DataTypes {
|
|
|
474
483
|
return new CHAR(...params);
|
|
475
484
|
case 'varchar':
|
|
476
485
|
return new STRING(...params);
|
|
486
|
+
case 'tinytext':
|
|
487
|
+
return new TEXT(LENGTH_VARIANTS.tiny);
|
|
477
488
|
// longtext is only for MySQL
|
|
478
489
|
case 'longtext':
|
|
479
490
|
return new TEXT(LENGTH_VARIANTS.long);
|
package/src/data_types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data_types.js","sourceRoot":"","sources":["data_types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data_types.js","sourceRoot":"","sources":["data_types.ts"],"names":[],"mappings":"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"}
|
package/src/data_types.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Raw from './raw';
|
|
2
2
|
import util from 'util';
|
|
3
|
+
import dayjs from 'dayjs';
|
|
3
4
|
const invokableFunc = require('./utils/invokable');
|
|
4
5
|
|
|
5
6
|
export enum LENGTH_VARIANTS {
|
|
@@ -36,7 +37,7 @@ export abstract class DataType {
|
|
|
36
37
|
/**
|
|
37
38
|
* uncast js value into database type with precision
|
|
38
39
|
*/
|
|
39
|
-
uncast(value: any
|
|
40
|
+
uncast(value: any): any {
|
|
40
41
|
return value;
|
|
41
42
|
}
|
|
42
43
|
|
|
@@ -65,6 +66,16 @@ class STRING extends DataType {
|
|
|
65
66
|
return chunks.join(' ');
|
|
66
67
|
}
|
|
67
68
|
|
|
69
|
+
cast(value: any): any {
|
|
70
|
+
if (typeof value === 'object' && value != null) {
|
|
71
|
+
return global.JSON.stringify(value);
|
|
72
|
+
}
|
|
73
|
+
if (value == null) {
|
|
74
|
+
return value;
|
|
75
|
+
}
|
|
76
|
+
return '' + value;
|
|
77
|
+
}
|
|
78
|
+
|
|
68
79
|
uncast(value: string | Raw | null): string | Raw | null {
|
|
69
80
|
if (value == null || value instanceof Raw) return value;
|
|
70
81
|
return '' + value;
|
|
@@ -304,7 +315,7 @@ class DATE extends DataType {
|
|
|
304
315
|
return this._round(value);
|
|
305
316
|
}
|
|
306
317
|
|
|
307
|
-
uncast(value: null | Raw | string | Date | { toDate: () => Date }
|
|
318
|
+
uncast(value: null | Raw | string | Date | { toDate: () => Date }): string | Date | Raw | null | undefined {
|
|
308
319
|
const originValue = value;
|
|
309
320
|
|
|
310
321
|
// type narrowing doesn't handle `return value` correctly
|
|
@@ -316,14 +327,13 @@ class DATE extends DataType {
|
|
|
316
327
|
// @deprecated
|
|
317
328
|
// vaguely standard date formats such as 2021-10-15 15:50:02,548
|
|
318
329
|
if (typeof value === 'string' && rDateFormat.test(value)) {
|
|
319
|
-
// 2021-10-15 15:50:02,548 => 2021-10-
|
|
320
|
-
|
|
321
|
-
value = new Date(`${value.replace(' ', 'T').replace(',', '.')}`);
|
|
330
|
+
// 2021-10-15 15:50:02,548 => 2021-10-15 15:50:02.548,
|
|
331
|
+
value = dayjs(`${value.replace(',', '.')}`).toDate();
|
|
322
332
|
}
|
|
323
333
|
|
|
324
334
|
// 1634611135776
|
|
325
335
|
// '2021-10-15T08:38:43.877Z'
|
|
326
|
-
if (!(value instanceof Date)) value =
|
|
336
|
+
if (!(value instanceof Date)) value = dayjs((value as string)).toDate();
|
|
327
337
|
if (isNaN((value as any))) throw new Error(util.format('invalid date: %s', originValue));
|
|
328
338
|
|
|
329
339
|
return this._round(value);
|
|
@@ -366,7 +376,7 @@ class BOOLEAN extends DataType {
|
|
|
366
376
|
}
|
|
367
377
|
}
|
|
368
378
|
|
|
369
|
-
class TEXT extends
|
|
379
|
+
class TEXT extends STRING {
|
|
370
380
|
constructor(length: LENGTH_VARIANTS = LENGTH_VARIANTS.empty) {
|
|
371
381
|
if (!Object.values(LENGTH_VARIANTS).includes(length)) {
|
|
372
382
|
throw new Error(`invalid text length: ${length}`);
|
|
@@ -537,6 +547,8 @@ class DataTypes {
|
|
|
537
547
|
return new CHAR(...params);
|
|
538
548
|
case 'varchar':
|
|
539
549
|
return new STRING(...params);
|
|
550
|
+
case 'tinytext':
|
|
551
|
+
return new TEXT(LENGTH_VARIANTS.tiny);
|
|
540
552
|
// longtext is only for MySQL
|
|
541
553
|
case 'longtext':
|
|
542
554
|
return new TEXT(LENGTH_VARIANTS.long);
|
package/src/decorators.js
CHANGED
|
@@ -59,9 +59,16 @@ function Column(options = {}) {
|
|
|
59
59
|
throw new Error(`unknown column options ${options}`);
|
|
60
60
|
// target refers to model prototype, an internal instance of `Bone {}`
|
|
61
61
|
const model = target.constructor;
|
|
62
|
-
|
|
62
|
+
if (!model.hasOwnProperty('attributes') || !model.attributes) {
|
|
63
|
+
Object.defineProperty(model, 'attributes', {
|
|
64
|
+
value: { ...model.attributes },
|
|
65
|
+
writable: false,
|
|
66
|
+
enumerable: false,
|
|
67
|
+
configurable: true,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
63
70
|
const { name: columnName, ...restOptions } = options;
|
|
64
|
-
attributes[propertyKey] = { ...restOptions, columnName };
|
|
71
|
+
model.attributes[propertyKey] = { ...restOptions, columnName };
|
|
65
72
|
};
|
|
66
73
|
}
|
|
67
74
|
exports.Column = Column;
|
package/src/decorators.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["decorators.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4BAA0B;AAG1B,2DAA8D;AAC9D,2CAAqD;AAWrD,SAAS,QAAQ,CAAC,MAAM;IACtB,MAAM,EACJ,MAAM,EAAE,OAAO,EACf,IAAI,EACJ,MAAM,EACN,OAAO,GACR,GAAG,oBAAS,CAAC;IAEd,QAAQ,MAAM,EAAE;QACd,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,OAAO,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB;YACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;KACxD;AACH,CAAC;AAED,SAAgB,MAAM,CAAC,UAAyD,EAAE;IAChF,OAAO,UAAS,MAAY,EAAE,WAAmB;QAC/C,sEAAsE;QACtE,IAAI,OAAO,CAAC,WAAW,CAAC,YAAY,qBAAQ,IAAI,OAAO,YAAY,qBAAQ,EAAE;YAC3E,OAAO,GAAG,EAAE,IAAI,EAAE,OAA8B,EAAE,CAAC;SACpD;QAED,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,EAAE;YACxB,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YACvE,OAAO,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;SACpC;QAED,gDAAgD;QAChD,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;QAE/E,sEAAsE;QACtE,MAAM,KAAK,GAAG,MAAM,CAAC,WAAkB,CAAC;QACxC,
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["decorators.ts"],"names":[],"mappings":"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"}
|
package/src/decorators.ts
CHANGED
|
@@ -54,9 +54,16 @@ export function Column(options: ColumnOption | DATA_TYPE<DataType> | DataType =
|
|
|
54
54
|
|
|
55
55
|
// target refers to model prototype, an internal instance of `Bone {}`
|
|
56
56
|
const model = target.constructor as any;
|
|
57
|
-
|
|
57
|
+
if (!model.hasOwnProperty('attributes') || !model.attributes) {
|
|
58
|
+
Object.defineProperty(model, 'attributes', {
|
|
59
|
+
value: { ...model.attributes },
|
|
60
|
+
writable: false,
|
|
61
|
+
enumerable: false,
|
|
62
|
+
configurable: true,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
58
65
|
const { name: columnName, ...restOptions } = options;
|
|
59
|
-
attributes[propertyKey] = { ...restOptions, columnName };
|
|
66
|
+
model.attributes[propertyKey] = { ...restOptions, columnName };
|
|
60
67
|
};
|
|
61
68
|
}
|
|
62
69
|
|
|
@@ -54,6 +54,7 @@ function createSubspell(spell) {
|
|
|
54
54
|
const { type, qualifiers = [], value } = token;
|
|
55
55
|
if (type == 'id' && qualifiers[0] == baseName) {
|
|
56
56
|
subspell.orders.push([{ type, value }, direction]);
|
|
57
|
+
if (subspell.columns.length > 0) subspell.columns.push({ type, value });
|
|
57
58
|
}
|
|
58
59
|
}
|
|
59
60
|
|
package/src/drivers/index.d.ts
CHANGED
|
@@ -39,7 +39,7 @@ class MySQLSpellBook extends Spellbook {
|
|
|
39
39
|
const { columnAttributes, primaryColumn } = Model;
|
|
40
40
|
|
|
41
41
|
if (Array.isArray(updateOnDuplicate) && updateOnDuplicate.length) {
|
|
42
|
-
columns = updateOnDuplicate.map(column => (columnAttributes[column] && columnAttributes[column].columnName
|
|
42
|
+
columns = updateOnDuplicate.map(column => (columnAttributes[column] && columnAttributes[column].columnName) || column)
|
|
43
43
|
.filter(column => column !== primaryColumn);
|
|
44
44
|
} else if (!columns.length) {
|
|
45
45
|
columns = Object.values(columnAttributes).map(attribute => attribute.columnName).filter(column => column !== primaryColumn);
|
|
@@ -80,7 +80,7 @@ class MySQLSpellBook extends Spellbook {
|
|
|
80
80
|
|
|
81
81
|
/**
|
|
82
82
|
* DELETE ... ORDER BY ...LIMIT
|
|
83
|
-
* @param {Spell} spell
|
|
83
|
+
* @param {Spell} spell
|
|
84
84
|
*/
|
|
85
85
|
formatDelete(spell) {
|
|
86
86
|
const result = super.formatDelete(spell);
|
|
@@ -109,15 +109,16 @@ class PostgresDriver extends AbstractDriver {
|
|
|
109
109
|
tables = [].concat(tables);
|
|
110
110
|
const text = heresql(`
|
|
111
111
|
SELECT columns.*,
|
|
112
|
-
|
|
112
|
+
constraints.constraint_type
|
|
113
113
|
FROM information_schema.columns AS columns
|
|
114
|
-
|
|
114
|
+
LEFT JOIN information_schema.key_column_usage AS usage
|
|
115
115
|
ON columns.table_catalog = usage.table_catalog
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
116
|
+
AND columns.table_name = usage.table_name
|
|
117
|
+
AND columns.column_name = usage.column_name
|
|
118
|
+
LEFT JOIN information_schema.table_constraints AS constraints
|
|
119
119
|
ON usage.constraint_name = constraints.constraint_name
|
|
120
|
-
|
|
120
|
+
WHERE columns.table_catalog = $1 AND columns.table_name = ANY($2)
|
|
121
|
+
ORDER BY columns.ordinal_position ASC
|
|
121
122
|
`);
|
|
122
123
|
|
|
123
124
|
const { pool } = this;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const
|
|
3
|
+
const dayjs = require('dayjs');
|
|
4
4
|
const { performance } = require('perf_hooks');
|
|
5
5
|
|
|
6
6
|
const AbstractDriver = require('../abstract');
|
|
@@ -46,7 +46,7 @@ class SqliteDriver extends AbstractDriver {
|
|
|
46
46
|
if (values) {
|
|
47
47
|
values = values.map(entry => {
|
|
48
48
|
if (entry instanceof Date) {
|
|
49
|
-
return
|
|
49
|
+
return dayjs(entry).format('YYYY-MM-DD HH:mm:ss.SSS Z');
|
|
50
50
|
}
|
|
51
51
|
return entry;
|
|
52
52
|
});
|
package/src/migrations.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
const dayjs = require('dayjs');
|
|
3
4
|
const fs = require('fs').promises;
|
|
4
5
|
const path = require('path');
|
|
5
|
-
const strftime = require('strftime');
|
|
6
6
|
|
|
7
7
|
async function loadTasks(dir) {
|
|
8
8
|
const entries = await fs.readdir(dir, { withFileTypes: true });
|
|
@@ -61,7 +61,7 @@ async function rollback(step = 1) {
|
|
|
61
61
|
|
|
62
62
|
async function createMigrationFile(name) {
|
|
63
63
|
const { migrations: dir } = this.options;
|
|
64
|
-
const timestamp =
|
|
64
|
+
const timestamp = dayjs().format('YYYYMMDDHHmmss');
|
|
65
65
|
const fpath = path.join(dir, `${timestamp}-${name}.js`);
|
|
66
66
|
await fs.writeFile(fpath, `'use strict';
|
|
67
67
|
|
package/src/spell.d.ts
CHANGED
|
@@ -111,11 +111,14 @@ export class Spell<T extends typeof AbstractBone, U = InstanceType<T> | Collecti
|
|
|
111
111
|
|
|
112
112
|
$where(conditions: WhereConditions<T>): this;
|
|
113
113
|
$where(conditions: string, ...values: Literal[]): this;
|
|
114
|
+
$where(conditions: Raw, ...values: Literal[]): this;
|
|
114
115
|
where(conditions: WhereConditions<T>): Spell<T, U>;
|
|
115
116
|
where(conditions: string, ...values: Literal[]): Spell<T, U>;
|
|
117
|
+
where(conditions: Raw, ...values: Literal[]): Spell<T, U>;
|
|
116
118
|
|
|
117
119
|
orWhere(conditions: WhereConditions<T>): Spell<T, U>;
|
|
118
120
|
orWhere(conditions: string, ...values: Literal[]): Spell<T, U>;
|
|
121
|
+
orWhere(conditions: Raw, ...values: Literal[]): Spell<T, U>;
|
|
119
122
|
|
|
120
123
|
group(...names: Array<string | Raw>): Spell<T, ResultSet<T>>;
|
|
121
124
|
|
package/src/spell.js
CHANGED
|
@@ -263,13 +263,16 @@ function joinAssociation(spell, BaseModel, baseName, refName, opts = {}) {
|
|
|
263
263
|
* If Model supports soft delete, and deletedAt isn't specified in whereConditions yet, and the table isn't a subquery, append a default where({ deletedAt: null }).
|
|
264
264
|
*/
|
|
265
265
|
function scopeDeletedAt(spell) {
|
|
266
|
-
const { table, whereConditions, Model } = spell;
|
|
266
|
+
const { table, sets, whereConditions, Model } = spell;
|
|
267
267
|
|
|
268
268
|
const { deletedAt } = Model.timestamps;
|
|
269
269
|
|
|
270
270
|
// from subquery
|
|
271
271
|
if (table.type !== 'id') return;
|
|
272
272
|
|
|
273
|
+
// UPDATE users SET deleted_at = NULL WHERE id = 42;
|
|
274
|
+
if (sets && sets[deletedAt] === null) return;
|
|
275
|
+
|
|
273
276
|
// deletedAt already specified
|
|
274
277
|
for (const condition of whereConditions) {
|
|
275
278
|
let found = false;
|
|
@@ -963,7 +966,7 @@ for (const aggregator in AGGREGATOR_MAP) {
|
|
|
963
966
|
value: function Spell_aggregator(name = '*') {
|
|
964
967
|
if (name instanceof Raw) {
|
|
965
968
|
this.$select(Raw.build(`${func.toUpperCase()}(${name}) AS ${aggregator}`));
|
|
966
|
-
return this
|
|
969
|
+
return this;
|
|
967
970
|
}
|
|
968
971
|
if (name !== '*' && parseExpr(name).type !== 'id') {
|
|
969
972
|
throw new Error(`unexpected operand ${name} for ${func.toUpperCase()}()`);
|
|
@@ -7,7 +7,6 @@ import {
|
|
|
7
7
|
} from './common';
|
|
8
8
|
import { AbstractDriver } from '../drivers';
|
|
9
9
|
import { Spell } from '../spell';
|
|
10
|
-
import { Key } from "readline";
|
|
11
10
|
|
|
12
11
|
interface SyncOptions {
|
|
13
12
|
force?: boolean;
|
|
@@ -20,7 +19,7 @@ interface TransactionOptions {
|
|
|
20
19
|
|
|
21
20
|
type V<T, Key extends keyof T> = Record<Key, T[Key]>;
|
|
22
21
|
export class AbstractBone {
|
|
23
|
-
static name: string;
|
|
22
|
+
static readonly name: string;
|
|
24
23
|
|
|
25
24
|
static DataTypes: typeof DataTypes;
|
|
26
25
|
|
|
@@ -93,6 +92,14 @@ export class AbstractBone {
|
|
|
93
92
|
*/
|
|
94
93
|
static attribute(name: string, meta: AttributeMeta): void;
|
|
95
94
|
|
|
95
|
+
/**
|
|
96
|
+
* Model.hasAttribute(name)
|
|
97
|
+
* @static
|
|
98
|
+
* @param {string} name
|
|
99
|
+
* @returns {boolean}
|
|
100
|
+
*/
|
|
101
|
+
static hasAttribute(name: string): boolean;
|
|
102
|
+
|
|
96
103
|
/**
|
|
97
104
|
* Rename attribute
|
|
98
105
|
* @example
|
|
@@ -177,6 +184,7 @@ export class AbstractBone {
|
|
|
177
184
|
*/
|
|
178
185
|
static select<T extends typeof AbstractBone>(this: T, ...names: Array<BoneColumns<T>> | string[]): Spell<T>;
|
|
179
186
|
static select<T extends typeof AbstractBone>(this: T, ...names: string[]): Spell<T>;
|
|
187
|
+
static select<T extends typeof AbstractBone>(this: T, ...names: Raw[]): Spell<T>;
|
|
180
188
|
static select<T extends typeof AbstractBone>(this: T, filter: (name: string) => boolean): Spell<T>;
|
|
181
189
|
|
|
182
190
|
/**
|
|
@@ -194,7 +202,7 @@ export class AbstractBone {
|
|
|
194
202
|
* Bone.where({ foo: { $eq: 1 } })
|
|
195
203
|
*/
|
|
196
204
|
static where<T extends typeof AbstractBone>(this: T, whereConditions: WhereConditions<T>): Spell<T, Collection<InstanceType<T>>>;
|
|
197
|
-
static where<T extends typeof AbstractBone>(this: T, whereConditions: string, ...values: Literal[]): Spell<T, Collection<InstanceType<T>>>;
|
|
205
|
+
static where<T extends typeof AbstractBone>(this: T, whereConditions: string | Raw, ...values: Literal[]): Spell<T, Collection<InstanceType<T>>>;
|
|
198
206
|
|
|
199
207
|
/**
|
|
200
208
|
* Set GROUP fields
|
|
@@ -204,6 +212,7 @@ export class AbstractBone {
|
|
|
204
212
|
*/
|
|
205
213
|
static group<T extends typeof AbstractBone>(this: T, ...names: Array<BoneColumns<T>>): Spell<T, ResultSet<T>>;
|
|
206
214
|
static group<T extends typeof AbstractBone>(this: T, ...names: Array<string>): Spell<T, ResultSet<T>>;
|
|
215
|
+
static group<T extends typeof AbstractBone>(this: T, ...names: Array<Raw>): Spell<T, ResultSet<T>>;
|
|
207
216
|
|
|
208
217
|
/**
|
|
209
218
|
* Set ORDER fields
|
|
@@ -251,7 +260,7 @@ export class AbstractBone {
|
|
|
251
260
|
*/
|
|
252
261
|
static truncate(): Promise<void>;
|
|
253
262
|
|
|
254
|
-
static sync(options
|
|
263
|
+
static sync(options?: SyncOptions): Promise<void>;
|
|
255
264
|
|
|
256
265
|
static initialize(): void;
|
|
257
266
|
|
|
@@ -268,6 +277,13 @@ export class AbstractBone {
|
|
|
268
277
|
attribute<T, Key extends keyof Values<T>, U extends T[Key]>(this: T, name: Key): U extends Literal ? U : Literal;
|
|
269
278
|
attribute<T, Key extends keyof T, U extends T[Key]>(this: T, name: Key): U extends Literal ? U : Literal;
|
|
270
279
|
|
|
280
|
+
/**
|
|
281
|
+
* instance.hasAttribute(name)
|
|
282
|
+
* @param {string} name
|
|
283
|
+
* @returns {boolean}
|
|
284
|
+
*/
|
|
285
|
+
hasAttribute(name: string): boolean;
|
|
286
|
+
|
|
271
287
|
/**
|
|
272
288
|
* Get the original attribute value.
|
|
273
289
|
* @example
|
package/src/types/common.d.ts
CHANGED
|
@@ -159,7 +159,7 @@ export type WithOptions = {
|
|
|
159
159
|
type OrderOptions<T extends typeof AbstractBone> = {
|
|
160
160
|
[key in keyof Extract<InstanceType<T>, Literal>]?: 'desc' | 'asc'
|
|
161
161
|
} | [ BoneColumns<T>, 'desc' | 'asc' ]
|
|
162
|
-
| Array<BoneColumns<T> | [ BoneColumns<T>, 'desc' | 'asc' ] | Raw | string
|
|
162
|
+
| Array<BoneColumns<T> | [ BoneColumns<T>, 'desc' | 'asc' ] | Raw | string | Array<Raw | string>>
|
|
163
163
|
| string | Raw;
|
|
164
164
|
|
|
165
165
|
export class Collection<T extends AbstractBone> extends Array<T> {
|