@spinajs/orm 1.0.60 → 1.2.32

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.
Files changed (91) hide show
  1. package/README.md +11 -2
  2. package/lib/builders.d.ts +30 -23
  3. package/lib/builders.js +74 -195
  4. package/lib/builders.js.map +1 -1
  5. package/lib/decorators.d.ts +18 -19
  6. package/lib/decorators.js +30 -30
  7. package/lib/decorators.js.map +1 -1
  8. package/lib/driver.d.ts +10 -9
  9. package/lib/driver.js +10 -20
  10. package/lib/driver.js.map +1 -1
  11. package/lib/exceptions.d.ts +6 -0
  12. package/lib/exceptions.js +11 -0
  13. package/lib/exceptions.js.map +1 -0
  14. package/lib/helpers.js +2 -2
  15. package/lib/helpers.js.map +1 -1
  16. package/lib/hydrators.d.ts +4 -4
  17. package/lib/hydrators.js +6 -6
  18. package/lib/hydrators.js.map +1 -1
  19. package/lib/index.d.ts +0 -1
  20. package/lib/index.js +1 -2
  21. package/lib/index.js.map +1 -1
  22. package/lib/interfaces.d.ts +19 -27
  23. package/lib/interfaces.js +14 -14
  24. package/lib/interfaces.js.map +1 -1
  25. package/lib/log-common/src/index.d.ts +180 -0
  26. package/lib/log-common/src/index.js +49 -0
  27. package/lib/log-common/src/index.js.map +1 -0
  28. package/lib/model.d.ts +55 -53
  29. package/lib/model.js +132 -149
  30. package/lib/model.js.map +1 -1
  31. package/lib/orm/src/builders.d.ts +429 -0
  32. package/lib/orm/src/builders.js +1082 -0
  33. package/lib/orm/src/builders.js.map +1 -0
  34. package/lib/orm/src/cli.d.ts +1 -0
  35. package/lib/orm/src/cli.js +2 -0
  36. package/lib/orm/src/cli.js.map +1 -0
  37. package/lib/orm/src/converters.d.ts +9 -0
  38. package/lib/orm/src/converters.js +22 -0
  39. package/lib/orm/src/converters.js.map +1 -0
  40. package/lib/orm/src/decorators.d.ts +122 -0
  41. package/lib/orm/src/decorators.js +380 -0
  42. package/lib/orm/src/decorators.js.map +1 -0
  43. package/lib/orm/src/driver.d.ts +77 -0
  44. package/lib/orm/src/driver.js +84 -0
  45. package/lib/orm/src/driver.js.map +1 -0
  46. package/lib/orm/src/enums.d.ts +111 -0
  47. package/lib/orm/src/enums.js +122 -0
  48. package/lib/orm/src/enums.js.map +1 -0
  49. package/lib/orm/src/exceptions.d.ts +6 -0
  50. package/lib/orm/src/exceptions.js +11 -0
  51. package/lib/orm/src/exceptions.js.map +1 -0
  52. package/lib/orm/src/hydrators.d.ts +16 -0
  53. package/lib/orm/src/hydrators.js +70 -0
  54. package/lib/orm/src/hydrators.js.map +1 -0
  55. package/lib/orm/src/index.d.ts +12 -0
  56. package/lib/orm/src/index.js +25 -0
  57. package/lib/orm/src/index.js.map +1 -0
  58. package/lib/orm/src/interfaces.d.ts +615 -0
  59. package/lib/orm/src/interfaces.js +186 -0
  60. package/lib/orm/src/interfaces.js.map +1 -0
  61. package/lib/orm/src/model.d.ts +135 -0
  62. package/lib/orm/src/model.js +449 -0
  63. package/lib/orm/src/model.js.map +1 -0
  64. package/lib/orm/src/orm.d.ts +59 -0
  65. package/lib/orm/src/orm.js +278 -0
  66. package/lib/orm/src/orm.js.map +1 -0
  67. package/lib/orm/src/relations.d.ts +96 -0
  68. package/lib/orm/src/relations.js +503 -0
  69. package/lib/orm/src/relations.js.map +1 -0
  70. package/lib/orm/src/statements.d.ts +132 -0
  71. package/lib/orm/src/statements.js +257 -0
  72. package/lib/orm/src/statements.js.map +1 -0
  73. package/lib/orm/src/types.d.ts +2 -0
  74. package/lib/orm/src/types.js +3 -0
  75. package/lib/orm/src/types.js.map +1 -0
  76. package/lib/orm/src/wrappers.d.ts +5 -0
  77. package/lib/orm/src/wrappers.js +13 -0
  78. package/lib/orm/src/wrappers.js.map +1 -0
  79. package/lib/orm.d.ts +9 -9
  80. package/lib/orm.js +69 -47
  81. package/lib/orm.js.map +1 -1
  82. package/lib/relations.d.ts +14 -13
  83. package/lib/relations.js +60 -81
  84. package/lib/relations.js.map +1 -1
  85. package/lib/statements.d.ts +1 -1
  86. package/lib/statements.js +19 -21
  87. package/lib/statements.js.map +1 -1
  88. package/lib/wrappers.d.ts +1 -1
  89. package/lib/wrappers.js.map +1 -1
  90. package/package.json +37 -61
  91. package/LICENSE +0 -674
