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 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 '../src/data_types';
2
- import { Hint, IndexHint } from './hint';
3
-
4
- export { DataTypes };
5
- export { LENGTH_VARIANTS as LENGTH_VARIANTS };
6
- export * from '../src/decorators';
7
-
8
- export type command = 'select' | 'insert' | 'bulkInsert' | 'update' | 'delete' | 'upsert';
9
- export type Literal = null | undefined | boolean | number | bigint | string | Date | object | ArrayBuffer;
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]: validator;
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?: RelateOptions): void;
548
- static hasMany(name: string, opts?: RelateOptions): void;
549
- static belongsTo(name: string, opts?: RelateOptions): void;
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
- export {
927
- Hint,
928
- IndexHint,
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.0",
3
+ "version": "2.7.3",
4
4
  "description": "JavaScript Object-relational mapping alchemy",
5
5
  "main": "index.js",
6
- "types": "types/index.d.ts",
6
+ "types": "index.d.ts",
7
7
  "files": [
8
- "index.js",
9
8
  "src",
10
- "types"
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.DataTypes = exports.DataType = exports.LENGTH_VARIANTS = void 0;
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
- * Check if params is instance of DataType or not
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 extends DataType {
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
- toSqlString() {
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;
@@ -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> = AbstractDataType<T> & T;
487
+ export type DATA_TYPE<T> = AbstractDataType<T> & T;
509
488
 
510
- export class DataTypes extends DataType {
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
- toSqlString(): string {
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) {
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["decorators.ts"],"names":[],"mappings":"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"}
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
- type Literal = null | undefined | boolean | number | bigint | string | Date | object | ArrayBuffer;
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?: AbstractDataType<DataType>;
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]: boolean | RegExp | Function | Array<Array<Literal>> | 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 | AbstractDataType<DataType>) {
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 AbstractDataType<DataType> };
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
  }
@@ -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 Mysql_BOOLEAN extends DataTypes.BOOLEAN {
6
6
  constructor() {
@@ -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
- let { data_type: dataType, character_maximum_length: length } = row;
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 => !model.synchronized);
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