leoric 2.6.3 → 2.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data_types.js","sourceRoot":"","sources":["data_types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,602 @@
1
+ 'use strict';
2
+
3
+ const util = require('util');
4
+ const invokableFunc = require('./utils/invokable');
5
+ const Raw = require('./raw');
6
+
7
+ export enum LENGTH_VARIANTS {
8
+ tiny = 'tiny',
9
+ empty = '',
10
+ medium = 'medium',
11
+ long = 'long',
12
+ };
13
+
14
+ export interface AbstractDataType<T> {
15
+ new (dataLength?: LENGTH_VARIANTS | number): DataType & T;
16
+ (dataLength?: LENGTH_VARIANTS | number): DataType & T;
17
+ }
18
+
19
+ /**
20
+ * @example
21
+ * const { STRING, INTEGER, BIGINT, DATE, BOOLEAN } = app.model;
22
+ * class User = app.model.define('User', {
23
+ * login: STRING,
24
+ * });
25
+ */
26
+
27
+ export abstract class DataType {
28
+ dataType: string = '';
29
+ dataLength?: string | number;
30
+
31
+ /**
32
+ * cast raw data returned from data packet into js type
33
+ */
34
+ cast(value: any): any {
35
+ return value;
36
+ }
37
+
38
+ /**
39
+ * uncast js value into database type with precision
40
+ */
41
+ uncast(value: any, _strict?: boolean): any {
42
+ return value;
43
+ }
44
+
45
+ abstract toSqlString(): string;
46
+ }
47
+
48
+ /**
49
+ * @example
50
+ * STRING
51
+ * STRING(127)
52
+ * STRING.BINARY
53
+ * @param {number} dataLength
54
+ */
55
+ class STRING extends DataType {
56
+ constructor(dataLength: number = 255) {
57
+ super();
58
+ this.dataType = 'varchar';
59
+ this.dataLength = dataLength;
60
+ }
61
+
62
+ toSqlString(): string {
63
+ const { dataLength } = this;
64
+ const dataType = this.dataType.toUpperCase();
65
+ const chunks: string[] = [];
66
+ chunks.push(dataLength && dataLength > 0 ? `${dataType}(${dataLength})` : dataType);
67
+ return chunks.join(' ');
68
+ }
69
+
70
+ uncast(value: string | typeof Raw | null): string {
71
+ if (value == null || value instanceof Raw) return value;
72
+ return '' + value;
73
+ }
74
+ }
75
+
76
+ class BINARY extends DataType {
77
+ constructor(dataLength = 255) {
78
+ super();
79
+ this.dataLength = dataLength;
80
+ this.dataType = 'binary';
81
+ }
82
+
83
+ toSqlString(): string {
84
+ const { dataLength } = this;
85
+ const dataType = this.dataType.toUpperCase();
86
+ const chunks: string[] = [];
87
+ chunks.push(dataLength && dataLength > 0 ? `${dataType}(${dataLength})` : dataType);
88
+ return chunks.join(' ');
89
+ }
90
+
91
+ cast(value: string | Buffer): Buffer | string {
92
+ if (value == null) return value;
93
+ if (Buffer.isBuffer(value)) return value;
94
+ return Buffer.from(value);
95
+ }
96
+ }
97
+
98
+ class VARBINARY extends BINARY {
99
+ constructor(dataLength?: number) {
100
+ super(dataLength);
101
+ this.dataType = 'varbinary';
102
+ }
103
+ }
104
+
105
+ /**
106
+ * ZEROFILL is deprecated
107
+ * - https://dev.mysql.com/doc/refman/8.0/en/integer-types.html
108
+ * @example
109
+ * INTEGER
110
+ * INTEGER.UNSIGNED
111
+ * INTEGER.UNSIGNED.ZEROFILL
112
+ * INTEGER(10)
113
+ * @param {number} dataLength
114
+ */
115
+ class INTEGER extends DataType {
116
+ unsigned?: boolean;
117
+ zerofill?: boolean;
118
+
119
+ constructor(dataLength?: number, unsigned?: boolean, zerofill?: boolean) {
120
+ super();
121
+ this.dataLength = dataLength;
122
+ this.dataType = 'integer';
123
+ this.unsigned = unsigned;
124
+ this.zerofill = zerofill;
125
+ }
126
+
127
+ get UNSIGNED() {
128
+ this.unsigned = true;
129
+ return this;
130
+ }
131
+
132
+ get ZEROFILL() {
133
+ this.zerofill = true;
134
+ return this;
135
+ }
136
+
137
+ toSqlString(): string {
138
+ const { dataLength, unsigned, zerofill } = this;
139
+ const dataType = this.dataType.toUpperCase();
140
+ const chunks: string[] = [];
141
+ chunks.push(dataLength && dataLength > 0 ? `${dataType}(${dataLength})` : dataType);
142
+ if (unsigned) chunks.push('UNSIGNED');
143
+ if (zerofill) chunks.push('ZEROFILL');
144
+ return chunks.join(' ');
145
+ }
146
+
147
+ cast(value: number): number {
148
+ if (value == null || isNaN(value)) return value;
149
+ return Number(value);
150
+ }
151
+
152
+ uncast(value: any, strict = true): string | number {
153
+ const originValue = value;
154
+ if (value == null || value instanceof Raw) return value;
155
+ if (typeof value === 'string') value = parseInt(value, 10);
156
+ if (isNaN(value)) {
157
+ if (strict) throw new Error(util.format('invalid integer: %s', originValue));
158
+ return originValue;
159
+ }
160
+ return value;
161
+ }
162
+ }
163
+
164
+ /**
165
+ * 8 bit integer
166
+ * @example
167
+ * TINYINT
168
+ * TINYINT.UNSIGNED
169
+ * TINYINT(1)
170
+ * @param {number} dataLength
171
+ */
172
+ class TINYINT extends INTEGER {
173
+ constructor(dataLength?: number, unsigned?: boolean, zerofill?: boolean) {
174
+ super(dataLength, unsigned, zerofill);
175
+ this.dataType = 'tinyint';
176
+ }
177
+ }
178
+
179
+ /**
180
+ * 16 bit integer
181
+ * @example
182
+ * SMALLINT
183
+ * SMALLINT.UNSIGNED
184
+ * SMALLINT(2)
185
+ * @param {number} dataLength
186
+ */
187
+ class SMALLINT extends INTEGER {
188
+ constructor(dataLength?: number, unsigned?: boolean, zerofill?: boolean) {
189
+ super(dataLength, unsigned, zerofill);
190
+ this.dataType = 'smallint';
191
+ }
192
+ }
193
+
194
+ /**
195
+ * 24 bit integer
196
+ * @example
197
+ * MEDIUMINT
198
+ * MEDIUMINT.UNSIGNED
199
+ * MEDIUMINT(3)
200
+ * @param {number} dataLength
201
+ */
202
+ class MEDIUMINT extends INTEGER {
203
+ constructor(dataLength?: number, unsigned?: boolean, zerofill?: boolean) {
204
+ super(dataLength, unsigned, zerofill);
205
+ this.dataType = 'mediumint';
206
+ }
207
+ }
208
+
209
+
210
+ /**
211
+ * 64 bit integer
212
+ * @example
213
+ * BIGINT
214
+ * BIGINT.UNSIGNED
215
+ * BIGINT(8)
216
+ * @param {number} dataLength
217
+ */
218
+ class BIGINT extends INTEGER {
219
+ constructor(dataLength?: number, unsigned?: boolean, zerofill?: boolean) {
220
+ super(dataLength, unsigned, zerofill);
221
+ this.dataType = 'bigint';
222
+ }
223
+ }
224
+
225
+ /**
226
+ * fixed-point decimal types
227
+ * @example
228
+ * DECIMAL
229
+ * DECIMAL.UNSIGNED
230
+ * DECIMAL(5, 2)
231
+ * @param {number} precision
232
+ * @param {number} scale
233
+ * - https://dev.mysql.com/doc/refman/8.0/en/fixed-point-types.html
234
+ */
235
+ class DECIMAL extends INTEGER {
236
+ precision?: number;
237
+ scale?: number;
238
+
239
+ constructor(precision?: number, scale?: number) {
240
+ super();
241
+ this.dataType = 'decimal';
242
+ this.precision = precision;
243
+ this.scale = scale;
244
+ }
245
+
246
+ toSqlString() {
247
+ const { precision, scale, unsigned, zerofill } = this;
248
+ const dataType = this.dataType.toUpperCase();
249
+ const chunks: string[] = [];
250
+ if (precision && precision > 0 && scale != null && scale >= 0) {
251
+ chunks.push(`${dataType}(${precision},${scale})`);
252
+ } else if (precision && precision > 0) {
253
+ chunks.push(`${dataType}(${precision})`);
254
+ } else {
255
+ chunks.push(dataType);
256
+ }
257
+ if (unsigned) chunks.push('UNSIGNED');
258
+ if (zerofill) chunks.push('ZEROFILL');
259
+ return chunks.join(' ');
260
+ }
261
+ }
262
+
263
+ const rDateFormat = /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:[,.]\d{3,6}){0,1}$/;
264
+ class DATE extends DataType {
265
+ precision?: number | null;
266
+ timezone?: boolean = true;
267
+
268
+ constructor(precision?: number | null, timezone: boolean = true) {
269
+ super();
270
+ this.dataType = 'datetime';
271
+ this.precision = precision;
272
+ // PostgreSQL enables timestamp with or without time zone
273
+ // - https://www.postgresql.org/docs/9.5/datatype-datetime.html
274
+ this.timezone = timezone;
275
+ }
276
+
277
+ toSqlString() {
278
+ const { precision } = this;
279
+ const dataType = this.dataType.toUpperCase();
280
+ if (precision != null && precision >= 0) return `${dataType}(${precision})`;
281
+ return dataType;
282
+ }
283
+
284
+ _round(value) {
285
+ const { precision } = this;
286
+ if (precision != null && precision < 3 && value instanceof Date) {
287
+ const divider = 10 ** (3 - precision);
288
+ return new Date(Math.round(value.getTime() / divider) * divider);
289
+ }
290
+ return value;
291
+ }
292
+
293
+ cast(value: Date | string | number): Date | number | string {
294
+ const original = value;
295
+ if (value == null) return value;
296
+ if (!(value instanceof Date)) value = new Date(value);
297
+ if (isNaN(value.getTime())) return original;
298
+ return this._round(value);
299
+ }
300
+
301
+ uncast(value: null | typeof Raw | string | Date, _strict?: boolean): string | Date {
302
+ const originValue = value;
303
+
304
+ if (value == null || value instanceof Raw) return value;
305
+ if (typeof value.toDate === 'function') {
306
+ value = value.toDate();
307
+ }
308
+
309
+ // @deprecated
310
+ // vaguely standard date formats such as 2021-10-15 15:50:02,548
311
+ if (typeof value === 'string' && rDateFormat.test(value)) {
312
+ // 2021-10-15 15:50:02,548 => 2021-10-15T15:50:02,548,
313
+ // 2021-10-15 15:50:02 => 2021-10-15T15:50:02.000
314
+ value = new Date(`${value.replace(' ', 'T').replace(',', '.')}`);
315
+ }
316
+
317
+ // 1634611135776
318
+ // '2021-10-15T08:38:43.877Z'
319
+ if (!(value instanceof Date)) value = new Date(value);
320
+ if (isNaN(value)) throw new Error(util.format('invalid date: %s', originValue));
321
+
322
+ return this._round(value);
323
+ }
324
+ }
325
+
326
+ class DATEONLY extends DATE {
327
+ constructor() {
328
+ super();
329
+ this.dataType = 'date';
330
+ this.precision = null;
331
+ this.timezone = false;
332
+ }
333
+
334
+ toSqlString(): string {
335
+ return this.dataType.toUpperCase();
336
+ }
337
+
338
+ _round(value) {
339
+ if (value instanceof Date) {
340
+ return new Date(value.getFullYear(), value.getMonth(), value.getDate());
341
+ }
342
+ return value;
343
+ }
344
+ }
345
+
346
+ class BOOLEAN extends DataType {
347
+ constructor() {
348
+ super();
349
+ this.dataType = 'boolean';
350
+ }
351
+
352
+ toSqlString(): string {
353
+ return this.dataType.toUpperCase();
354
+ }
355
+
356
+ cast(value) {
357
+ if (value == null) return value;
358
+ return Boolean(value);
359
+ }
360
+ }
361
+
362
+ class TEXT extends DataType {
363
+ constructor(length: LENGTH_VARIANTS = LENGTH_VARIANTS.empty) {
364
+ if (!Object.values(LENGTH_VARIANTS).includes(length)) {
365
+ throw new Error(`invalid text length: ${length}`);
366
+ }
367
+ super();
368
+ this.dataType = 'text';
369
+ this.dataLength = length;
370
+ }
371
+
372
+ toSqlString(): string {
373
+ return [ this.dataLength, this.dataType ].join('').toUpperCase();
374
+ }
375
+ }
376
+
377
+ class BLOB extends DataType {
378
+ constructor(length: LENGTH_VARIANTS = LENGTH_VARIANTS.empty) {
379
+ if (!Object.values(LENGTH_VARIANTS).includes(length)) {
380
+ throw new Error(`invalid blob length: ${length}`);
381
+ }
382
+ super();
383
+ this.dataType = 'blob';
384
+ this.dataLength = length;
385
+ }
386
+
387
+ toSqlString(): string {
388
+ return [ this.dataLength, this.dataType ].join('').toUpperCase();
389
+ }
390
+
391
+ cast(value) {
392
+ if (value == null) return value;
393
+ if (Buffer.isBuffer(value)) return value;
394
+ return Buffer.from(value);
395
+ }
396
+ }
397
+
398
+ // JSON text type
399
+ class MYJSON extends DataType {
400
+ constructor() {
401
+ super();
402
+ this.dataType = 'text';
403
+ }
404
+
405
+ toSqlString() {
406
+ return 'TEXT';
407
+ }
408
+
409
+ static toSqlString() {
410
+ return 'TEXT';
411
+ }
412
+
413
+ cast(value) {
414
+ if (!value) return value;
415
+ // type === JSONB
416
+ if (typeof value === 'object') return value;
417
+ try {
418
+ return global.JSON.parse(value);
419
+ } catch (err) {
420
+ console.error(new Error(`unable to cast ${value} to JSON`));
421
+ return value;
422
+ }
423
+ }
424
+
425
+ uncast(value) {
426
+ if (value == null || value instanceof Raw) return value;
427
+ return global.JSON.stringify(value);
428
+ }
429
+ }
430
+
431
+ // JSON binary type, available in postgreSQL or mySQL 5.7 +
432
+ // - https://dev.mysql.com/doc/refman/8.0/en/json.html
433
+ // - https://www.postgresql.org/docs/9.4/datatype-json.html
434
+ class JSONB extends MYJSON {
435
+ constructor() {
436
+ super();
437
+ this.dataType = 'json';
438
+ }
439
+
440
+ toSqlString(): string {
441
+ return 'JSON';
442
+ }
443
+
444
+ static toSqlString(): string {
445
+ return 'JSON';
446
+ }
447
+ }
448
+
449
+ class VIRTUAL extends DataType {
450
+ virtual: boolean = true;
451
+ constructor() {
452
+ super();
453
+ this.dataType = 'virtual';
454
+ this.virtual = true;
455
+ }
456
+
457
+ toSqlString(): string {
458
+ return 'VIRTUAL';
459
+ }
460
+
461
+ static toSqlString(): string {
462
+ return 'VIRTUAL';
463
+ }
464
+
465
+ }
466
+
467
+ const AllDataTypes = {
468
+ STRING,
469
+ TINYINT,
470
+ SMALLINT,
471
+ MEDIUMINT,
472
+ INTEGER,
473
+ BIGINT,
474
+ DECIMAL,
475
+ DATE,
476
+ DATEONLY,
477
+ BOOLEAN,
478
+ TEXT,
479
+ BLOB,
480
+ JSON: MYJSON,
481
+ JSONB,
482
+ BINARY,
483
+ VARBINARY,
484
+ VIRTUAL,
485
+ };
486
+
487
+ export type DATA_TYPE<T> = AbstractDataType<T> & T;
488
+
489
+ class DataTypes {
490
+ static STRING: DATA_TYPE<STRING> = STRING as any;
491
+ static TINYINT: DATA_TYPE<TINYINT> = TINYINT as any;
492
+ static SMALLINT: DATA_TYPE<SMALLINT> = SMALLINT as any;
493
+ static MEDIUMINT: DATA_TYPE<MEDIUMINT> = MEDIUMINT as any;
494
+ static INTEGER: DATA_TYPE<INTEGER> = INTEGER as any;
495
+ static BIGINT: DATA_TYPE<BIGINT> = BIGINT as any;
496
+ static DECIMAL: DATA_TYPE<DECIMAL> = DECIMAL as any;
497
+ static DATE: DATA_TYPE<DATE> = DATE as any;
498
+ static TEXT: DATA_TYPE<TEXT> = TEXT as any;
499
+ static BLOB: DATA_TYPE<BLOB> = BLOB as any;
500
+ static JSON: DATA_TYPE<MYJSON> = MYJSON as any;
501
+ static JSONB: DATA_TYPE<JSONB> = JSONB as any;
502
+ static BINARY: DATA_TYPE<BINARY> = BINARY as any;
503
+ static VARBINARY: DATA_TYPE<VARBINARY> = VARBINARY as any;
504
+ static VIRTUAL: DATA_TYPE<VIRTUAL> = VIRTUAL as any;
505
+ static DATEONLY: DATA_TYPE<DATEONLY> = DATEONLY as any;
506
+ static BOOLEAN: DATA_TYPE<BOOLEAN> = BOOLEAN as any;
507
+
508
+ static findType(columnType: string): DataTypes {
509
+ const {
510
+ STRING, TEXT, DATE, DATEONLY,
511
+ TINYINT, SMALLINT, MEDIUMINT, INTEGER,
512
+ BIGINT, DECIMAL, BOOLEAN,
513
+ BINARY, VARBINARY, BLOB,
514
+ } = this;
515
+
516
+ const res = columnType?.match(/(\w+)(?:\((\d+)(?:,(\d+))?\))?/);
517
+ if(!res) {
518
+ throw new Error(`Unknown columnType ${columnType}`);
519
+ }
520
+ const [ , dataType, ...matches ] = res;
521
+ const params: any[] = [];
522
+ for (let i = 0; i < matches.length; i++) {
523
+ if (matches[i] != null) params[i] = parseInt(matches[i], 10);
524
+ }
525
+
526
+ switch (dataType) {
527
+ case 'varchar':
528
+ case 'char':
529
+ return new STRING(...params);
530
+ // longtext is only for MySQL
531
+ case 'longtext':
532
+ return new TEXT(LENGTH_VARIANTS.long);
533
+ case 'mediumtext':
534
+ return new TEXT(LENGTH_VARIANTS.medium);
535
+ case 'text':
536
+ return new TEXT();
537
+ case 'date':
538
+ return new DATEONLY();
539
+ case 'datetime':
540
+ case 'timestamp':
541
+ // new DATE(precision)
542
+ return new DATE(...params);
543
+ case 'decimal':
544
+ return new DECIMAL(...params);
545
+ case 'int':
546
+ case 'integer':
547
+ case 'numeric':
548
+ return new INTEGER(...params);
549
+ case 'mediumint':
550
+ return new MEDIUMINT(...params);
551
+ case 'smallint':
552
+ return new SMALLINT(...params);
553
+ case 'tinyint':
554
+ return new TINYINT(...params);
555
+ case 'bigint':
556
+ return new BIGINT(...params);
557
+ case 'boolean':
558
+ return new BOOLEAN();
559
+ // mysql only
560
+ case 'binary':
561
+ // postgres only
562
+ case 'bytea':
563
+ return new BINARY(...params);
564
+ // mysql only
565
+ case 'varbinary':
566
+ return new VARBINARY(...params);
567
+ case 'longblob':
568
+ return new BLOB(LENGTH_VARIANTS.long);
569
+ case 'mediumblob':
570
+ return new BLOB(LENGTH_VARIANTS.medium);
571
+ case 'blob':
572
+ return new BLOB();
573
+ case 'tinyblob':
574
+ return new BLOB(LENGTH_VARIANTS.tiny);
575
+ default:
576
+ throw new Error(`Unexpected data type ${dataType}`);
577
+ }
578
+ }
579
+
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;
597
+ }
598
+ }
599
+
600
+ export const invokable = DataTypes.invokable;
601
+
602
+ export default DataTypes;
package/src/decorators.js CHANGED
@@ -1,12 +1,32 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
4
24
  };