package/README.md CHANGED
@@ -1,2 +1,11 @@
1
- # spinajs-orm
2
- Spinajs orm module
1
+ # `@spinajs/orm`
2
+
3
+ > TODO: description
4
+
5
+ ## Usage
6
+
7
+ ```
8
+ const orm = require('@spinajs/orm');
9
+
10
+ // TODO: DEMONSTRATE API
11
+ ```
package/lib/builders.d.ts CHANGED
@@ -1,20 +1,35 @@
1
- import { Container } from '@spinajs/di';
1
+ import { Container, Constructor } from '@spinajs/di';
2
2
  import { QueryMethod, SORT_ORDER, WhereBoolean, WhereOperators } from './enums';
3
- import { IColumnsBuilder, ICompilerOutput, ILimitBuilder, IOrderByBuilder, IQueryBuilder, IQueryLimit, ISelectQueryBuilder, ISort, IWhereBuilder, QueryContext, IJoinBuilder, IBuilderMiddleware, IWithRecursiveBuilder, ReferentialAction, IGroupByBuilder } from './interfaces';
3
+ import { IColumnsBuilder, ICompilerOutput, ILimitBuilder, IOrderByBuilder, IQueryBuilder, IQueryLimit, ISort, IWhereBuilder, QueryContext, IJoinBuilder, IBuilderMiddleware, IWithRecursiveBuilder, ReferentialAction, IGroupByBuilder } from './interfaces';
4
4
  import { ColumnStatement, IQueryStatement, WrapStatement } from './statements';
5
5
  import { WhereFunction } from './types';
6
6
  import { OrmDriver } from './driver';
7
7
  import { ModelBase } from './model';
8
8
  import { OrmRelation, IOrmRelation } from './relations';
