@spinajs/orm-http 2.0.224 → 2.0.226

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 (51) hide show
  1. package/lib/cjs/builders.js +6 -1
  2. package/lib/cjs/builders.js.map +1 -1
  3. package/lib/cjs/decorators.d.ts +4 -1
  4. package/lib/cjs/decorators.d.ts.map +1 -1
  5. package/lib/cjs/decorators.js +6 -1
  6. package/lib/cjs/decorators.js.map +1 -1
  7. package/lib/cjs/extension.d.ts +35 -0
  8. package/lib/cjs/extension.d.ts.map +1 -0
  9. package/lib/cjs/extension.js +3 -0
  10. package/lib/cjs/extension.js.map +1 -0
  11. package/lib/cjs/index.d.ts +2 -1
  12. package/lib/cjs/index.d.ts.map +1 -1
  13. package/lib/cjs/index.js +1 -0
  14. package/lib/cjs/index.js.map +1 -1
  15. package/lib/cjs/interfaces.d.ts +1 -25
  16. package/lib/cjs/interfaces.d.ts.map +1 -1
  17. package/lib/cjs/model.d.ts +21 -12
  18. package/lib/cjs/model.d.ts.map +1 -1
  19. package/lib/cjs/model.js +19 -11
  20. package/lib/cjs/model.js.map +1 -1
  21. package/lib/cjs/route-arg.d.ts +14 -0
  22. package/lib/cjs/route-arg.d.ts.map +1 -0
  23. package/lib/cjs/route-arg.js +42 -0
  24. package/lib/cjs/route-arg.js.map +1 -0
  25. package/lib/mjs/builders.js +7 -2
  26. package/lib/mjs/builders.js.map +1 -1
  27. package/lib/mjs/decorators.d.ts +4 -1
  28. package/lib/mjs/decorators.d.ts.map +1 -1
  29. package/lib/mjs/decorators.js +5 -1
  30. package/lib/mjs/decorators.js.map +1 -1
  31. package/lib/mjs/extension.d.ts +35 -0
  32. package/lib/mjs/extension.d.ts.map +1 -0
  33. package/lib/mjs/extension.js +2 -0
  34. package/lib/mjs/extension.js.map +1 -0
  35. package/lib/mjs/index.d.ts +2 -1
  36. package/lib/mjs/index.d.ts.map +1 -1
  37. package/lib/mjs/index.js +2 -1
  38. package/lib/mjs/index.js.map +1 -1
  39. package/lib/mjs/interfaces.d.ts +1 -25
  40. package/lib/mjs/interfaces.d.ts.map +1 -1
  41. package/lib/mjs/model.d.ts +20 -11
  42. package/lib/mjs/model.d.ts.map +1 -1
  43. package/lib/mjs/model.js +20 -12
  44. package/lib/mjs/model.js.map +1 -1
  45. package/lib/mjs/route-arg.d.ts +14 -0
  46. package/lib/mjs/route-arg.d.ts.map +1 -0
  47. package/lib/mjs/route-arg.js +39 -0
  48. package/lib/mjs/route-arg.js.map +1 -0
  49. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  50. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  51. package/package.json +10 -10
@@ -4,8 +4,13 @@ const orm_1 = require("@spinajs/orm");
4
4
  /**
5
5
  * Extend where builder with flter func old style ( by prototype )
6
6
  */
