leoric 2.8.3 → 2.8.5

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,22 @@
1
+ 2.8.5 / 2022-09-21
2
+ ==================
3
+
4
+ ## What's Changed
5
+ * fix: deletedAt should always be checked when associating models by @cyjake in https://github.com/cyjake/leoric/pull/347
6
+ * fix: generic type for getDataValue by @vagusX in https://github.com/cyjake/leoric/pull/346
7
+
8
+
9
+ **Full Changelog**: https://github.com/cyjake/leoric/compare/v2.8.4...v2.8.5
10
+
11
+ 2.8.4 / 2022-09-20
12
+ ==================
13
+
14
+ ## What's Changed
15
+ * fix: Literal type should not contain `object` & ResultSet should be derived from instance values by @cyjake in https://github.com/cyjake/leoric/pull/345
16
+
17
+
18
+ **Full Changelog**: https://github.com/cyjake/leoric/compare/v2.8.3...v2.8.4
19
+
1
20
  2.8.3 / 2022-09-15
2
21
  ==================
3
22
 
package/index.d.ts CHANGED
@@ -76,8 +76,8 @@ export default class Realm {
76
76
 
77
77
  query<T extends typeof Bone>(sql: string, values?: Array<Literal>, options?: RawQueryOptions & { model?: T }): Promise<{ rows: T extends typeof Bone ? InstanceType<T>[] : Object[], fields?: Object[], affectedRows?: number }>;
78
78
 
79
- transaction<T extends (connection: Connection) => Generator>(callback: T): Promise<GeneratorReturnType<ReturnType<T>>>;
80
- transaction<T extends (connection: Connection) => Promise<any>>(callback: T): Promise<ReturnType<T>>;
79
+ transaction<T extends (options: { connection: Connection }) => Generator>(callback: T): Promise<GeneratorReturnType<ReturnType<T>>>;
80
+ transaction<T extends (options: { connection: Connection }) => Promise<any>>(callback: T): Promise<ReturnType<T>>;
81
81
 
82
82
  sync(options?: SyncOptions): Promise<void>;
83
83
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "leoric",
3
- "version": "2.8.3",
3
+ "version": "2.8.5",
4
4
  "description": "JavaScript Object-relational mapping alchemy",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -1,5 +1,5 @@
1
- import {
2
- Attributes, Literal, OperatorCondition,
1
+ import {
2
+ Attributes, Literal, OperatorCondition,
3
3
  BoneOptions, ResultSet, Raw,
4
4
  SetOptions, BeforeHooksType, AfterHooksType,
5
5
  QueryOptions, OrderOptions, QueryResult
@@ -128,8 +128,8 @@ export class SequelizeBone extends AbstractBone {
128
128
  */
129
129
  static bulkBuild<T extends typeof SequelizeBone>(this:T, valueSets: Array<Values<T>>, options?: BoneOptions): Array<InstanceType<T>>;
130
130
 
131
- static count<T extends typeof SequelizeBone>(this: T, name?: string): Spell<T, ResultSet | number>;
132
- static count<T extends typeof SequelizeBone>(this: T, conditions?: SequelizeConditions<T>): Spell<T, ResultSet | number>;
131
+ static count<T extends typeof SequelizeBone>(this: T, name?: string): Spell<T, ResultSet<T> | number>;
132
+ static count<T extends typeof SequelizeBone>(this: T, conditions?: SequelizeConditions<T>): Spell<T, ResultSet<T> | number>;
133
133
 
134
134
  static decrement<T extends typeof SequelizeBone>(
135
135
  this: T,
@@ -181,8 +181,9 @@ export class SequelizeBone extends AbstractBone {
181
181
  where(): { [key: string]: number | bigint | string };
182
182
  set(key: string, value: Literal | Literal[]): void;
183
183
  get(key?: string): Literal | { [key: string]: Literal };
184
- setDataValue(key: string, value: Literal | Literal[]): void;
185
- getDataValue(key?: string): Literal | { [key: string]: Literal };
184
+ setDataValue<T, Key extends keyof T>(this: T, key: Key, value: T[Key]): void;
185
+ getDataValue<T>(this: T): T;
186
+ getDataValue<T, Key extends keyof T>(this: T, key: Key): T[Key];
186
187
  previous(key?: string): Literal | Literal[] | { [key: string]: Literal | Literal[] };
187
188
  isSoftDeleted(): boolean;
188
189
 
package/src/bone.d.ts CHANGED
@@ -26,7 +26,7 @@ export default class Bone extends AbstractBone {
26
26
  static findOne<T extends typeof Bone>(this: T, primaryKey: number | number[] | bigint): Spell<T, InstanceType<T> | null>;
27
27
  static findOne<T extends typeof Bone>(this: T, ): Spell<T, InstanceType<T> | null>;
28
28
 
29
- static sum<T extends typeof Bone>(this: T, name?: string): Spell<T, ResultSet | number>;
29
+ static sum<T extends typeof Bone>(this: T, name?: string): Spell<T, ResultSet<T> | number>;
30
30
 
31
31
  /**
32
32
  * restore rows
package/src/bone.js CHANGED
@@ -6,6 +6,7 @@
6
6
  */
7
7
  const util = require('util');
8
8
  const deepEqual = require('deep-equal');
9
+ const debug = require('debug')('leoric');
9
10
  const pluralize = require('pluralize');
10
11
  const { executeValidator, LeoricValidateError } = require('./validator');
11
12
  require('reflect-metadata');
@@ -1015,6 +1016,9 @@ class Bone {
1015
1016
  if (columnInfo && attribute.type instanceof DataTypes.DATE && attribute.type.precision == null) {
1016
1017
  attribute.type.precision = columnInfo.datetimePrecision;
1017
1018
  }
1019
+ // if (columnInfo && columnInfo.defaultValue != null && attribute.defaultValue === undefined) {
1020
+ // attribute.defaultValue = columnInfo.defaultValue;
1021
+ // }
1018
1022
  }
1019
1023
 
1020
1024
  const primaryKey = Object.keys(attributes).find(key => attributes[key].primaryKey);
@@ -1040,6 +1044,10 @@ class Bone {
1040
1044
  synchronized: Object.keys(compare(attributes, columnMap)).length === 0,
1041
1045
  }));
1042
1046
 
1047
+ if (!this.synchronized) {
1048
+ debug('[load] %s not fully synchronized with %s', this.name, this.table);
1049
+ }
1050
+
1043
1051
  for (const hookName of hookNames) {
1044
1052
  if (this[hookName]) setupSingleHook(this, hookName, this[hookName]);
1045
1053
  }
@@ -1258,10 +1266,8 @@ class Bone {
1258
1266
  throw new Error(`unable to use virtual attribute ${opts.foreignKey} as foreign key in model ${Model.name}`);
1259
1267
  }
1260
1268
 
1261
- const { deletedAt } = this.timestamps;
1262
- if (Model.attributes[deletedAt] && !opts.where) {
1263
- opts.where = { [deletedAt]: null };
1264
- }
1269
+ const { deletedAt } = Model.timestamps;
1270
+ if (Model.attributes[deletedAt]) opts.where = { [deletedAt]: null, ...opts.where };
1265
1271
  this.associations[name] = { ...opts, Model };
1266
1272
  }
1267
1273
 
package/src/data_types.js CHANGED
@@ -128,9 +128,10 @@ class INTEGER extends DataType {
128
128
  return chunks.join(' ');
129
129
  }
130
130
  cast(value) {
131
- if (value == null || isNaN(value))
131
+ const result = Number(value);
132
+ if (value == null || Number.isNaN(result))
132
133
  return value;
133
- return Number(value);
134
+ return result;
134
135
  }
135
136
  uncast(value, strict = true) {
136
137
  const originValue = value;
@@ -138,7 +139,7 @@ class INTEGER extends DataType {
138
139
  return value;
139
140
  if (typeof value === 'string')
140
141
  value = parseInt(value, 10);
141
- if (isNaN(value)) {
142
+ if (Number.isNaN(value)) {
142
143
  if (strict)
143
144
  throw new Error(util.format('invalid integer: %s', originValue));
144
145
  return originValue;
@@ -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
@@ -145,15 +145,16 @@ class INTEGER extends DataType {
145
145
  }
146
146
 
147
147
  cast(value: number): number {
148
- if (value == null || isNaN(value)) return value;
149
- return Number(value);
148
+ const result = Number(value);
149
+ if (value == null || Number.isNaN(result)) return value;
150
+ return result;
150
151
  }
151
152
 
152
153
  uncast(value: any, strict = true): string | number {
153
154
  const originValue = value;
154
155
  if (value == null || value instanceof Raw) return value;
155
156
  if (typeof value === 'string') value = parseInt(value, 10);
156
- if (isNaN(value)) {
157
+ if (Number.isNaN(value)) {
157
158
  if (strict) throw new Error(util.format('invalid integer: %s', originValue));
158
159
  return originValue;
159
160
  }
@@ -131,7 +131,7 @@ class Attribute {
131
131
 
132
132
  equals(columnInfo) {
133
133
  if (!columnInfo) return false;
134
- const props = [ 'allowNull', 'dataType', 'primaryKey' ];
134
+ const props = [ 'allowNull', 'dataType', 'defaultValue', 'primaryKey' ];
135
135
  for (const prop of props) {
136
136
  // SQLite has default value as string even if data type is integer
137
137
  if (this[prop] != columnInfo[prop]) {
@@ -69,7 +69,7 @@ export class AbstractDriver {
69
69
  * query with spell
70
70
  * @param spell
71
71
  */
72
- cast(spell: Spell<typeof AbstractBone, ResultSet | number | null>): Promise<QueryResult>;
72
+ cast<T extends typeof AbstractBone>(spell: Spell<T, ResultSet<T> | number | null>): Promise<QueryResult>;
73
73
 
74
74
  /**
75
75
  * format spell
@@ -53,6 +53,7 @@ class Sqlite_BIGINT extends DataTypes.BIGINT {
53
53
  return this.dataType.toUpperCase();
54
54
  }
55
55
  }
56
+
56
57
  class Sqlite_BINARY extends DataTypes.BINARY {
57
58
  constructor(dataLength = 255) {
58
59
  super(dataLength);
package/src/spell.d.ts CHANGED
@@ -89,7 +89,7 @@ export class Spellbook {
89
89
  formatUpsert(spell: SpellMeta): SpellBookFormatResult<SpellBookFormatStandardResult>;
90
90
  }
91
91
 
92
- export class Spell<T extends typeof AbstractBone, U = InstanceType<T> | Collection<InstanceType<T>> | ResultSet | number | null> extends Promise<U> {
92
+ export class Spell<T extends typeof AbstractBone, U = InstanceType<T> | Collection<InstanceType<T>> | ResultSet<T> | number | null> extends Promise<U> {
93
93
  constructor(Model: T, opts: SpellOptions);
94
94
 
95
95
  command: string;
@@ -117,25 +117,28 @@ export class Spell<T extends typeof AbstractBone, U = InstanceType<T> | Collecti
117
117
  orWhere(conditions: WhereConditions<T>): Spell<T, U>;
118
118
  orWhere(conditions: string, ...values: Literal[]): Spell<T, U>;
119
119
 
120
- group(...names: Array<string | Raw>): Spell<T, ResultSet>;
120
+ group(...names: Array<string | Raw>): Spell<T, ResultSet<T>>;
121
121
 
122
- having(conditions: string, ...values: Literal[]): Spell<T, ResultSet>;
123
- having(conditions: WhereConditions<T>): Spell<T, ResultSet>;
122
+ having(conditions: string, ...values: Literal[]): Spell<T, ResultSet<T>>;
123
+ having(conditions: WhereConditions<T>): Spell<T, ResultSet<T>>;
124
124
 
125
- orHaving(conditions: string, ...values: Literal[]): Spell<T, ResultSet>;
126
- orHaving(conditions: WhereConditions<T>): Spell<T, ResultSet>;
125
+ orHaving(conditions: string, ...values: Literal[]): Spell<T, ResultSet<T>>;
126
+ orHaving(conditions: WhereConditions<T>): Spell<T, ResultSet<T>>;
127
127
 
128
128
  order(name: string, order?: 'desc' | 'asc'): Spell<T, U>;
129
129
  order(opts: OrderOptions<T>): Spell<T, U>;
130
130
 
131
+ $offset(skip: number): Spell<T, U>;
131
132
  offset(skip: number): Spell<T, U>;
132
- limit(skip: number): Spell<T, U>;
133
-
134
- count(name?: string): Spell<T, Extract<U, ResultSet | number>>;
135
- average(name?: string): Spell<T, Extract<U, ResultSet | number>>;
136
- minimum(name?: string): Spell<T, Extract<U, ResultSet | number>>;
137
- maximum(name?: string): Spell<T, Extract<U, ResultSet | number>>;
138
- sum(name?: string): Spell<T, Extract<U, ResultSet | number>>;
133
+
134
+ $limit(rowCount: number): Spell<T, U>;
135
+ limit(rowCount: number): Spell<T, U>;
136
+
137
+ count(name?: string): Spell<T, Extract<U, ResultSet<T> | number>>;
138
+ average(name?: string): Spell<T, Extract<U, ResultSet<T> | number>>;
139
+ minimum(name?: string): Spell<T, Extract<U, ResultSet<T> | number>>;
140
+ maximum(name?: string): Spell<T, Extract<U, ResultSet<T> | number>>;
141
+ sum(name?: string): Spell<T, Extract<U, ResultSet<T> | number>>;
139
142
 
140
143
  batch(size?: number): AsyncIterable<T>;
141
144
 
package/src/spell.js CHANGED
@@ -165,7 +165,11 @@ function joinOnConditions(spell, BaseModel, baseName, refName, { where, associat
165
165
  };
166
166
  if (!where) where = association.where;
167
167
  if (where) {
168
- const whereConditions = walkExpr(parseConditions(BaseModel, where)[0], node => {
168
+ const whereConditions = parseConditions(BaseModel, where).reduce((result, condition) => {
169
+ if (!result) return condition;
170
+ return { type: 'op', name: 'and', args: [ result, condition ] };
171
+ });
172
+ walkExpr(whereConditions, node => {
169
173
  if (node.type == 'id') node.qualifiers = [refName];
170
174
  });
171
175
  return { type: 'op', name: 'and', args: [ onConditions, whereConditions ] };
@@ -848,7 +852,7 @@ class Spell {
848
852
  if (hint instanceof IndexHint && hint.type !== INDEX_HINT_TYPE.use) {
849
853
  console.warn('Do not recommend set non-use index hint in useIndex');
850
854
  }
851
- return IndexHint.build(hint, INDEX_HINT_TYPE.use)
855
+ return IndexHint.build(hint, INDEX_HINT_TYPE.use);
852
856
  }));
853
857
  return this;
854
858
  }
@@ -886,7 +890,7 @@ class Spell {
886
890
  if (hint instanceof IndexHint && hint.type !== INDEX_HINT_TYPE.ignore) {
887
891
  console.warn('Do not recommend set non-ignore index hint in ignoreIndex');
888
892
  }
889
- return IndexHint.build(hint, INDEX_HINT_TYPE.ignore)
893
+ return IndexHint.build(hint, INDEX_HINT_TYPE.ignore);
890
894
  }));
891
895
  return this;
892
896
  }
@@ -1,7 +1,7 @@
1
1
  import DataTypes, { AbstractDataType, DataType } from "../data_types";
2
2
  import {
3
3
  Pool, Literal, WhereConditions,
4
- Collection, ResultSet, InstanceValues, OrderOptions,
4
+ Collection, ResultSet, OrderOptions,
5
5
  QueryOptions, AttributeMeta, AssociateOptions, Values, Connection, BulkCreateOptions,
6
6
  GeneratorReturnType,
7
7
  } from './common';
@@ -104,7 +104,7 @@ export class AbstractBone {
104
104
  * @example
105
105
  * Bone.create({ foo: 1, bar: 'baz' })
106
106
  */
107
- static create<T extends typeof AbstractBone>(this: T, values: Values<T>, options?: QueryOptions): Promise<InstanceType<T>>;
107
+ static create<T extends typeof AbstractBone>(this: T, values: Values<InstanceType<T>> & Record<string, any>, options?: QueryOptions): Promise<InstanceType<T>>;
108
108
 
109
109
  /**
110
110
  * INSERT or UPDATE rows
@@ -185,7 +185,7 @@ export class AbstractBone {
185
185
  * Bone.group('foo')
186
186
  * Bone.group('MONTH(createdAt)')
187
187
  */
188
- static group<T extends typeof AbstractBone>(this: T, ...names: string[]): Spell<T, ResultSet>;
188
+ static group<T extends typeof AbstractBone>(this: T, ...names: string[]): Spell<T, ResultSet<T>>;
189
189
 
190
190
  /**
191
191
  * Set ORDER fields
@@ -197,10 +197,10 @@ export class AbstractBone {
197
197
  static order<T extends typeof AbstractBone>(this: T, name: string, order?: 'desc' | 'asc'): Spell<T>;
198
198
  static order<T extends typeof AbstractBone>(this: T, opts: OrderOptions<T>): Spell<T>;
199
199
 
200
- static count<T extends typeof AbstractBone>(this: T, name?: string): Spell<T, ResultSet | number>;
201
- static average<T extends typeof AbstractBone>(this: T, name?: string): Spell<T, ResultSet | number>;
202
- static minimum<T extends typeof AbstractBone>(this: T, name?: string): Spell<T, ResultSet | number>;
203
- static maximum<T extends typeof AbstractBone>(this: T, name?: string): Spell<T, ResultSet | number>;
200
+ static count<T extends typeof AbstractBone>(this: T, name?: string): Spell<T, ResultSet<T> | number>;
201
+ static average<T extends typeof AbstractBone>(this: T, name?: string): Spell<T, ResultSet<T> | number>;
202
+ static minimum<T extends typeof AbstractBone>(this: T, name?: string): Spell<T, ResultSet<T> | number>;
203
+ static maximum<T extends typeof AbstractBone>(this: T, name?: string): Spell<T, ResultSet<T> | number>;
204
204
 
205
205
  /**
206
206
  * Remove rows. If soft delete is applied, an UPDATE query is performed instead of DELETing records directly. Set `forceDelete` to true to force a `DELETE` query.
@@ -215,8 +215,8 @@ export class AbstractBone {
215
215
  * yield Muscle.create({ boneId: bone.id, bar: 1 })
216
216
  * });
217
217
  */
218
- static transaction<T extends (connection: Connection) => Generator>(callback: T): Promise<GeneratorReturnType<ReturnType<T>>>;
219
- static transaction<T extends (connection: Connection) => Promise<any>>(callback: T): Promise<ReturnType<T>>;
218
+ static transaction<T extends (options: { connection: Connection }) => Generator>(callback: T): Promise<GeneratorReturnType<ReturnType<T>>>;
219
+ static transaction<T extends (options: { connection: Connection }) => Promise<any>>(callback: T): Promise<ReturnType<T>>;
220
220
 
221
221
  static describe(): Promise<{[key: string]: any[]}>;
222
222
 
@@ -344,7 +344,7 @@ export class AbstractBone {
344
344
  * post.toJSON() // => { id: 1, ... }
345
345
  * @return {Object}
346
346
  */
347
- toJSON(): InstanceValues<this>;
347
+ toJSON(): Values<this>;
348
348
 
349
349
  /**
350
350
  * This is the loyal twin of {@link Bone#toJSON} because when generating the result object, the raw values of attributes are used, instead of the values returned by custom getters (if any).
@@ -355,5 +355,5 @@ export class AbstractBone {
355
355
  * post.toObject() // => { id: 1, ... }
356
356
  * @return {Object}
357
357
  */
358
- toObject(): InstanceValues<this>;
358
+ toObject(): Values<this>;
359
359
  }
@@ -3,7 +3,7 @@ import { CommonHintsArgs } from '../hint';
3
3
  import { AbstractDataType, DataType } from '../data_types';
4
4
  import { AbstractBone } from './abstract_bone';
5
5
 
6
- export type Literal = null | undefined | boolean | number | bigint | string | Date | object | ArrayBuffer;
6
+ export type Literal = null | undefined | boolean | number | bigint | string | Date | Record<string, any> | ArrayBuffer;
7
7
 
8
8
  type BaseValidateArgs = boolean | RegExp | Function | Array<Array<Literal>> | string | Array<Literal>;
9
9
 
@@ -36,8 +36,14 @@ export interface Connection {
36
36
  */
37
37
  query(
38
38
  query: string,
39
- values: Array<Literal | Literal[]>,
39
+ values?: Array<Literal | Literal[]>,
40
40
  ): Promise<QueryResult>;
41
+
42
+ query(
43
+ query: string,
44
+ values?: Array<Literal | Literal[]>,
45
+ callback?: (err: Error, result: QueryResult) => void,
46
+ ): void
41
47
  }
42
48
 
43
49
  export declare class Pool {
@@ -73,9 +79,7 @@ export interface AssociateOptions {
73
79
 
74
80
  export type command = 'select' | 'insert' | 'bulkInsert' | 'update' | 'delete' | 'upsert';
75
81
 
76
- export type ResultSet = {
77
- [key: string]: Literal
78
- };
82
+ export type ResultSet<T extends typeof AbstractBone> = Array<Values<InstanceType<T>> & Record<string, Literal>>;
79
83
 
80
84
  export interface ColumnMeta extends ColumnBase {
81
85
  dataType?: string;
@@ -158,8 +162,8 @@ type OrderOptions<T extends typeof AbstractBone> = {
158
162
 
159
163
  export class Collection<T extends AbstractBone> extends Array<T> {
160
164
  save(): Promise<void>;
161
- toJSON(): InstanceValues<T>[];
162
- toObject(): InstanceValues<T>[];
165
+ toJSON(): Values<T>[];
166
+ toObject(): Values<T>[];
163
167
  }
164
168
 
165
169
  export type WhereConditions<T extends typeof AbstractBone> = {
@@ -168,13 +172,10 @@ export type WhereConditions<T extends typeof AbstractBone> = {
168
172
  [key in '$and' | '$or']?: WhereConditions<T>[];
169
173
  }
170
174
 
171
- export type Values<T extends typeof AbstractBone> = {
172
- [Property in keyof Extract<InstanceType<T>, Literal>]?: Literal;
173
- }
175
+ // https://stackoverflow.com/a/68077021/179691
176
+ export type PickTypeKeys<Obj, Type, T extends keyof Obj = keyof Obj> = ({ [P in keyof Obj]: Obj[P] extends Type ? P : never })[T];
174
177
 
175
- export type InstanceValues<T> = {
176
- [Property in keyof Extract<T, Literal>]?: Extract<T, Literal>[Property]
177
- }
178
+ export type Values<T> = Partial<Omit<T, PickTypeKeys<T, Function>>>;
178
179
 
179
180
  export type BeforeHooksType = 'beforeCreate' | 'beforeBulkCreate' | 'beforeUpdate' | 'beforeSave' | 'beforeUpsert' | 'beforeRemove';
180
181
  export type AfterHooksType = 'afterCreate' | 'afterBulkCreate' | 'afterUpdate' | 'afterSave' | 'afterUpsert' | 'afterRemove';