@spinajs/orm 2.0.38 → 2.0.44

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.
@@ -1,7 +1,9 @@
1
+ import { ISelectQueryBuilder } from './interfaces';
1
2
  import { SelectQueryBuilder, WhereBuilder, RawQuery } from './builders';
2
3
  import { ColumnMethods, SqlOperator, JoinMethod } from './enums';
3
- import { Container, Class } from '@spinajs/di';
4
+ import { Container, Class, Constructor } from '@spinajs/di';
4
5
  import { IColumnDescriptor } from './interfaces';
6
+ import { ModelBase } from './model';
5
7
  export interface IQueryStatementResult {
6
8
  Statements: string[];
7
9
  Bindings: any[];
@@ -53,7 +55,8 @@ export declare abstract class WhereStatement extends QueryStatement {
53
55
  protected _operator: SqlOperator;
54
56
  protected _value: any;
55
57
  protected _container: Container;
56
- constructor(column: string, operator: SqlOperator, value: any, tableAlias: string, container: Container);
58
+ protected _model: Constructor<ModelBase>;
59
+ constructor(column: string, operator: SqlOperator, value: any, tableAlias: string, container: Container, model: Constructor<ModelBase>);
57
60
  abstract build(): IQueryStatementResult;
58
61
  }
59
62
  export declare class Wrap {
@@ -79,7 +82,12 @@ export declare abstract class JoinStatement extends QueryStatement {
79
82
  protected _query: RawQuery;
80
83
  protected _alias: string;
81
84
  protected _tableAlias: string;
82
- constructor(table: string | RawQuery, method: JoinMethod, foreignKey: string, primaryKey: string, alias: string, tableAlias: string);
85
+ protected _model: Constructor<ModelBase>;
86
+ protected _sourceModel: Constructor<ModelBase>;
87
+ protected _whereCallback: (this: ISelectQueryBuilder<any>) => void;
88
+ protected _builder: SelectQueryBuilder<any>;
89
+ protected _whereBuilder: SelectQueryBuilder<any>;
90
+ constructor(builder: SelectQueryBuilder<any>, sourceModel: Constructor<ModelBase>, table: string | RawQuery | Constructor<ModelBase>, method: JoinMethod, foreignKey: string | ((this: SelectQueryBuilder) => void), primaryKey: string, alias: string, tableAlias: string);
83
91
  abstract build(): IQueryStatementResult;
84
92
  }
85
93
  export declare abstract class InStatement extends QueryStatement {
package/lib/statements.js CHANGED
@@ -38,6 +38,8 @@ const builders_1 = require("./builders");
38
38
  const enums_1 = require("./enums");
39
39
  const di_1 = require("@spinajs/di");
40
40
  const _ = __importStar(require("lodash"));
41
+ const model_1 = require("./model");
42
+ const exceptions_1 = require("./exceptions");
41
43
  class QueryStatement {
42
44
  constructor(tableAlias) {
43
45
  this._tableAlias = tableAlias;
@@ -112,17 +114,18 @@ WhereQueryStatement = __decorate([
112
114
  ], WhereQueryStatement);
113
115
  exports.WhereQueryStatement = WhereQueryStatement;
114
116
  let WhereStatement = class WhereStatement extends QueryStatement {
115
- constructor(column, operator, value, tableAlias, container) {
117
+ constructor(column, operator, value, tableAlias, container, model) {
116
118
  super(tableAlias);
117
119
  this._column = column;
118
120
  this._operator = operator;
119
121
  this._value = value;
120
122
  this._container = container;
123
+ this._model = model;
121
124
  }
122
125
  };
123
126
  WhereStatement = __decorate([
124
127
  (0, di_1.NewInstance)(),
125
- __metadata("design:paramtypes", [String, String, Object, String, di_1.Container])
128
+ __metadata("design:paramtypes", [String, String, Object, String, di_1.Container, Object])
126
129
  ], WhereStatement);
127
130
  exports.WhereStatement = WhereStatement;
128
131
  class Wrap {
@@ -156,24 +159,55 @@ DateTimeWrapper = __decorate([
156
159
  ], DateTimeWrapper);
157
160
  exports.DateTimeWrapper = DateTimeWrapper;
158
161
  let JoinStatement = class JoinStatement extends QueryStatement {
159
- constructor(table, method, foreignKey, primaryKey, alias, tableAlias) {
162
+ constructor(builder, sourceModel, table, method, foreignKey, primaryKey, alias, tableAlias) {
160
163
  super(tableAlias);
161
164
  this._method = method;
165
+ this._builder = builder;
166
+ if (_.isString(foreignKey)) {
167
+ this._foreignKey = foreignKey;
168
+ }
162
169
  if (_.isString(table)) {
163
170
  this._table = table;
164
- this._foreignKey = foreignKey;
165
171
  this._primaryKey = primaryKey;
166
- this._alias = alias;
167
- this._tableAlias = tableAlias;
172
+ this._alias = tableAlias;
173
+ this._tableAlias = alias;
168
174
  }
169
- else {
175
+ else if (table instanceof builders_1.RawQuery) {
170
176
  this._query = table;
171
177
  }
178
+ else {
179
+ this._model = table;
180
+ this._sourceModel = sourceModel;
181
+ const sDesc = (0, model_1.extractModelDescriptor)(this._sourceModel);
182
+ const tDesc = (0, model_1.extractModelDescriptor)(this._model);
183
+ const sAlias = `${sDesc.Driver.Options.AliasSeparator}${sDesc.Name}${sDesc.Driver.Options.AliasSeparator}`;
184
+ this._tableAlias = `${sDesc.Driver.Options.AliasSeparator}${tDesc.Name}${sDesc.Driver.Options.AliasSeparator}`;
185
+ if (!this._builder.TableAlias) {
186
+ this._builder.setAlias(sAlias);
187
+ }
188
+ if (_.isFunction(foreignKey)) {
189
+ this._whereCallback = foreignKey;
190
+ const driver = this._builder.Driver;
191
+ const cnt = driver.Container;
192
+ this._whereBuilder = cnt.resolve(builders_1.SelectQueryBuilder, [driver, this._model, this]);
193
+ this._whereBuilder.setAlias(this._tableAlias);
194
+ this._whereCallback.call(this._whereBuilder, [this]);
195
+ this._builder.mergeStatements(this._whereBuilder);
196
+ }
197
+ const relation = Array.from(sDesc.Relations, ([key, value]) => ({ key, value })).find((x) => x.value.TargetModel.name === this._model.name);
198
+ if (!relation) {
199
+ throw new exceptions_1.OrmException(`Cannot find relation between ${this._model.name} and ${this._sourceModel.name}, thus cannot perform join statement`);
200
+ }
201
+ this._table = tDesc.TableName;
202
+ this._primaryKey = relation.value.ForeignKey;
203
+ this._alias = sAlias;
204
+ this._foreignKey = sDesc.PrimaryKey;
205
+ }
172
206
  }
173
207
  };
174
208
  JoinStatement = __decorate([
175
209
  (0, di_1.NewInstance)(),
176
- __metadata("design:paramtypes", [Object, String, String, String, String, String])
210
+ __metadata("design:paramtypes", [builders_1.SelectQueryBuilder, Object, Object, String, Object, String, String, String])
177
211
  ], JoinStatement);
178
212
  exports.JoinStatement = JoinStatement;
179
213
  let InStatement = class InStatement extends QueryStatement {
@@ -1 +1 @@
1
- {"version":3,"file":"statements.js","sourceRoot":"","sources":["../src/statements.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"statements.js","sourceRoot":"","sources":["../src/statements.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -1,3 +1,11 @@
1
1
  import { IWhereBuilder } from './interfaces';
2
+ import { Relation, SingleRelation } from './relations';
2
3
  export declare type WhereFunction<T> = (this: IWhereBuilder<T>) => void;
3
4
  export declare type Unbox<T> = T extends Array<infer U> ? U : T;
5
+ export declare type UnboxRelation<T> = T extends Relation<infer U, never> ? U : T;
6
+ export declare type PickRelations<T, Value> = {
7
+ [P in keyof T as T[P] extends Value | undefined ? P : never]: number | UnboxRelation<Value>;
8
+ };
9
+ export declare type PartialModel<T> = {
10
+ [P in keyof T]?: T[P] extends SingleRelation<infer W> ? W : T[P] | undefined;
11
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spinajs/orm",
3
- "version": "2.0.38",
3
+ "version": "2.0.44",
4
4
  "description": "framework orm module",
5
5
  "main": "lib/index.js",
6
6
  "private": false,
@@ -41,22 +41,21 @@
41
41
  "homepage": "https://github.com/spinajs/main#readme",
42
42
  "devDependencies": {
43
43
  "@types/lodash": "4.14.182",
44
- "@types/luxon": "2.4.0",
44
+ "@types/luxon": "^3.2.0",
45
45
  "@types/node": "^16.11.44",
46
46
  "@types/uuid": "8.3.4"
47
47
  },
48
48
  "dependencies": {
49
- "@spinajs/configuration": "^2.0.38",
50
- "@spinajs/di": "^2.0.38",
51
- "@spinajs/exceptions": "^2.0.12",
52
- "@spinajs/internal-logger": "^2.0.38",
53
- "@spinajs/log": "^2.0.38",
54
- "@spinajs/reflection": "^2.0.38",
49
+ "@spinajs/configuration": "^2.0.44",
50
+ "@spinajs/di": "^2.0.44",
51
+ "@spinajs/exceptions": "^2.0.39",
52
+ "@spinajs/internal-logger": "^2.0.44",
53
+ "@spinajs/log": "^2.0.44",
54
+ "@spinajs/reflection": "^2.0.44",
55
55
  "glob": "^7.1.4",
56
- "helmet": "^3.23.0",
57
56
  "lodash": "^4.17.14",
58
- "luxon": "^2.2.0",
57
+ "luxon": "^3.2.1",
59
58
  "uuid": "^8.3.2"
60
59
  },
61
- "gitHead": "5ea5440ee9db49595f531592ebdbc6d69f457082"
60
+ "gitHead": "1857a6e3626e0fed22ffb0b44b48d587c79898db"
62
61
  }
package/lib/cli.d.ts DELETED
@@ -1 +0,0 @@
1
- #!/usr/bin/env nod
package/lib/cli.js DELETED
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env nod
2
- //# sourceMappingURL=cli.js.map
package/lib/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}