leoric 2.7.0 → 2.7.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/History.md +35 -0
- package/{types/index.d.ts → index.d.ts} +37 -63
- package/package.json +4 -4
- package/src/bone.js +1 -1
- package/src/data_types.js +32 -34
- package/src/data_types.js.map +1 -1
- package/src/data_types.ts +31 -37
- package/src/decorators.js +1 -1
- package/src/decorators.js.map +1 -1
- package/src/decorators.ts +9 -18
- package/src/drivers/abstract/attribute.js +2 -0
- package/src/drivers/mysql/attribute.js +5 -0
- package/src/drivers/mysql/data_types.js +1 -1
- package/src/drivers/postgres/attribute.js +5 -1
- package/src/drivers/postgres/data_types.js +6 -6
- package/src/drivers/postgres/index.js +2 -1
- package/src/drivers/sqlite/attribute.js +5 -2
- package/src/drivers/sqlite/data_types.js +6 -6
- package/src/realm.js +2 -2
- package/src/types/common.d.ts +57 -0
- /package/{types → src/types}/hint.d.ts +0 -0
package/History.md
CHANGED
|
@@ -1,3 +1,38 @@
|
|
|
1
|
+
2.7.3 / 2022-08-25
|
|
2
|
+
==================
|
|
3
|
+
|
|
4
|
+
## What's Changed
|
|
5
|
+
* fix: should skip loading models that is loaded before by @cyjake in https://github.com/cyjake/leoric/pull/335
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
**Full Changelog**: https://github.com/cyjake/leoric/compare/v2.7.2...v2.7.3
|
|
9
|
+
|
|
10
|
+
2.7.2 / 2022-08-24
|
|
11
|
+
==================
|
|
12
|
+
|
|
13
|
+
## What's Changed
|
|
14
|
+
* Update associations.md by @dxhuii in https://github.com/cyjake/leoric/pull/331
|
|
15
|
+
* refactor: refactor type definitions and fix unique not work in columnOptions by @JimmyDaddy in https://github.com/cyjake/leoric/pull/332
|
|
16
|
+
* fix: declare more exported functions such as isBone and heresql by @cyjake in https://github.com/cyjake/leoric/pull/333
|
|
17
|
+
* fix: INTEGER like data type and STRING extra options didn't work in polymorphism, fix decorators ColumnOptions.type to support invokable by @JimmyDaddy in https://github.com/cyjake/leoric/pull/334
|
|
18
|
+
|
|
19
|
+
## New Contributors
|
|
20
|
+
* @dxhuii made their first contribution in https://github.com/cyjake/leoric/pull/331
|
|
21
|
+
|
|
22
|
+
**Full Changelog**: https://github.com/cyjake/leoric/compare/v2.7.1...v2.7.2
|
|
23
|
+
|
|
24
|
+
2.7.1 / 2022-08-24
|
|
25
|
+
==================
|
|
26
|
+
|
|
27
|
+
## What's Changed
|
|
28
|
+
* fix: projects might have strictPropertyInitialization set to true by @cyjake in https://github.com/cyjake/leoric/pull/329
|
|
29
|
+
* fix: types for validate in `Column` decorator by @vagusX in https://github.com/cyjake/leoric/pull/330
|
|
30
|
+
|
|
31
|
+
## New Contributors
|
|
32
|
+
* @vagusX made their first contribution in https://github.com/cyjake/leoric/pull/330
|
|
33
|
+
|
|
34
|
+
**Full Changelog**: https://github.com/cyjake/leoric/compare/v2.7.0...v2.7.1
|
|
35
|
+
|
|
1
36
|
2.7.0 / 2022-08-24
|
|
2
37
|
==================
|
|
3
38
|
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
import DataTypes, { DataType, AbstractDataType, LENGTH_VARIANTS } from '
|
|
2
|
-
import { Hint, IndexHint } from './hint';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export
|
|
1
|
+
import DataTypes, { DataType, AbstractDataType, LENGTH_VARIANTS } from './src/data_types';
|
|
2
|
+
import { Hint, IndexHint } from './src/types/hint';
|
|
3
|
+
import {
|
|
4
|
+
Literal, Validator, ColumnBase,
|
|
5
|
+
QueryResult, Connection, QueryOptions,
|
|
6
|
+
AssociateOptions, command, ResultSet
|
|
7
|
+
} from './src/types/common';
|
|
8
|
+
|
|
9
|
+
export {
|
|
10
|
+
LENGTH_VARIANTS as LENGTH_VARIANTS,
|
|
11
|
+
DataTypes, Literal, Validator, Connection,
|
|
12
|
+
Hint, IndexHint,
|
|
13
|
+
};
|
|
14
|
+
export * from './src/decorators';
|
|
10
15
|
|
|
11
16
|
export class Raw {
|
|
12
17
|
value: string;
|
|
@@ -141,7 +146,6 @@ export class Spell<T extends typeof Bone, U = InstanceType<T> | Collection<Insta
|
|
|
141
146
|
toString(): string;
|
|
142
147
|
}
|
|
143
148
|
|
|
144
|
-
|
|
145
149
|
type OperatorCondition = {
|
|
146
150
|
[key in '$eq' | '$ne']?: Literal;
|
|
147
151
|
} & {
|
|
@@ -168,65 +172,25 @@ type InstanceValues<T> = {
|
|
|
168
172
|
[Property in keyof Extract<T, Literal>]?: Extract<T, Literal>[Property]
|
|
169
173
|
}
|
|
170
174
|
|
|
171
|
-
export interface ColumnMeta {
|
|
172
|
-
columnName?: string;
|
|
173
|
-
columnType?: string;
|
|
174
|
-
allowNull?: boolean;
|
|
175
|
-
defaultValue?: Literal;
|
|
176
|
-
primaryKey?: boolean;
|
|
177
|
-
unique?: boolean;
|
|
175
|
+
export interface ColumnMeta extends ColumnBase {
|
|
178
176
|
dataType?: string;
|
|
179
|
-
comment?: string;
|
|
180
177
|
datetimePrecision?: string;
|
|
181
178
|
}
|
|
182
179
|
|
|
183
|
-
declare type validator = Literal | Function | Array<Literal | Literal[]>;
|
|
184
|
-
|
|
185
180
|
export interface AttributeMeta extends ColumnMeta {
|
|
186
181
|
jsType?: Literal;
|
|
187
182
|
type: AbstractDataType<DataType>;
|
|
188
183
|
virtual?: boolean,
|
|
189
184
|
toSqlString?: () => string;
|
|
190
185
|
validate?: {
|
|
191
|
-
[key: string]:
|
|
186
|
+
[key: string]: Validator;
|
|
192
187
|
}
|
|
193
188
|
}
|
|
194
189
|
|
|
195
|
-
interface RelateOptions {
|
|
196
|
-
className?: string;
|
|
197
|
-
foreignKey?: string;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
interface QueryOptions {
|
|
201
|
-
validate?: boolean;
|
|
202
|
-
individualHooks?: boolean;
|
|
203
|
-
hooks?: boolean;
|
|
204
|
-
paranoid?: boolean;
|
|
205
|
-
silent?: boolean;
|
|
206
|
-
connection?: Connection;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
190
|
interface TransactionOptions {
|
|
210
191
|
connection: Connection;
|
|
211
192
|
}
|
|
212
193
|
|
|
213
|
-
interface QueryResult {
|
|
214
|
-
insertId?: number;
|
|
215
|
-
affectedRows?: number;
|
|
216
|
-
rows?: Array<Record<string, Literal>>,
|
|
217
|
-
fields?: Array<{ table: string, name: string }>,
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
export interface Connection {
|
|
221
|
-
/**
|
|
222
|
-
* MySQL
|
|
223
|
-
*/
|
|
224
|
-
query(
|
|
225
|
-
query: string,
|
|
226
|
-
values: Array<Literal | Literal[]>,
|
|
227
|
-
): Promise<QueryResult>;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
194
|
declare class Pool {
|
|
231
195
|
getConnection(): Connection;
|
|
232
196
|
}
|
|
@@ -448,10 +412,6 @@ export class SqliteDriver extends AbstractDriver {
|
|
|
448
412
|
dialect: 'sqlite';
|
|
449
413
|
}
|
|
450
414
|
|
|
451
|
-
type ResultSet = {
|
|
452
|
-
[key: string]: Literal
|
|
453
|
-
};
|
|
454
|
-
|
|
455
415
|
export class Collection<T extends Bone> extends Array<T> {
|
|
456
416
|
save(): Promise<void>;
|
|
457
417
|
toJSON(): Object[];
|
|
@@ -544,9 +504,9 @@ export class Bone {
|
|
|
544
504
|
static alias(data: Record<string, Literal>): Record<string, Literal>;
|
|
545
505
|
static unalias(name: string): string;
|
|
546
506
|
|
|
547
|
-
static hasOne(name: string, opts?:
|
|
548
|
-
static hasMany(name: string, opts?:
|
|
549
|
-
static belongsTo(name: string, opts?:
|
|
507
|
+
static hasOne(name: string, opts?: AssociateOptions): void;
|
|
508
|
+
static hasMany(name: string, opts?: AssociateOptions): void;
|
|
509
|
+
static belongsTo(name: string, opts?: AssociateOptions): void;
|
|
550
510
|
|
|
551
511
|
/**
|
|
552
512
|
* INSERT rows
|
|
@@ -923,7 +883,21 @@ export default class Realm {
|
|
|
923
883
|
*/
|
|
924
884
|
export function connect(opts: ConnectOptions): Promise<Realm>;
|
|
925
885
|
export function disconnect(realm: Realm, callback?: Function): Promise<boolean | void>;
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
886
|
+
|
|
887
|
+
/**
|
|
888
|
+
* Check if cls is subclass of Bone
|
|
889
|
+
* @param cls
|
|
890
|
+
*/
|
|
891
|
+
export function isBone(cls: any): boolean;
|
|
892
|
+
|
|
893
|
+
/**
|
|
894
|
+
* Concatenate multiline SQL into oneline
|
|
895
|
+
* @example
|
|
896
|
+
* heresql(`
|
|
897
|
+
* SELECT *
|
|
898
|
+
* FROM users
|
|
899
|
+
* WHERE age >= 35
|
|
900
|
+
* `)
|
|
901
|
+
* @param text
|
|
902
|
+
*/
|
|
903
|
+
export function heresql(text): string;
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "leoric",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.3",
|
|
4
4
|
"description": "JavaScript Object-relational mapping alchemy",
|
|
5
5
|
"main": "index.js",
|
|
6
|
-
"types": "
|
|
6
|
+
"types": "index.d.ts",
|
|
7
7
|
"files": [
|
|
8
|
-
"index.js",
|
|
9
8
|
"src",
|
|
10
|
-
"
|
|
9
|
+
"index.js",
|
|
10
|
+
"index.d.ts"
|
|
11
11
|
],
|
|
12
12
|
"scripts": {
|
|
13
13
|
"jsdoc": "rm -rf docs/api && jsdoc -c .jsdoc.json -d docs/api -t node_modules/@cara/minami",
|
package/src/bone.js
CHANGED
|
@@ -10,7 +10,7 @@ const pluralize = require('pluralize');
|
|
|
10
10
|
const { executeValidator, LeoricValidateError } = require('./validator');
|
|
11
11
|
require('reflect-metadata');
|
|
12
12
|
|
|
13
|
-
const { DataTypes } = require('./data_types');
|
|
13
|
+
const { default: DataTypes } = require('./data_types');
|
|
14
14
|
const Collection = require('./collection');
|
|
15
15
|
const Spell = require('./spell');
|
|
16
16
|
const Raw = require('./raw');
|
package/src/data_types.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.invokable = exports.
|
|
3
|
+
exports.invokable = exports.DataType = exports.LENGTH_VARIANTS = void 0;
|
|
4
4
|
const util = require('util');
|
|
5
5
|
const invokableFunc = require('./utils/invokable');
|
|
6
6
|
const Raw = require('./raw');
|
|
@@ -20,13 +20,8 @@ var LENGTH_VARIANTS;
|
|
|
20
20
|
* });
|
|
21
21
|
*/
|
|
22
22
|
class DataType {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
* @param {*} params
|
|
26
|
-
* @returns {boolean}
|
|
27
|
-
*/
|
|
28
|
-
static is(params) {
|
|
29
|
-
return params instanceof DataType;
|
|
23
|
+
constructor() {
|
|
24
|
+
this.dataType = '';
|
|
30
25
|
}
|
|
31
26
|
/**
|
|
32
27
|
* cast raw data returned from data packet into js type
|
|
@@ -40,19 +35,6 @@ class DataType {
|
|
|
40
35
|
uncast(value, _strict) {
|
|
41
36
|
return value;
|
|
42
37
|
}
|
|
43
|
-
static get invokable() {
|
|
44
|
-
return new Proxy(this, {
|
|
45
|
-
get(target, p) {
|
|
46
|
-
const value = target[p];
|
|
47
|
-
if (AllDataTypes.hasOwnProperty(p))
|
|
48
|
-
return invokableFunc(value);
|
|
49
|
-
return value;
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
static toSqlString() {
|
|
54
|
-
return '';
|
|
55
|
-
}
|
|
56
38
|
}
|
|
57
39
|
exports.DataType = DataType;
|
|
58
40
|
/**
|
|
@@ -119,10 +101,12 @@ class VARBINARY extends BINARY {
|
|
|
119
101
|
* @param {number} dataLength
|
|
120
102
|
*/
|
|
121
103
|
class INTEGER extends DataType {
|
|
122
|
-
constructor(dataLength) {
|
|
104
|
+
constructor(dataLength, unsigned, zerofill) {
|
|
123
105
|
super();
|
|
124
106
|
this.dataLength = dataLength;
|
|
125
107
|
this.dataType = 'integer';
|
|
108
|
+
this.unsigned = unsigned;
|
|
109
|
+
this.zerofill = zerofill;
|
|
126
110
|
}
|
|
127
111
|
get UNSIGNED() {
|
|
128
112
|
this.unsigned = true;
|
|
@@ -171,8 +155,8 @@ class INTEGER extends DataType {
|
|
|
171
155
|
* @param {number} dataLength
|
|
172
156
|
*/
|
|
173
157
|
class TINYINT extends INTEGER {
|
|
174
|
-
constructor(dataLength) {
|
|
175
|
-
super(dataLength);
|
|
158
|
+
constructor(dataLength, unsigned, zerofill) {
|
|
159
|
+
super(dataLength, unsigned, zerofill);
|
|
176
160
|
this.dataType = 'tinyint';
|
|
177
161
|
}
|
|
178
162
|
}
|
|
@@ -185,8 +169,8 @@ class TINYINT extends INTEGER {
|
|
|
185
169
|
* @param {number} dataLength
|
|
186
170
|
*/
|
|
187
171
|
class SMALLINT extends INTEGER {
|
|
188
|
-
constructor(dataLength) {
|
|
189
|
-
super(dataLength);
|
|
172
|
+
constructor(dataLength, unsigned, zerofill) {
|
|
173
|
+
super(dataLength, unsigned, zerofill);
|
|
190
174
|
this.dataType = 'smallint';
|
|
191
175
|
}
|
|
192
176
|
}
|
|
@@ -199,8 +183,8 @@ class SMALLINT extends INTEGER {
|
|
|
199
183
|
* @param {number} dataLength
|
|
200
184
|
*/
|
|
201
185
|
class MEDIUMINT extends INTEGER {
|
|
202
|
-
constructor(dataLength) {
|
|
203
|
-
super(dataLength);
|
|
186
|
+
constructor(dataLength, unsigned, zerofill) {
|
|
187
|
+
super(dataLength, unsigned, zerofill);
|
|
204
188
|
this.dataType = 'mediumint';
|
|
205
189
|
}
|
|
206
190
|
}
|
|
@@ -213,8 +197,8 @@ class MEDIUMINT extends INTEGER {
|
|
|
213
197
|
* @param {number} dataLength
|
|
214
198
|
*/
|
|
215
199
|
class BIGINT extends INTEGER {
|
|
216
|
-
constructor(dataLength) {
|
|
217
|
-
super(dataLength);
|
|
200
|
+
constructor(dataLength, unsigned, zerofill) {
|
|
201
|
+
super(dataLength, unsigned, zerofill);
|
|
218
202
|
this.dataType = 'bigint';
|
|
219
203
|
}
|
|
220
204
|
}
|
|
@@ -458,7 +442,7 @@ const AllDataTypes = {
|
|
|
458
442
|
VARBINARY,
|
|
459
443
|
VIRTUAL,
|
|
460
444
|
};
|
|
461
|
-
class DataTypes
|
|
445
|
+
class DataTypes {
|
|
462
446
|
static findType(columnType) {
|
|
463
447
|
const { STRING, TEXT, DATE, DATEONLY, TINYINT, SMALLINT, MEDIUMINT, INTEGER, BIGINT, DECIMAL, BOOLEAN, BINARY, VARBINARY, BLOB, } = this;
|
|
464
448
|
const res = columnType === null || columnType === void 0 ? void 0 : columnType.match(/(\w+)(?:\((\d+)(?:,(\d+))?\))?/);
|
|
@@ -524,11 +508,25 @@ class DataTypes extends DataType {
|
|
|
524
508
|
throw new Error(`Unexpected data type ${dataType}`);
|
|
525
509
|
}
|
|
526
510
|
}
|
|
527
|
-
|
|
528
|
-
return
|
|
511
|
+
static get invokable() {
|
|
512
|
+
return new Proxy(this, {
|
|
513
|
+
get(target, p) {
|
|
514
|
+
const value = target[p];
|
|
515
|
+
if (AllDataTypes.hasOwnProperty(p))
|
|
516
|
+
return invokableFunc(value);
|
|
517
|
+
return value;
|
|
518
|
+
}
|
|
519
|
+
});
|
|
520
|
+
}
|
|
521
|
+
/**
|
|
522
|
+
* Check if params is instance of DataType or not
|
|
523
|
+
* @param {*} params
|
|
524
|
+
* @returns {boolean}
|
|
525
|
+
*/
|
|
526
|
+
static is(params) {
|
|
527
|
+
return params instanceof DataType;
|
|
529
528
|
}
|
|
530
529
|
}
|
|
531
|
-
exports.DataTypes = DataTypes;
|
|
532
530
|
DataTypes.STRING = STRING;
|
|
533
531
|
DataTypes.TINYINT = TINYINT;
|
|
534
532
|
DataTypes.SMALLINT = SMALLINT;
|
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
|
@@ -25,18 +25,9 @@ export interface AbstractDataType<T> {
|
|
|
25
25
|
*/
|
|
26
26
|
|
|
27
27
|
export abstract class DataType {
|
|
28
|
-
dataType: string;
|
|
28
|
+
dataType: string = '';
|
|
29
29
|
dataLength?: string | number;
|
|
30
30
|
|
|
31
|
-
/**
|
|
32
|
-
* Check if params is instance of DataType or not
|
|
33
|
-
* @param {*} params
|
|
34
|
-
* @returns {boolean}
|
|
35
|
-
*/
|
|
36
|
-
static is(params: any): boolean {
|
|
37
|
-
return params instanceof DataType;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
31
|
/**
|
|
41
32
|
* cast raw data returned from data packet into js type
|
|
42
33
|
*/
|
|
@@ -51,21 +42,7 @@ export abstract class DataType {
|
|
|
51
42
|
return value;
|
|
52
43
|
}
|
|
53
44
|
|
|
54
|
-
static get invokable() {
|
|
55
|
-
return new Proxy(this, {
|
|
56
|
-
get(target, p) {
|
|
57
|
-
const value = target[p];
|
|
58
|
-
if (AllDataTypes.hasOwnProperty(p)) return invokableFunc(value);
|
|
59
|
-
return value;
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
|
|
64
45
|
abstract toSqlString(): string;
|
|
65
|
-
|
|
66
|
-
static toSqlString(): string {
|
|
67
|
-
return '';
|
|
68
|
-
}
|
|
69
46
|
}
|
|
70
47
|
|
|
71
48
|
/**
|
|
@@ -139,10 +116,12 @@ class INTEGER extends DataType {
|
|
|
139
116
|
unsigned?: boolean;
|
|
140
117
|
zerofill?: boolean;
|
|
141
118
|
|
|
142
|
-
constructor(dataLength?: number) {
|
|
119
|
+
constructor(dataLength?: number, unsigned?: boolean, zerofill?: boolean) {
|
|
143
120
|
super();
|
|
144
121
|
this.dataLength = dataLength;
|
|
145
122
|
this.dataType = 'integer';
|
|
123
|
+
this.unsigned = unsigned;
|
|
124
|
+
this.zerofill = zerofill;
|
|
146
125
|
}
|
|
147
126
|
|
|
148
127
|
get UNSIGNED() {
|
|
@@ -191,8 +170,8 @@ class INTEGER extends DataType {
|
|
|
191
170
|
* @param {number} dataLength
|
|
192
171
|
*/
|
|
193
172
|
class TINYINT extends INTEGER {
|
|
194
|
-
constructor(dataLength?: number) {
|
|
195
|
-
super(dataLength);
|
|
173
|
+
constructor(dataLength?: number, unsigned?: boolean, zerofill?: boolean) {
|
|
174
|
+
super(dataLength, unsigned, zerofill);
|
|
196
175
|
this.dataType = 'tinyint';
|
|
197
176
|
}
|
|
198
177
|
}
|
|
@@ -206,8 +185,8 @@ class TINYINT extends INTEGER {
|
|
|
206
185
|
* @param {number} dataLength
|
|
207
186
|
*/
|
|
208
187
|
class SMALLINT extends INTEGER {
|
|
209
|
-
constructor(dataLength?: number) {
|
|
210
|
-
super(dataLength);
|
|
188
|
+
constructor(dataLength?: number, unsigned?: boolean, zerofill?: boolean) {
|
|
189
|
+
super(dataLength, unsigned, zerofill);
|
|
211
190
|
this.dataType = 'smallint';
|
|
212
191
|
}
|
|
213
192
|
}
|
|
@@ -221,8 +200,8 @@ class SMALLINT extends INTEGER {
|
|
|
221
200
|
* @param {number} dataLength
|
|
222
201
|
*/
|
|
223
202
|
class MEDIUMINT extends INTEGER {
|
|
224
|
-
constructor(dataLength?: number) {
|
|
225
|
-
super(dataLength);
|
|
203
|
+
constructor(dataLength?: number, unsigned?: boolean, zerofill?: boolean) {
|
|
204
|
+
super(dataLength, unsigned, zerofill);
|
|
226
205
|
this.dataType = 'mediumint';
|
|
227
206
|
}
|
|
228
207
|
}
|
|
@@ -237,8 +216,8 @@ class MEDIUMINT extends INTEGER {
|
|
|
237
216
|
* @param {number} dataLength
|
|
238
217
|
*/
|
|
239
218
|
class BIGINT extends INTEGER {
|
|
240
|
-
constructor(dataLength?: number) {
|
|
241
|
-
super(dataLength);
|
|
219
|
+
constructor(dataLength?: number, unsigned?: boolean, zerofill?: boolean) {
|
|
220
|
+
super(dataLength, unsigned, zerofill);
|
|
242
221
|
this.dataType = 'bigint';
|
|
243
222
|
}
|
|
244
223
|
}
|
|
@@ -505,9 +484,9 @@ const AllDataTypes = {
|
|
|
505
484
|
VIRTUAL,
|
|
506
485
|
};
|
|
507
486
|
|
|
508
|
-
type DATA_TYPE<T> =
|
|
487
|
+
export type DATA_TYPE<T> = AbstractDataType<T> & T;
|
|
509
488
|
|
|
510
|
-
|
|
489
|
+
class DataTypes {
|
|
511
490
|
static STRING: DATA_TYPE<STRING> = STRING as any;
|
|
512
491
|
static TINYINT: DATA_TYPE<TINYINT> = TINYINT as any;
|
|
513
492
|
static SMALLINT: DATA_TYPE<SMALLINT> = SMALLINT as any;
|
|
@@ -598,8 +577,23 @@ export class DataTypes extends DataType {
|
|
|
598
577
|
}
|
|
599
578
|
}
|
|
600
579
|
|
|
601
|
-
|
|
602
|
-
return
|
|
580
|
+
static get invokable() {
|
|
581
|
+
return new Proxy(this, {
|
|
582
|
+
get(target, p) {
|
|
583
|
+
const value = target[p];
|
|
584
|
+
if (AllDataTypes.hasOwnProperty(p)) return invokableFunc(value);
|
|
585
|
+
return value;
|
|
586
|
+
}
|
|
587
|
+
});
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
/**
|
|
591
|
+
* Check if params is instance of DataType or not
|
|
592
|
+
* @param {*} params
|
|
593
|
+
* @returns {boolean}
|
|
594
|
+
*/
|
|
595
|
+
static is(params: any): boolean {
|
|
596
|
+
return params instanceof DataType;
|
|
603
597
|
}
|
|
604
598
|
}
|
|
605
599
|
|
package/src/decorators.js
CHANGED
|
@@ -24,9 +24,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.BelongsTo = exports.HasOne = exports.HasMany = exports.Column = void 0;
|
|
27
|
+
require("reflect-metadata");
|
|
27
28
|
const data_types_1 = __importStar(require("./data_types"));
|
|
28
29
|
const constants_1 = require("./constants");
|
|
29
|
-
require("reflect-metadata");
|
|
30
30
|
function findType(tsType) {
|
|
31
31
|
const { BIGINT, INTEGER, DATE, STRING, BOOLEAN, } = data_types_1.default;
|
|
32
32
|
switch (tsType) {
|
package/src/decorators.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["decorators.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["decorators.ts"],"names":[],"mappings":"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"}
|
package/src/decorators.ts
CHANGED
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
import Bone from './bone';
|
|
2
|
-
import DataTypes, { DataType, AbstractDataType } from './data_types';
|
|
3
|
-
import { ASSOCIATE_METADATA_MAP } from './constants';
|
|
4
1
|
import 'reflect-metadata';
|
|
5
2
|
|
|
6
|
-
|
|
3
|
+
import Bone from './bone';
|
|
4
|
+
import DataTypes, { DataType, DATA_TYPE } from './data_types';
|
|
5
|
+
import { ASSOCIATE_METADATA_MAP } from './constants';
|
|
6
|
+
import { ColumnBase, Validator, AssociateOptions } from './types/common';
|
|
7
7
|
|
|
8
|
-
interface ColumnOption {
|
|
9
|
-
type?:
|
|
8
|
+
interface ColumnOption extends Omit<ColumnBase, 'columnName'| 'columnType'> {
|
|
9
|
+
type?: DataType;
|
|
10
10
|
name?: string;
|
|
11
|
-
defaultValue?: Literal;
|
|
12
|
-
allowNull?: boolean;
|
|
13
|
-
primaryKey?: boolean;
|
|
14
|
-
columnName?: string;
|
|
15
11
|
validate?: {
|
|
16
|
-
[key: string]:
|
|
12
|
+
[key: string]: Validator;
|
|
17
13
|
}
|
|
18
14
|
}
|
|
19
15
|
|
|
@@ -41,13 +37,13 @@ function findType(tsType) {
|
|
|
41
37
|
}
|
|
42
38
|
}
|
|
43
39
|
|
|
44
|
-
export function Column(options?: ColumnOption |
|
|
40
|
+
export function Column(options?: ColumnOption | DATA_TYPE<DataType>) {
|
|
45
41
|
return function(target: Bone, propertyKey: string) {
|
|
46
42
|
if (options == null) {
|
|
47
43
|
options = {};
|
|
48
44
|
}
|
|
49
45
|
// target refers to model prototype, an internal instance of `Bone {}`
|
|
50
|
-
if (options['prototype'] instanceof DataType) options = { type: options as
|
|
46
|
+
if (options['prototype'] instanceof DataType) options = { type: options as DATA_TYPE<DataType> };
|
|
51
47
|
|
|
52
48
|
if (!('type' in options)) {
|
|
53
49
|
const tsType = Reflect.getMetadata('design:type', target, propertyKey);
|
|
@@ -65,11 +61,6 @@ export function Column(options?: ColumnOption | AbstractDataType<DataType>) {
|
|
|
65
61
|
};
|
|
66
62
|
}
|
|
67
63
|
|
|
68
|
-
interface AssociateOptions {
|
|
69
|
-
className?: string;
|
|
70
|
-
foreignKey?: string;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
64
|
const { hasMany, hasOne, belongsTo } = ASSOCIATE_METADATA_MAP;
|
|
74
65
|
|
|
75
66
|
export function HasMany(options?: AssociateOptions) {
|
|
@@ -73,10 +73,12 @@ function createType(DataTypes, params) {
|
|
|
73
73
|
case 'MEDIUMINT':
|
|
74
74
|
case 'INTEGER':
|
|
75
75
|
case 'BIGINT':
|
|
76
|
+
return new DataType(type.dataLength, type.unsigned, type.zerofill);
|
|
76
77
|
case 'BINARY':
|
|
77
78
|
case 'VARBINARY':
|
|
78
79
|
case 'CHAR':
|
|
79
80
|
case 'VARCHAR':
|
|
81
|
+
case 'STRING':
|
|
80
82
|
return new DataType(type.dataLength);
|
|
81
83
|
default:
|
|
82
84
|
return new DataType();
|
|
@@ -21,6 +21,7 @@ class MysqlAttribute extends Attribute {
|
|
|
21
21
|
allowNull, defaultValue,
|
|
22
22
|
primaryKey,
|
|
23
23
|
comment,
|
|
24
|
+
unique,
|
|
24
25
|
} = this;
|
|
25
26
|
|
|
26
27
|
const chunks = [
|
|
@@ -34,6 +35,10 @@ class MysqlAttribute extends Attribute {
|
|
|
34
35
|
|
|
35
36
|
if (!primaryKey && !allowNull) chunks.push('NOT NULL');
|
|
36
37
|
|
|
38
|
+
if (unique === true) {
|
|
39
|
+
chunks.push('UNIQUE');
|
|
40
|
+
}
|
|
41
|
+
|
|
37
42
|
if (defaultValue != null) {
|
|
38
43
|
chunks.push(`DEFAULT ${escape(defaultValue)}`);
|
|
39
44
|
}
|
|
@@ -15,7 +15,7 @@ class PostgresAttribute extends Attribute {
|
|
|
15
15
|
|
|
16
16
|
toSqlString() {
|
|
17
17
|
const {
|
|
18
|
-
columnName, type, columnType, allowNull, defaultValue, primaryKey,
|
|
18
|
+
columnName, type, columnType, allowNull, defaultValue, primaryKey, unique,
|
|
19
19
|
} = this;
|
|
20
20
|
const chunks = [
|
|
21
21
|
escapeId(columnName),
|
|
@@ -29,6 +29,10 @@ class PostgresAttribute extends Attribute {
|
|
|
29
29
|
|
|
30
30
|
if (!primaryKey && !allowNull) chunks.push('NOT NULL');
|
|
31
31
|
|
|
32
|
+
if (unique === true) {
|
|
33
|
+
chunks.push('UNIQUE');
|
|
34
|
+
}
|
|
35
|
+
|
|
32
36
|
if (defaultValue != null) {
|
|
33
37
|
chunks.push(`DEFAULT ${escape(defaultValue)}`);
|
|
34
38
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const { DataTypes } = require('../../data_types');
|
|
3
|
+
const { default: DataTypes } = require('../../data_types');
|
|
4
4
|
const util = require('util');
|
|
5
5
|
const Raw = require('../../raw');
|
|
6
6
|
|
|
@@ -29,7 +29,7 @@ class Postgres_JSONB extends DataTypes.JSONB {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
class Postgres_BINARY extends DataTypes {
|
|
32
|
+
class Postgres_BINARY extends DataTypes.BINARY {
|
|
33
33
|
constructor() {
|
|
34
34
|
super();
|
|
35
35
|
this.dataType = 'bytea';
|
|
@@ -41,8 +41,8 @@ class Postgres_BINARY extends DataTypes {
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
class Postgres_INTEGER extends DataTypes.INTEGER {
|
|
44
|
-
constructor(dataLength) {
|
|
45
|
-
super(dataLength);
|
|
44
|
+
constructor(dataLength, unsigned, zerofill) {
|
|
45
|
+
super(dataLength, unsigned, zerofill);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
uncast(value) {
|
|
@@ -55,8 +55,8 @@ class Postgres_INTEGER extends DataTypes.INTEGER {
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
class Postgres_BIGINT extends Postgres_INTEGER {
|
|
58
|
-
constructor() {
|
|
59
|
-
super();
|
|
58
|
+
constructor(dataLength, unsigned, zerofill) {
|
|
59
|
+
super(dataLength, unsigned, zerofill);
|
|
60
60
|
this.dataType = 'bigint';
|
|
61
61
|
}
|
|
62
62
|
}
|
|
@@ -127,7 +127,8 @@ class PostgresDriver extends AbstractDriver {
|
|
|
127
127
|
for (const row of rows) {
|
|
128
128
|
const tableName = row.table_name;
|
|
129
129
|
const columns = schemaInfo[tableName] || (schemaInfo[tableName] = []);
|
|
130
|
-
|
|
130
|
+
const { character_maximum_length: length } = row;
|
|
131
|
+
let { data_type: dataType } = row;
|
|
131
132
|
|
|
132
133
|
if (dataType === 'character varying') dataType = 'varchar';
|
|
133
134
|
if (dataType === 'timestamp without time zone') dataType = 'timestamp';
|
|
@@ -14,8 +14,7 @@ class SqliteAttribute extends Attribute {
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
toSqlString() {
|
|
17
|
-
const { allowNull, defaultValue, primaryKey } = this;
|
|
18
|
-
const { columnName, columnType, type } = this;
|
|
17
|
+
const { columnName, columnType, type, allowNull, defaultValue, primaryKey, unique } = this;
|
|
19
18
|
const chunks = [
|
|
20
19
|
escapeId(columnName),
|
|
21
20
|
columnType.toUpperCase() || type.toSqlString(),
|
|
@@ -28,6 +27,10 @@ class SqliteAttribute extends Attribute {
|
|
|
28
27
|
|
|
29
28
|
if (!primaryKey && !allowNull) chunks.push('NOT NULL');
|
|
30
29
|
|
|
30
|
+
if (unique === true) {
|
|
31
|
+
chunks.push('UNIQUE');
|
|
32
|
+
}
|
|
33
|
+
|
|
31
34
|
if (defaultValue != null) {
|
|
32
35
|
chunks.push(`DEFAULT ${escape(defaultValue)}`);
|
|
33
36
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const { DataTypes } = require('../../data_types');
|
|
3
|
+
const { default: DataTypes } = require('../../data_types');
|
|
4
4
|
|
|
5
5
|
class Sqlite_DATE extends DataTypes.DATE {
|
|
6
6
|
constructor(precision, timezone) {
|
|
@@ -34,8 +34,8 @@ class Sqlite_DATEONLY extends DataTypes.DATEONLY {
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
class Sqlite_INTEGER extends DataTypes.INTEGER {
|
|
37
|
-
constructor(dataLength) {
|
|
38
|
-
super(dataLength);
|
|
37
|
+
constructor(dataLength, unsigned, zerofill) {
|
|
38
|
+
super(dataLength, unsigned, zerofill);
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
uncast(value) {
|
|
@@ -44,8 +44,8 @@ class Sqlite_INTEGER extends DataTypes.INTEGER {
|
|
|
44
44
|
|
|
45
45
|
}
|
|
46
46
|
class Sqlite_BIGINT extends DataTypes.BIGINT {
|
|
47
|
-
constructor() {
|
|
48
|
-
super();
|
|
47
|
+
constructor(dataLength, unsigned, zerofill) {
|
|
48
|
+
super(dataLength, unsigned, zerofill);
|
|
49
49
|
this.dataType = 'integer';
|
|
50
50
|
}
|
|
51
51
|
|
|
@@ -53,7 +53,7 @@ class Sqlite_BIGINT extends DataTypes.BIGINT {
|
|
|
53
53
|
return this.dataType.toUpperCase();
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
-
class Sqlite_BINARY extends DataTypes {
|
|
56
|
+
class Sqlite_BINARY extends DataTypes.BINARY {
|
|
57
57
|
constructor(dataLength = 255) {
|
|
58
58
|
super(dataLength);
|
|
59
59
|
this.dataLength = dataLength;
|
package/src/realm.js
CHANGED
|
@@ -83,7 +83,6 @@ async function loadModels(Spine, models, opts) {
|
|
|
83
83
|
const columns = schemaInfo[model.physicTable] || schemaInfo[model.table];
|
|
84
84
|
if (!model.attributes) initAttributes(model, columns);
|
|
85
85
|
model.load(columns);
|
|
86
|
-
Spine.models[model.name] = model;
|
|
87
86
|
}
|
|
88
87
|
|
|
89
88
|
for (const model of models) {
|
|
@@ -158,8 +157,9 @@ class Realm {
|
|
|
158
157
|
models = Object.values(this.models);
|
|
159
158
|
}
|
|
160
159
|
|
|
160
|
+
for (const model of models) this.Bone.models[model.name] = model;
|
|
161
161
|
// models could be connected already if cached
|
|
162
|
-
models = models.filter(model =>
|
|
162
|
+
models = models.filter(model => model.synchronized == null);
|
|
163
163
|
|
|
164
164
|
if (models.length > 0) {
|
|
165
165
|
await loadModels(this.Bone, models, this.options);
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
|
|
2
|
+
export type Literal = null | undefined | boolean | number | bigint | string | Date | object | ArrayBuffer;
|
|
3
|
+
|
|
4
|
+
type BaseValidateArgs = boolean | RegExp | Function | Array<Array<Literal>> | string;
|
|
5
|
+
|
|
6
|
+
export type Validator = BaseValidateArgs | {
|
|
7
|
+
args: BaseValidateArgs,
|
|
8
|
+
msg?: string;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export interface ColumnBase {
|
|
12
|
+
allowNull?: boolean;
|
|
13
|
+
defaultValue?: Literal;
|
|
14
|
+
primaryKey?: boolean;
|
|
15
|
+
comment?: string;
|
|
16
|
+
unique?: boolean;
|
|
17
|
+
columnName?: string;
|
|
18
|
+
columnType?: string;
|
|
19
|
+
autoIncrement?: boolean;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface QueryResult {
|
|
23
|
+
insertId?: number;
|
|
24
|
+
affectedRows?: number;
|
|
25
|
+
rows?: Array<Record<string, Literal>>,
|
|
26
|
+
fields?: Array<{ table: string, name: string }>,
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export interface Connection {
|
|
30
|
+
/**
|
|
31
|
+
* MySQL
|
|
32
|
+
*/
|
|
33
|
+
query(
|
|
34
|
+
query: string,
|
|
35
|
+
values: Array<Literal | Literal[]>,
|
|
36
|
+
): Promise<QueryResult>;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export interface QueryOptions {
|
|
40
|
+
validate?: boolean;
|
|
41
|
+
individualHooks?: boolean;
|
|
42
|
+
hooks?: boolean;
|
|
43
|
+
paranoid?: boolean;
|
|
44
|
+
silent?: boolean;
|
|
45
|
+
connection?: Connection;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface AssociateOptions {
|
|
49
|
+
className?: string;
|
|
50
|
+
foreignKey?: string;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export type command = 'select' | 'insert' | 'bulkInsert' | 'update' | 'delete' | 'upsert';
|
|
54
|
+
|
|
55
|
+
export type ResultSet = {
|
|
56
|
+
[key: string]: Literal
|
|
57
|
+
};
|
|
File without changes
|