5
25
  Object.defineProperty(exports, "__esModule", { value: true });
6
26
  exports.BelongsTo = exports.HasOne = exports.HasMany = exports.Column = void 0;
7
- const data_types_1 = __importDefault(require("./data_types"));
8
- const constants_1 = require("./constants");
9
27
  require("reflect-metadata");
28
+ const data_types_1 = __importStar(require("./data_types"));
29
+ const constants_1 = require("./constants");
10
30
  function findType(tsType) {
11
31
  const { BIGINT, INTEGER, DATE, STRING, BOOLEAN, } = data_types_1.default;
12
32
  switch (tsType) {
@@ -24,9 +44,13 @@ function findType(tsType) {
24
44
  throw new Error(`unknown typescript type ${tsType}`);
25
45
  }
26
46
  }
27
- function Column(options = {}) {
47
+ function Column(options) {
28
48
  return function (target, propertyKey) {
29
- if (options['prototype'] instanceof data_types_1.default)
49
+ if (options == null) {
50
+ options = {};
51
+ }
52
+ // target refers to model prototype, an internal instance of `Bone {}`
53
+ if (options['prototype'] instanceof data_types_1.DataType)
30
54
  options = { type: options };
31
55
  if (!('type' in options)) {
32
56
  const tsType = Reflect.getMetadata('design:type', target, propertyKey);
@@ -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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"}