7
- orm_1.WhereBuilder.prototype.filter = function (filters) {
7
+ orm_1.SelectQueryBuilder.prototype.filter = function (filters) {
8
+ const columns = this._model.filterColumns();
8
9
  filters.forEach((filter) => {
10
+ if (!columns.find((c) => c.column === filter.Column)) {
11
+ throw new Error(`Column ${filter.Column} is not filterable`);
12
+ }
13
+ // TODO: in futere add full expression tree support ( OR, AND, maybe nesting queries for relations, EXISTS maybe ?)
9
14
  switch (filter.Operator) {
10
15
  case 'eq':
11
16
  this.andWhere(filter.Column, orm_1.SqlOperator.EQ, filter.Value);
@@ -1 +1 @@
1
- {"version":3,"file":"builders.js","sourceRoot":"","sources":["../../src/builders.ts"],"names":[],"mappings":";;AAAA,sCAAyD;AAGzD;;GAEG;AACF,kBAAY,CAAC,SAAiB,CAAC,MAAM,GAAG,UAAmC,OAAkB;IAC1F,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACzB,QAAQ,MAAM,CAAC,QAAQ,EAAE;YACvB,KAAK,IAAI;gBACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3D,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5D,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3D,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5D,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3D,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5D,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7D,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3D,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC/D,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChE,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,IAAI,CAAC,CAAC;gBAC/C,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,QAAQ,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,YAAY;gBACf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpE,MAAM;SACT;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC,CAAA"}
1
+ {"version":3,"file":"builders.js","sourceRoot":"","sources":["../../src/builders.ts"],"names":[],"mappings":";;AAAA,sCAA+D;AAG/D;;GAEG;AACF,wBAAkB,CAAC,SAAiB,CAAC,MAAM,GAAG,UAAyC,OAAkB;IACxG,MAAM,OAAO,GAAqB,IAAI,CAAC,MAAc,CAAC,aAAa,EAAE,CAAC;IAEtE,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE;YACpD,MAAM,IAAI,KAAK,CAAC,UAAU,MAAM,CAAC,MAAM,oBAAoB,CAAC,CAAC;SAC9D;QAED,mHAAmH;QAEnH,QAAQ,MAAM,CAAC,QAAQ,EAAE;YACvB,KAAK,IAAI;gBACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3D,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5D,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3D,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5D,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3D,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5D,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7D,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3D,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC/D,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChE,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,IAAI,CAAC,CAAC;gBAC/C,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,QAAQ,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,YAAY;gBACf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAW,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpE,MAAM;SACT;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
@@ -1,3 +1,6 @@
1
- import { FilterableOperators } from "./interfaces.js";
1
+ import { ModelBase } from '@spinajs/orm';
2
+ import { FilterableOperators } from './interfaces.js';
3
+ import { Constructor } from '@spinajs/di';
2
4
  export declare function Filterable(operators: FilterableOperators[]): any;
5
+ export declare function Filter(model: Constructor<ModelBase>): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
3
6
  //# sourceMappingURL=decorators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,wBAAgB,UAAU,CAAC,SAAS,EAAE,mBAAmB,EAAE,OAUxD"}
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAA8B,MAAM,cAAc,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAG,WAAW,EAAE,MAAM,aAAa,CAAC;AAG3C,wBAAgB,UAAU,CAAC,SAAS,EAAE,mBAAmB,EAAE,OAU1D;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,yGAEnD"}
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Filterable = void 0;
3
+ exports.Filter = exports.Filterable = void 0;
4
4
  const orm_1 = require("@spinajs/orm");
5
+ const http_1 = require("@spinajs/http");
5
6
  function Filterable(operators) {
6
7
  return (0, orm_1.extractDecoratorDescriptor)((model, _target, propertyKey) => {
7
8
  const columnDesc = model.Columns.find((c) => c.Name === propertyKey);
@@ -15,4 +16,8 @@ function Filterable(operators) {
15
16
  }, true);
16
17
  }
17
18
  exports.Filterable = Filterable;
19
+ function Filter(model) {
20
+ return (0, http_1.Route)((0, http_1.Parameter)("FilterModelRouteArg", null, model));
21
+ }
22
+ exports.Filter = Filter;
18
23
  //# sourceMappingURL=decorators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":";;;AAAA,sCAA4E;AAG5E,SAAgB,UAAU,CAAC,SAAgC;IACvD,OAAO,IAAA,gCAA0B,EAAC,CAAC,KAAuB,EAAE,OAAY,EAAE,WAAmB,EAAE,EAAE;QAC/F,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,EAAE;YACf,mFAAmF;YACnF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAS,CAAC,CAAC;SACzE;aAAM;YACL,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC;SACnC;IACH,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC;AAVH,gCAUG"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":";;;AAAA,sCAAuF;AAGvF,wCAAiD;AAEjD,SAAgB,UAAU,CAAC,SAAgC;IACzD,OAAO,IAAA,gCAA0B,EAAC,CAAC,KAAuB,EAAE,OAAY,EAAE,WAAmB,EAAE,EAAE;QAC/F,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,EAAE;YACf,mFAAmF;YACnF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAS,CAAC,CAAC;SACzE;aAAM;YACL,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC;SACnC;IACH,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC;AAVD,gCAUC;AAED,SAAgB,MAAM,CAAC,KAA6B;IAClD,OAAO,IAAA,YAAK,EAAC,IAAA,gBAAS,EAAC,qBAAqB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7D,CAAC;AAFD,wBAEC"}
@@ -0,0 +1,35 @@
1
+ import { FilterableOperators, IColumnFilter, IFilter } from './interfaces.js';
2
+ declare module '@spinajs/orm' {
3
+ interface IColumnDescriptor {
4
+ /**
5
+ * If set column is fitlerable by this operators
6
+ */
7
+ Filterable?: FilterableOperators[];
8
+ }
9
+ interface ISelectQueryBuilder {
10
+ /**
11
+ *
12
+ * Add filter to query
13
+ *
14
+ * @param filter
15
+ */
16
+ filter(filter: IFilter[]): this;
17
+ }
18
+ namespace ModelBase {
19
+ /**
20
+ * @returns json schema of filterable columns
21
+ */
22
+ function filterSchema(): any;
23
+ function filterColumns(): IColumnFilter[];
24
+ /**
25
+ *
26
+ * NOTE: this is not a part of orm, but a part of orm-http extension
27
+ * NOTE 2: explicit type for generic T is not possible due to typescript limitations
28
+ * we cannot infer type of T from function arguments couse this is augumentation
29
+ *
30
+ * @param filters
31
+ */
32
+ function filter<T extends ModelBase<unknown>>(filters: IFilter[]): Promise<Array<T>>;
33
+ }
34
+ }
35
+ //# sourceMappingURL=extension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../src/extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE9E,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAiB,iBAAiB;QAChC;;WAEG;QACH,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;KACpC;IAED,UAAiB,mBAAmB;QAClC;;;;;WAKG;QACH,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;KACjC;IAED,UAAU,SAAS,CAAC;QAElB;;WAEG;QACH,SAAgB,YAAY,IAAI,GAAG,CAAC;QAEpC,SAAgB,aAAa,IAAI,aAAa,EAAE,CAAC;QAEjD;;;;;;;WAOG;QACH,SAAgB,MAAM,CAAC,CAAC,SAAS,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7F;CACF"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../../src/extension.ts"],"names":[],"mappings":""}
@@ -4,7 +4,8 @@ import { IContainer, Bootstrapper } from '@spinajs/di';
4
4
  export * from "./interfaces.js";
5
5
  export * from "./model.js";
6
6
  export * from "./decorators.js";
7
- export * from "./builders.js";
7
+ export * from './extension.js';
8
+ export * from './builders.js';
8
9
  export declare class AsDbModel extends RouteArgs {
9
10
  get SupportedType(): string;
10
11
  extract(callData: IRouteCall, param: IRouteParameter, req: sRequest): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAgB,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,UAAU,EAAoB,aAAa,EAAE,WAAW,EAAE,OAAO,IAAI,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1I,OAAO,EAAE,UAAU,EAAqC,YAAY,EAAM,MAAM,aAAa,CAAC;AAG9F,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAE9B,qBACa,SAAU,SAAQ,SAAS;IACtC,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ;;;;CAajF;AAED,qBACa,WAAY,SAAQ,SAAS;IAExC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;IAGhC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAEb,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ;;;;CA0BjF;AAED,qBAAa,eAAgB,SAAQ,WAAW;IACjC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;CAS3E;AAED,wBAAgB,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,yGAE3D;AAED,wBAAgB,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,yGAE7D;AAED,qBACa,mBAAoB,SAAQ,YAAY;IACtC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAgBxC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAgB,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,UAAU,EAAoB,aAAa,EAAE,WAAW,EAAE,OAAO,IAAI,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1I,OAAO,EAAE,UAAU,EAAqC,YAAY,EAAM,MAAM,aAAa,CAAC;AAG9F,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAE9B,qBACa,SAAU,SAAQ,SAAS;IACtC,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ;;;;CAajF;AAED,qBACa,WAAY,SAAQ,SAAS;IAExC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;IAGhC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAEb,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ;;;;CA0BjF;AAED,qBAAa,eAAgB,SAAQ,WAAW;IACjC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;CAS3E;AAED,wBAAgB,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,yGAE3D;AAED,wBAAgB,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,yGAE7D;AAED,qBACa,mBAAoB,SAAQ,YAAY;IACtC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAgBxC"}
package/lib/cjs/index.js CHANGED
@@ -31,6 +31,7 @@ const model_js_1 = require("./model.js");
31
31
  __exportStar(require("./interfaces.js"), exports);
32
32
  __exportStar(require("./model.js"), exports);
33
33
  __exportStar(require("./decorators.js"), exports);
34
+ __exportStar(require("./extension.js"), exports);
34
35
  __exportStar(require("./builders.js"), exports);
35
36
  let AsDbModel = class AsDbModel extends http_1.RouteArgs {
36
37
  get SupportedType() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAA4D;AAC5D,wCAA0I;AAC1I,oCAA8F;AAC9F,yCAAiD;AAEjD,kDAAgC;AAChC,6CAA2B;AAC3B,kDAAgC;AAChC,iDAA+B;AAC/B,gDAA8B;AAGvB,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,gBAAS;IACtC,IAAW,aAAa;QACtB,OAAO,WAAW,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAsB,EAAE,GAAa;QAC9E,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,WAAW,EAAe,CAAC;QAEpD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;QAEzD,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,kBAAY,CAAC,+BAA+B,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,cAAc,CAAC,CAAC;SACxG;QAED,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAErB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC9C,CAAC;CACF,CAAA;AAlBY,8BAAS;oBAAT,SAAS;IADrB,IAAA,eAAU,GAAE;GACA,SAAS,CAkBrB;AAGM,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,gBAAS;IAOxC,KAAK,CAAC,OAAO,KAAmB,CAAC;IAEjC,IAAW,aAAa;QACtB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAsB,EAAE,GAAa;QAC9E,IAAI,CAAC,GAAQ,IAAI,CAAC;QAElB,QAAQ,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;YAC1B,KAAK,oBAAa,CAAC,SAAS;gBAC1B,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjD,MAAM;YACR,KAAK,oBAAa,CAAC,QAAQ;gBACzB,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChD,MAAM;YACR,KAAK,oBAAa,CAAC,UAAU;gBAC3B,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBACjE,MAAM;YACR,KAAK,oBAAa,CAAC,UAAU,CAAC;YAC9B;gBACE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClD,MAAM;SACT;QAED,IAAI,CAAC,CAAC,EAAE;YACN,MAAM,IAAI,kBAAY,CAAC,wCAAwC,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,cAAc,CAAC,CAAC;SACjH;QAED,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC9C,CAAC;CACF,CAAA;AAvCY,kCAAW;AAEZ;IADT,IAAA,eAAU,EAAC,cAAS,CAAC;;8CACU;AAGtB;IADT,IAAA,eAAU,EAAC,SAAG,CAAC;8BACD,SAAG;wCAAC;sBALR,WAAW;IADvB,IAAA,eAAU,GAAE;GACA,WAAW,CAuCvB;AAED,MAAa,eAAgB,SAAQ,kBAAW;IACvC,KAAK,CAAC,OAAO,CAAC,KAAU,EAAE,SAA0B;QACzD,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,MAAM,IAAI,kBAAY,CAAC,4BAA4B,CAAC,CAAC;SACtD;QAED,MAAM,KAAK,GAAc,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;QACrD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAVD,0CAUC;AAED,SAAgB,OAAO,CAAC,KAAc,EAAE,IAAoB;IAC1D,OAAO,IAAA,YAAK,EAAC,IAAA,gBAAS,EAAC,WAAW,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC9D,CAAC;AAFD,0BAEC;AAED,SAAgB,SAAS,CAAC,KAAc,EAAE,IAAoB;IAC5D,OAAO,IAAA,YAAK,EAAC,IAAA,gBAAS,EAAC,aAAa,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAChE,CAAC;AAFD,8BAEC;AAGM,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,iBAAY;IAC5C,KAAK,CAAC,SAAS;QACpB,OAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,GAAQ,EAAE,EAAE;YACzC,6DAA6D;YAC7D,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACvB,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YACvF,CAAC,CAAC,CAAC;YAEH,oBAAoB;YACpB,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACvB,kCAAkC;gBAClC,KAAK,MAAM,KAAK,IAAI,8BAAmB,EAAE;oBACvC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAI,8BAA2B,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBAClE;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAjBY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,eAAU,EAAC,iBAAY,CAAC;GACZ,mBAAmB,CAiB/B"}
@@ -17,31 +17,7 @@ export interface ITransformOptions {
17
17
  perPage?: number;
18
18
  model: Class<ModelBase<unknown>>;
19
19
  }
20
- declare module '@spinajs/orm' {
21
- interface IColumnDescriptor {
22
- /**
23
- * If set column is fitlerable by this operators
24
- */
25
- Filterable?: FilterableOperators[];
26
- }
27
- interface IWhereBuildet<T> {
28
- /**
29
- *
30
- * Add filter to query
31
- *
32
- * @param filter
33
- */
34
- filter(filter: IFilter[]): this;
35
- }
36
- interface IModelBase {
37
- /**
38
- * @returns json schema of filterable columns
39
- */
40
- filterSchema(): any;
41
- filterColumns(): IColumFilter[];
42
- }
43
- }
44
- export interface IColumFilter {
20
+ export interface IColumnFilter {
45
21
  column: string;
46
22
  operators: FilterableOperators[];
47
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGpD,qBACa,qBAAqB;IACzB,IAAI,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,EAAE,GAAG,CAAC;QAChB,aAAa,EAAE,GAAG,CAAC;KACpB,CAAQ;gBAEG,IAAI,EAAE,GAAG;CAGtB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;CAClC;AAED,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAiB,iBAAiB;QAChC;;WAEG;QACH,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;KACpC;IAED,UAAiB,aAAa,CAAC,CAAC;QAE9B;;;;;WAKG;QACH,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;KACjC;IAED,UAAiB,UAAU;QAEzB;;WAEG;QACH,YAAY,IAAI,GAAG,CAAC;QAEpB,aAAa,IAAI,YAAY,EAAE,CAAC;KACjC;CACF;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGpD,qBACa,qBAAqB;IACzB,IAAI,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,EAAE,GAAG,CAAC;QAChB,aAAa,EAAE,GAAG,CAAC;KACpB,CAAQ;gBAEG,IAAI,EAAE,GAAG;CAGtB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC"}
@@ -1,23 +1,32 @@
1
+ import './builders.js';
2
+ import { IFilter } from './interfaces.js';
1
3
  export declare const MODEL_STATIC_MIXINS: {
4
+ filter(filters: IFilter[]): Promise<any>;
2
5
  filterColumns(): {
3
6
  column: string;
4
- operators: import("./interfaces").FilterableOperators[];
7
+ operators: import("./interfaces.js").FilterableOperators[];
5
8
  }[];
6
9
  filterSchema(): {
7
10
  type: string;
8
- oneOf: {
11
+ items: {
9
12
  type: string;
10
- required: string[];
11
- properties: {
12
- field: {
13
- const: string;
13
+ anyOf: {
14
+ type: string;
15
+ required: string[];
16
+ properties: {
17
+ Field: {
18
+ const: string;
19
+ };
20
+ Value: {
21
+ type: string[];
22
+ };
23
+ Operator: {
24
+ type: string;
25
+ enum: import("./interfaces.js").FilterableOperators[];
26
+ };
14
27
  };
15
- value: {
16
- type: string[];
17
- };
18
- operator: import("./interfaces").FilterableOperators[];
19
- };
20
- }[];
28
+ }[];
29
+ };
21
30
  };
22
31
  };
23
32
  //# sourceMappingURL=model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;CAsC/B,CAAC"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,eAAO,MAAM,mBAAmB;oBACR,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6ChC,CAAC"}
package/lib/cjs/model.js CHANGED
@@ -2,7 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MODEL_STATIC_MIXINS = void 0;
4
4
  const orm_1 = require("@spinajs/orm");
5
+ require("./builders.js");
5
6
  exports.MODEL_STATIC_MIXINS = {
7
+ async filter(filters) {
8
+ const { query } = (0, orm_1.createQuery)(this, orm_1.SelectQueryBuilder);
9
+ return query.filter(filters);
10
+ },
6
11
  filterColumns() {
7
12
  const modelDescriptor = this.getModelDescriptor();
8
13
  if (!modelDescriptor) {
@@ -22,17 +27,20 @@ exports.MODEL_STATIC_MIXINS = {
22
27
  }
23
28
  return {
24
29
  type: 'array',
25
- oneOf: modelDescriptor.Columns.filter((c) => c.Filterable !== null && c.Filterable !== undefined && c.Filterable.length > 0).map((c) => {
26
- return {
27
- type: 'object',
28
- required: ['field', 'value', 'operator'],
29
- properties: {
30
- field: { const: c.Name },
31
- value: { type: ['string', 'integer'] },
32
- operator: c.Filterable,
33
- },
34
- };
35
- }),
30
+ items: {
31
+ type: 'object',
32
+ anyOf: modelDescriptor.Columns.filter((c) => c.Filterable !== null && c.Filterable !== undefined && c.Filterable.length > 0).map((c) => {
33
+ return {
34
+ type: 'object',
35
+ required: ['Field', 'Value', 'Operator'],
36
+ properties: {
37
+ Field: { const: c.Name },
38
+ Value: { type: ['string', 'integer'] },
39
+ Operator: { type: 'string', enum: c.Filterable },
40
+ },
41
+ };
42
+ }),
43
+ },
36
44
  };
37
45
  },
38
46
  };
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":";;;AAAA,sCAA8D;AAEjD,QAAA,mBAAmB,GAAG;IACjC,aAAa;QACX,MAAM,eAAe,GAAI,IAAY,CAAC,kBAAkB,EAAsB,CAAC;QAE/E,IAAI,CAAC,eAAe,EAAE;YACpB,MAAM,IAAI,kBAAY,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,oBAAoB,CAAC,CAAC;SAC5E;QAED,OAAO,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACrI,OAAO;gBACL,MAAM,EAAE,CAAC,CAAC,IAAI;gBACd,SAAS,EAAE,CAAC,CAAC,UAAU;aACxB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,MAAM,eAAe,GAAI,IAAY,CAAC,kBAAkB,EAAsB,CAAC;QAE/E,IAAI,CAAC,eAAe,EAAE;YACpB,MAAM,IAAI,kBAAY,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,oBAAoB,CAAC,CAAC;SAC5E;QAED,OAAO;YACL,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrI,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC;oBACxC,UAAU,EAAE;wBACV,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE;wBACxB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;wBACtC,QAAQ,EAAE,CAAC,CAAC,UAAU;qBACvB;iBACF,CAAC;YACJ,CAAC,CAAC;SACH,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":";;;AAAA,sCAA+F;AAC/F,yBAAuB;AAGV,QAAA,mBAAmB,GAAG;IACjC,KAAK,CAAC,MAAM,CAAC,OAAkB;QAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,iBAAW,EAAC,IAAI,EAAE,wBAAkB,CAAC,CAAC;QACxD,OAAQ,KAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,aAAa;QACX,MAAM,eAAe,GAAI,IAAY,CAAC,kBAAkB,EAAsB,CAAC;QAE/E,IAAI,CAAC,eAAe,EAAE;YACpB,MAAM,IAAI,kBAAY,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,oBAAoB,CAAC,CAAC;SAC5E;QAED,OAAO,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACrI,OAAO;gBACL,MAAM,EAAE,CAAC,CAAC,IAAI;gBACd,SAAS,EAAE,CAAC,CAAC,UAAU;aACxB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,MAAM,eAAe,GAAI,IAAY,CAAC,kBAAkB,EAAsB,CAAC;QAE/E,IAAI,CAAC,eAAe,EAAE;YACpB,MAAM,IAAI,kBAAY,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,oBAAoB,CAAC,CAAC;SAC5E;QAED,OAAO;YACL,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACrI,OAAO;wBACL,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC;wBACxC,UAAU,EAAE;4BACV,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE;4BACxB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;4BACtC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE;yBACjD;qBACF,CAAC;gBACJ,CAAC,CAAC;aACH;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { IContainer } from '@spinajs/di';
2
+ import { IRoute, IRouteCall, IRouteParameter, ParameterType, RouteArgs } from '@spinajs/http';
3
+ import express from 'express';
4
+ export declare class FilterModelRouteArg extends RouteArgs {
5
+ protected Container: IContainer;
6
+ constructor(c: IContainer);
7
+ resolve(): Promise<void>;
8
+ get SupportedType(): ParameterType | string;
9
+ extract(callData: IRouteCall, param: IRouteParameter, req: express.Request, _res: express.Response, route: IRoute): Promise<{
10
+ CallData: IRouteCall;
11
+ Args: any;
12
+ }>;
13
+ }
14
+ //# sourceMappingURL=route-arg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-arg.d.ts","sourceRoot":"","sources":["../../src/route-arg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiC,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,qBAEa,mBAAoB,SAAQ,SAAS;IAChD,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;gBAEpB,CAAC,EAAE,UAAU;IAMnB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,IAAW,aAAa,IAAI,aAAa,GAAG,MAAM,CAEjD;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM;;;;CAY/H"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.FilterModelRouteArg = void 0;
13
+ const di_1 = require("@spinajs/di");
14
+ const http_1 = require("@spinajs/http");
15
+ let FilterModelRouteArg = class FilterModelRouteArg extends http_1.RouteArgs {
16
+ constructor(c) {
17
+ super();
18
+ this.Container = c;
19
+ }
20
+ async resolve() { }
21
+ get SupportedType() {
22
+ return "FilterModelRouteArg";
23
+ }
24
+ async extract(callData, param, req, _res, route) {
25
+ const filter = req.query[param.Name] ?? req.body[param.Name];
26
+ // we extract route param schema extract, not dectorator
27
+ // becouse mixins are not applied to model before controller init
28
+ const rParam = {
29
+ ...param,
30
+ Schema: param.Options.filterSchema()
31
+ };
32
+ let result = await this.tryHydrateParam(typeof filter === "string" ? JSON.parse(filter) : filter, rParam, route);
33
+ return { CallData: callData, Args: result };
34
+ }
35
+ };
36
+ exports.FilterModelRouteArg = FilterModelRouteArg;
37
+ exports.FilterModelRouteArg = FilterModelRouteArg = __decorate([
38
+ (0, di_1.Injectable)(),
39
+ (0, di_1.Inject)(di_1.Container),
40
+ __metadata("design:paramtypes", [Object])
41
+ ], FilterModelRouteArg);
42
+ //# sourceMappingURL=route-arg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-arg.js","sourceRoot":"","sources":["../../src/route-arg.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oCAAwE;AACxE,wCAA8F;AAKvF,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,gBAAS;IAGhD,YAAY,CAAa;QACvB,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,OAAO,KAAmB,CAAC;IAEjC,IAAW,aAAa;QACtB,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAsB,EAAE,GAAoB,EAAE,IAAsB,EAAE,KAAa;QAC5H,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE7D,wDAAwD;QACxD,iEAAiE;QACjE,MAAM,MAAM,GAAG;YACX,GAAG,KAAK;YACR,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE;SACvC,CAAA;QACD,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACjH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC9C,CAAC;CACF,CAAA;AA3BY,kDAAmB;8BAAnB,mBAAmB;IAF/B,IAAA,eAAU,GAAE;IACZ,IAAA,WAAM,EAAC,cAAS,CAAC;;GACL,mBAAmB,CA2B/B"}
@@ -1,9 +1,14 @@
1
- import { SqlOperator, WhereBuilder } from "@spinajs/orm";
1
+ import { SelectQueryBuilder, SqlOperator } from '@spinajs/orm';
2
2
  /**
3
3
  * Extend where builder with flter func old style ( by prototype )
4
4
  */
5
- WhereBuilder.prototype.filter = function (filters) {
5
+ SelectQueryBuilder.prototype.filter = function (filters) {
6
+ const columns = this._model.filterColumns();
6
7
  filters.forEach((filter) => {
8
+ if (!columns.find((c) => c.column === filter.Column)) {
9
+ throw new Error(`Column ${filter.Column} is not filterable`);
10
+ }
11
+ // TODO: in futere add full expression tree support ( OR, AND, maybe nesting queries for relations, EXISTS maybe ?)
7
12
  switch (filter.Operator) {
8
13
  case 'eq':
9
14
  this.andWhere(filter.Column, SqlOperator.EQ, filter.Value);
@@ -1 +1 @@
1
- {"version":3,"file":"builders.js","sourceRoot":"","sources":["../../src/builders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGzD;;GAEG;AACF,YAAY,CAAC,SAAiB,CAAC,MAAM,GAAG,UAAmC,OAAkB;IAC1F,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACzB,QAAQ,MAAM,CAAC,QAAQ,EAAE;YACvB,KAAK,IAAI;gBACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3D,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5D,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3D,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5D,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3D,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5D,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7D,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3D,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC/D,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChE,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC/C,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,YAAY;gBACf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpE,MAAM;SACT;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC,CAAA"}
1
+ {"version":3,"file":"builders.js","sourceRoot":"","sources":["../../src/builders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG/D;;GAEG;AACF,kBAAkB,CAAC,SAAiB,CAAC,MAAM,GAAG,UAAyC,OAAkB;IACxG,MAAM,OAAO,GAAqB,IAAI,CAAC,MAAc,CAAC,aAAa,EAAE,CAAC;IAEtE,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE;YACpD,MAAM,IAAI,KAAK,CAAC,UAAU,MAAM,CAAC,MAAM,oBAAoB,CAAC,CAAC;SAC9D;QAED,mHAAmH;QAEnH,QAAQ,MAAM,CAAC,QAAQ,EAAE;YACvB,KAAK,IAAI;gBACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3D,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5D,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3D,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5D,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3D,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5D,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7D,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3D,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC/D,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChE,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC/C,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,YAAY;gBACf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpE,MAAM;SACT;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
@@ -1,3 +1,6 @@
1
- import { FilterableOperators } from "./interfaces.js";
1
+ import { ModelBase } from '@spinajs/orm';
2
+ import { FilterableOperators } from './interfaces.js';
3
+ import { Constructor } from '@spinajs/di';
2
4
  export declare function Filterable(operators: FilterableOperators[]): any;
5
+ export declare function Filter(model: Constructor<ModelBase>): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
3
6
  //# sourceMappingURL=decorators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,wBAAgB,UAAU,CAAC,SAAS,EAAE,mBAAmB,EAAE,OAUxD"}
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAA8B,MAAM,cAAc,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAG,WAAW,EAAE,MAAM,aAAa,CAAC;AAG3C,wBAAgB,UAAU,CAAC,SAAS,EAAE,mBAAmB,EAAE,OAU1D;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,yGAEnD"}
@@ -1,4 +1,5 @@
1
- import { extractDecoratorDescriptor } from "@spinajs/orm";
1
+ import { extractDecoratorDescriptor } from '@spinajs/orm';
2
+ import { Parameter, Route } from '@spinajs/http';
2
3
  export function Filterable(operators) {
3
4
  return extractDecoratorDescriptor((model, _target, propertyKey) => {
4
5
  const columnDesc = model.Columns.find((c) => c.Name === propertyKey);
@@ -11,4 +12,7 @@ export function Filterable(operators) {
11
12
  }
12
13
  }, true);
13
14
  }
15
+ export function Filter(model) {
16
+ return Route(Parameter("FilterModelRouteArg", null, model));
17
+ }
14
18
  //# sourceMappingURL=decorators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAG5E,MAAM,UAAU,UAAU,CAAC,SAAgC;IACvD,OAAO,0BAA0B,CAAC,CAAC,KAAuB,EAAE,OAAY,EAAE,WAAmB,EAAE,EAAE;QAC/F,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,EAAE;YACf,mFAAmF;YACnF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAS,CAAC,CAAC;SACzE;aAAM;YACL,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC;SACnC;IACH,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAGvF,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,UAAU,UAAU,CAAC,SAAgC;IACzD,OAAO,0BAA0B,CAAC,CAAC,KAAuB,EAAE,OAAY,EAAE,WAAmB,EAAE,EAAE;QAC/F,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,EAAE;YACf,mFAAmF;YACnF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAS,CAAC,CAAC;SACzE;aAAM;YACL,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC;SACnC;IACH,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAA6B;IAClD,OAAO,KAAK,CAAC,SAAS,CAAC,qBAAqB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { FilterableOperators, IColumnFilter, IFilter } from './interfaces.js';
2
+ declare module '@spinajs/orm' {
3
+ interface IColumnDescriptor {
4
+ /**
5
+ * If set column is fitlerable by this operators
6
+ */
7
+ Filterable?: FilterableOperators[];
8
+ }
9
+ interface ISelectQueryBuilder {
10
+ /**
11
+ *
12
+ * Add filter to query
13
+ *
14
+ * @param filter
15
+ */
16
+ filter(filter: IFilter[]): this;
17
+ }
18
+ namespace ModelBase {
19
+ /**
20
+ * @returns json schema of filterable columns
21
+ */
22
+ function filterSchema(): any;
23
+ function filterColumns(): IColumnFilter[];
24
+ /**
25
+ *
26
+ * NOTE: this is not a part of orm, but a part of orm-http extension
27
+ * NOTE 2: explicit type for generic T is not possible due to typescript limitations
28
+ * we cannot infer type of T from function arguments couse this is augumentation
29
+ *
30
+ * @param filters
31
+ */
32
+ function filter<T extends ModelBase<unknown>>(filters: IFilter[]): Promise<Array<T>>;
33
+ }
34
+ }
35
+ //# sourceMappingURL=extension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../src/extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE9E,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAiB,iBAAiB;QAChC;;WAEG;QACH,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;KACpC;IAED,UAAiB,mBAAmB;QAClC;;;;;WAKG;QACH,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;KACjC;IAED,UAAU,SAAS,CAAC;QAElB;;WAEG;QACH,SAAgB,YAAY,IAAI,GAAG,CAAC;QAEpC,SAAgB,aAAa,IAAI,aAAa,EAAE,CAAC;QAEjD;;;;;;;WAOG;QACH,SAAgB,MAAM,CAAC,CAAC,SAAS,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7F;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../../src/extension.ts"],"names":[],"mappings":""}
@@ -4,7 +4,8 @@ import { IContainer, Bootstrapper } from '@spinajs/di';
4
4
  export * from "./interfaces.js";
5
5
  export * from "./model.js";
6
6
  export * from "./decorators.js";
7
- export * from "./builders.js";
7
+ export * from './extension.js';
8
+ export * from './builders.js';
8
9
  export declare class AsDbModel extends RouteArgs {
9
10
  get SupportedType(): string;
10
11
  extract(callData: IRouteCall, param: IRouteParameter, req: sRequest): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAgB,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,UAAU,EAAoB,aAAa,EAAE,WAAW,EAAE,OAAO,IAAI,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1I,OAAO,EAAE,UAAU,EAAqC,YAAY,EAAM,MAAM,aAAa,CAAC;AAG9F,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAE9B,qBACa,SAAU,SAAQ,SAAS;IACtC,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ;;;;CAajF;AAED,qBACa,WAAY,SAAQ,SAAS;IAExC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;IAGhC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAEb,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ;;;;CA0BjF;AAED,qBAAa,eAAgB,SAAQ,WAAW;IACjC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;CAS3E;AAED,wBAAgB,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,yGAE3D;AAED,wBAAgB,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,yGAE7D;AAED,qBACa,mBAAoB,SAAQ,YAAY;IACtC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAgBxC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAgB,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,UAAU,EAAoB,aAAa,EAAE,WAAW,EAAE,OAAO,IAAI,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1I,OAAO,EAAE,UAAU,EAAqC,YAAY,EAAM,MAAM,aAAa,CAAC;AAG9F,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAE9B,qBACa,SAAU,SAAQ,SAAS;IACtC,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ;;;;CAajF;AAED,qBACa,WAAY,SAAQ,SAAS;IAExC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;IAGhC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAEb,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ;;;;CA0BjF;AAED,qBAAa,eAAgB,SAAQ,WAAW;IACjC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;CAS3E;AAED,wBAAgB,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,yGAE3D;AAED,wBAAgB,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,yGAE7D;AAED,qBACa,mBAAoB,SAAQ,YAAY;IACtC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAgBxC"}
package/lib/mjs/index.js CHANGED
@@ -14,7 +14,8 @@ import { MODEL_STATIC_MIXINS } from './model.js';
14
14
  export * from "./interfaces.js";
15
15
  export * from "./model.js";
16
16
  export * from "./decorators.js";
17
- export * from "./builders.js";
17
+ export * from './extension.js';
18
+ export * from './builders.js';
18
19
  let AsDbModel = class AsDbModel extends RouteArgs {
19
20
  get SupportedType() {
20
21
  return 'AsDbModel';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -17,31 +17,7 @@ export interface ITransformOptions {
17
17
  perPage?: number;
18
18
  model: Class<ModelBase<unknown>>;
19
19
  }
20
- declare module '@spinajs/orm' {
21
- interface IColumnDescriptor {
22
- /**
23
- * If set column is fitlerable by this operators
24
- */
25
- Filterable?: FilterableOperators[];
26
- }
27
- interface IWhereBuildet<T> {
28
- /**
29
- *
30
- * Add filter to query
31
- *
32
- * @param filter
33
- */
34
- filter(filter: IFilter[]): this;
35
- }
36
- interface IModelBase {
37
- /**
38
- * @returns json schema of filterable columns
39
- */
40
- filterSchema(): any;
41
- filterColumns(): IColumFilter[];
42
- }
43
- }
44
- export interface IColumFilter {
20
+ export interface IColumnFilter {
45
21
  column: string;
46
22
  operators: FilterableOperators[];
47
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGpD,qBACa,qBAAqB;IACzB,IAAI,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,EAAE,GAAG,CAAC;QAChB,aAAa,EAAE,GAAG,CAAC;KACpB,CAAQ;gBAEG,IAAI,EAAE,GAAG;CAGtB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;CAClC;AAED,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAiB,iBAAiB;QAChC;;WAEG;QACH,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;KACpC;IAED,UAAiB,aAAa,CAAC,CAAC;QAE9B;;;;;WAKG;QACH,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;KACjC;IAED,UAAiB,UAAU;QAEzB;;WAEG;QACH,YAAY,IAAI,GAAG,CAAC;QAEpB,aAAa,IAAI,YAAY,EAAE,CAAC;KACjC;CACF;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGpD,qBACa,qBAAqB;IACzB,IAAI,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,EAAE,GAAG,CAAC;QAChB,aAAa,EAAE,GAAG,CAAC;KACpB,CAAQ;gBAEG,IAAI,EAAE,GAAG;CAGtB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC"}