9
+ /**
10
+ * Trick typescript by using the inbuilt interface inheritance and declaration merging
11
+ * for builder classes.
12
+ *
13
+ * We use mixins to extend functionality of builder eg. insert query builder uses function from columns builder
14
+ * and so on...
15
+ */
16
+ export interface InsertQueryBuilder extends IColumnsBuilder {
17
+ }
18
+ export interface DeleteQueryBuilder extends IWhereBuilder, ILimitBuilder {
19
+ }
20
+ export interface UpdateQueryBuilder extends IColumnsBuilder, IWhereBuilder {
21
+ }
22
+ export interface SelectQueryBuilder extends IColumnsBuilder, IOrderByBuilder, ILimitBuilder, IWhereBuilder, IJoinBuilder, IWithRecursiveBuilder, IGroupByBuilder {
23
+ }
9
24
  export declare class Builder<T = any> {
10
25
  protected _driver: OrmDriver;
11
26
  protected _container: Container;
12
- protected _model?: Constructor<ModelBase<any>>;
27
+ protected _model?: Constructor<ModelBase>;
13
28
  protected _nonSelect: boolean;
14
29
  protected _queryContext: QueryContext;
15
30
  protected _middlewares: IBuilderMiddleware[];
16
31
  protected _asRaw: boolean;
17
- constructor(container: Container, driver: OrmDriver, model?: Constructor<ModelBase<any>>);
32
+ constructor(container: Container, driver: OrmDriver, model?: Constructor<ModelBase>);
18
33
  middleware(middleware: IBuilderMiddleware): this;
19
34
  /**
20
35
  * Builds query that is ready to use in DB
@@ -31,7 +46,7 @@ export declare class QueryBuilder<T = any> extends Builder<T> implements IQueryB
31
46
  protected _table: string;
32
47
  protected _tableAlias: string;
33
48
  protected _schema: string;
34
- constructor(container: Container, driver: OrmDriver, model?: Constructor<ModelBase<any>>);
49
+ constructor(container: Container, driver: OrmDriver, model?: Constructor<ModelBase>);
35
50
  /**
36
51
  * SQL table name that query is executed on
37
52
  *
@@ -71,7 +86,7 @@ export declare class QueryBuilder<T = any> extends Builder<T> implements IQueryB
71
86
  /**
72
87
  * Sets table alias for query
73
88
  *
74
- * @param alias sql table alias
89
+ * @param alias - sql table alias
75
90
  */
76
91
  setAlias(alias: string): this;
77
92
  from(table: string, alias?: string): this;
@@ -99,7 +114,7 @@ export declare class ColumnsBuilder implements IColumnsBuilder {
99
114
  protected _container: Container;
100
115
  protected _columns: IQueryStatement[];
101
116
  protected _tableAlias: string;
102
- protected _model?: Constructor<ModelBase<any>>;
117
+ protected _model?: Constructor<ModelBase>;
103
118
  constructor();
104
119
  /**
105
120
  * Clears all select clauses from the query.
@@ -183,8 +198,6 @@ export declare class WhereBuilder implements IWhereBuilder {
183
198
  whereNotInSet(column: string, val: any[]): this;
184
199
  clearWhere(): this;
185
200
  }
186
- export interface SelectQueryBuilder extends ISelectQueryBuilder {
187
- }
188
201
  export declare class SelectQueryBuilder<T = any> extends QueryBuilder<T> {
189
202
  /**
190
203
  * column query props
@@ -211,7 +224,7 @@ export declare class SelectQueryBuilder<T = any> extends QueryBuilder<T> {
211
224
  protected _cteStatement: IQueryStatement;
212
225
  protected _owner: IOrmRelation;
213
226
  protected _relations: IOrmRelation[];
214
- private this;
227
+ this: this;
215
228
  get IsDistinct(): boolean;
216
229
  get Owner(): IOrmRelation;
217
230
  get Relations(): IOrmRelation[];
@@ -231,8 +244,6 @@ export declare class SelectQueryBuilder<T = any> extends QueryBuilder<T> {
231
244
  then(resolve: (rows: any[]) => void, reject: (err: Error) => void): Promise<T>;
232
245
  execute(): Promise<T>;
233
246
  }
234
- export interface DeleteQueryBuilder extends IWhereBuilder, ILimitBuilder {
235
- }
236
247
  export declare class DeleteQueryBuilder extends QueryBuilder {
237
248
  /**
238
249
  * where query props
@@ -260,8 +271,6 @@ export declare class OnDuplicateQueryBuilder {
260
271
  then(resolve: (rows: any[]) => void, reject: (err: Error) => void): Promise<any>;
261
272
  toDB(): ICompilerOutput;
262
273
  }
263
- export interface UpdateQueryBuilder extends IWhereBuilder {
264
- }
265
274
  export declare class UpdateQueryBuilder extends QueryBuilder {
266
275
  /**
267
276
  * where query props
@@ -270,20 +279,18 @@ export declare class UpdateQueryBuilder extends QueryBuilder {
270
279
  protected _boolean: WhereBoolean;
271
280
  protected _value: {};
272
281
  get Value(): {};
273
- private this;
282
+ this: this;
274
283
  constructor(container: Container, driver: OrmDriver, model: Constructor<any>);
275
284
  in(name: string): this;
276
285
  update(value: {}): this;
277
286
  toDB(): ICompilerOutput;
278
287
  }
279
- export interface InsertQueryBuilder extends IColumnsBuilder {
280
- }
281
288
  export declare class InsertQueryBuilder extends QueryBuilder {
282
289
  DuplicateQueryBuilder: OnDuplicateQueryBuilder;
283
290
  protected _values: any[][];
284
291
  protected _columns: ColumnStatement[];
285
292
  protected _ignore: boolean;
286
- private this;
293
+ this: this;
287
294
  get Values(): any[][];
288
295
  get Ignore(): boolean;
289
296
  constructor(container: Container, driver: OrmDriver, model: Constructor<any>);
@@ -319,29 +326,29 @@ export declare class ForeignKeyBuilder {
319
326
  *
320
327
  * Referenced field in child table
321
328
  *
322
- * @param fkName name of foreign field in child table
329
+ * @param fkName - name of foreign field in child table
323
330
  */
324
331
  foreignKey(fkName: string): this;
325
332
  /**
326
333
  *
327
334
  * Referenced parent table & key
328
335
  *
329
- * @param table parent table
330
- * @param pKey parant table key field
336
+ * @param table - parent table
337
+ * @param pKey - parant table key field
331
338
  */
332
339
  references(table: string, pKey: string): this;
333
340
  /**
334
341
  *
335
342
  * On delete action
336
343
  *
337
- * @param action action to take on delete
344
+ * @param action - action to take on delete
338
345
  */
339
346
  onDelete(action: ReferentialAction): this;
340
347
  /**
341
348
  *
342
349
  * On update action
343
350
  *
344
- * @param action action to take on update
351
+ * @param action - action to take on update
345
352
  */
346
353
  onUpdate(action: ReferentialAction): this;
347
354
  /**