@spinajs/orm-http 2.0.344 → 2.0.346

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,7 @@
1
1
  import { ModelBase } from '@spinajs/orm';
2
2
  import { FilterableOperators } from './interfaces.js';
3
3
  import { Constructor } from '@spinajs/di';
4
- export declare function Filterable(operators: FilterableOperators[]): any;
4
+ export declare function Filterable(operatorsOrClass: FilterableOperators[] | Constructor<ModelBase>, isAggregate?: boolean): any;
5
5
  export type CustomFilterSchema = {
6
6
  Column: string;
7
7
  Operators: FilterableOperators[];
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAsC,MAAM,cAAc,CAAC;AAC/F,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,MAAM,MAAM,kBAAkB,GAAI;IAAE,MAAM,EAAG,MAAM,CAAC;IAAC,SAAS,EAAG,mBAAmB,EAAE,CAAA;CAAC,CAAC;AAExF,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,kBAAkB,EAAE,yGAE1E"}
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAkF,MAAM,cAAc,CAAC;AAC3I,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAiB,MAAM,aAAa,CAAC;AAGzD,wBAAgB,UAAU,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,GAAG,WAAW,CAAC,SAAS,CAAC,EAAG,WAAW,CAAC,EAAG,OAAO,OAiCnH;AAED,MAAM,MAAM,kBAAkB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,mBAAmB,EAAE,CAAA;CAAE,CAAC;AAEtF,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,kBAAkB,EAAE,yGAE1E"}
@@ -2,22 +2,44 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Filter = exports.Filterable = void 0;
4
4
  const orm_1 = require("@spinajs/orm");
5
+ const di_1 = require("@spinajs/di");
5
6
  const http_1 = require("@spinajs/http");
6
- function Filterable(operators) {
7
+ function Filterable(operatorsOrClass, isAggregate) {
7
8
  return (0, orm_1.extractDecoratorPropertyDescriptor)((model, _target, propertyKey) => {
9
+ if (model.FilterableColumns === undefined) {
10
+ model.FilterableColumns = new Map();
11
+ }
12
+ if ((0, di_1.isConstructor)(operatorsOrClass)) {
13
+ // if we have @belonsgTo relation we add to this filter schema all avaible filters
14
+ // from the related model
15
+ const descriptor = (0, orm_1.extractModelDescriptor)(operatorsOrClass);
16
+ if (descriptor.FilterableColumns) {
17
+ const keys = [...descriptor.FilterableColumns.keys()];
18
+ const ops = keys.map((k) => {
19
+ return [`${propertyKey}.${k}`, descriptor.FilterableColumns.get(k)];
20
+ });
21
+ model.FilterableColumns = new Map([...model.FilterableColumns.entries(), ...ops]);
22
+ }
23
+ }
24
+ else {
25
+ if (!operatorsOrClass) {
26
+ throw new Error(`Filterable decorator on ${model.Name} model, property ${propertyKey} must have operators defined`);
27
+ }
28
+ model.FilterableColumns.set(propertyKey, operatorsOrClass);
29
+ }
8
30
  const columnDesc = model.Columns.find((c) => c.Name === propertyKey);
9
31
  if (!columnDesc) {
10
32
  // we dont want to fill all props, they will be loaded from db and mergeg with this
11
- model.Columns.push({ Name: propertyKey, Filterable: operators });
33
+ model.Columns.push((0, orm_1._prepareColumnDesc)({ Name: propertyKey, Aggregate: isAggregate ?? false }));
12
34
  }
13
35
  else {
14
- columnDesc.Filterable = operators;
36
+ columnDesc.Aggregate = isAggregate ?? false;
15
37
  }
16
38
  });
17
39
  }
18
40
  exports.Filterable = Filterable;
19
41
  function Filter(model) {
20
- return (0, http_1.Route)((0, http_1.Parameter)("FilterModelRouteArg", null, model));
42
+ return (0, http_1.Route)((0, http_1.Parameter)('FilterModelRouteArg', null, model));
21
43
  }
22
44
  exports.Filter = Filter;
23
45
  //# sourceMappingURL=decorators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":";;;AAAA,sCAA+F;AAG/F,wCAAiD;AAEjD,SAAgB,UAAU,CAAC,SAAgC;IACzD,OAAO,IAAA,wCAAkC,EAAC,CAAC,KAAuB,EAAE,OAAY,EAAE,WAAmB,EAAE,EAAE;QACvG,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,CAAC,CAAC;AACL,CAAC;AAVD,gCAUC;AAID,SAAgB,MAAM,CAAC,KAAoD;IACzE,OAAO,IAAA,YAAK,EAAC,IAAA,gBAAS,EAAC,qBAAqB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7D,CAAC;AAFD,wBAEC"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":";;;AAAA,sCAA2I;AAE3I,oCAAyD;AACzD,wCAAiD;AAEjD,SAAgB,UAAU,CAAC,gBAAgE,EAAG,WAAsB;IAClH,OAAO,IAAA,wCAAkC,EAAC,CAAC,KAAuB,EAAE,OAAY,EAAE,WAAmB,EAAE,EAAE;QACvG,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,EAAE;YACzC,KAAK,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAiC,CAAC;SACpE;QAED,IAAI,IAAA,kBAAa,EAAC,gBAAgB,CAAC,EAAE;YACnC,kFAAkF;YAClF,yBAAyB;YACzB,MAAM,UAAU,GAAG,IAAA,4BAAsB,EAAC,gBAAgB,CAAC,CAAC;YAC5D,IAAI,UAAU,CAAC,iBAAiB,EAAE;gBAChC,MAAM,IAAI,GAAG,CAAC,GAAG,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACzB,OAAO,CAAC,GAAG,WAAW,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtE,CAAC,CAAC,CAAC;gBAEH,KAAK,CAAC,iBAAiB,GAAG,IAAI,GAAG,CAAgC,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,GAAG,GAAU,CAAC,CAAC,CAAC;aACzH;SACF;aAAM;YACL,IAAI,CAAC,gBAAgB,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,IAAI,oBAAoB,WAAW,8BAA8B,CAAC,CAAC;aACrH;YACD,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;SAC5D;QAED,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,IAAA,wBAAkB,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;SAChG;aAAM;YACL,UAAU,CAAC,SAAS,GAAG,WAAW,IAAI,KAAK,CAAC;SAC7C;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAjCD,gCAiCC;AAID,SAAgB,MAAM,CAAC,KAAoD;IACzE,OAAO,IAAA,YAAK,EAAC,IAAA,gBAAS,EAAC,qBAAqB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC;AAFD,wBAEC"}
package/lib/cjs/dto.d.ts CHANGED
@@ -1,10 +1,11 @@
1
+ import { SortOrder } from '@spinajs/orm';
1
2
  export declare class PaginationDTO {
2
3
  limit: number;
3
4
  page: number;
4
5
  constructor(data: Partial<PaginationDTO>);
5
6
  }
6
7
  export declare class OrderDTO {
7
- order: 'ASC' | 'DESC';
8
+ order: SortOrder;
8
9
  column: string;
9
10
  constructor(data: Partial<OrderDTO>);
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dto.d.ts","sourceRoot":"","sources":["../../src/dto.ts"],"names":[],"mappings":"AAEA,qBASa,aAAa;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;gBAER,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC;CAGzC;AAED,qBAQa,QAAQ;IACZ,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;gBAEV,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC;CAGpC"}
1
+ {"version":3,"file":"dto.d.ts","sourceRoot":"","sources":["../../src/dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,qBASa,aAAa;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;gBAER,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC;CAGzC;AAED,qBAQa,QAAQ;IACZ,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;gBAEV,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC;CAGpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dto.js","sourceRoot":"","sources":["../../src/dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA6C;AAWtC,IAAM,aAAa,GAAnB,MAAM,aAAa;IAIxB,YAAY,IAA4B;QACtC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AAPY,sCAAa;wBAAb,aAAa;IATzB,IAAA,mBAAM,EAAC;QACN,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,4BAA4B;QACjC,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;YACrC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;YACtC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;SACrC;KACF,CAAC;;GACW,aAAa,CAOzB;AAUM,IAAM,QAAQ,GAAd,MAAM,QAAQ;IAInB,YAAY,IAAuB;QACjC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AAPY,4BAAQ;mBAAR,QAAQ;IARpB,IAAA,mBAAM,EAAC;QACN,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,uBAAuB;QAC5B,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAC,KAAK,EAAC,MAAM,CAAC,EAAE;YAC7D,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC3B;KACF,CAAC;;GACW,QAAQ,CAOpB"}
1
+ {"version":3,"file":"dto.js","sourceRoot":"","sources":["../../src/dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,oDAA6C;AAWtC,IAAM,aAAa,GAAnB,MAAM,aAAa;IAIxB,YAAY,IAA4B;QACtC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AAPY,sCAAa;wBAAb,aAAa;IATzB,IAAA,mBAAM,EAAC;QACN,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,4BAA4B;QACjC,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;YACrC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;YACtC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;SACrC;KACF,CAAC;;GACW,aAAa,CAOzB;AAUM,IAAM,QAAQ,GAAd,MAAM,QAAQ;IAInB,YAAY,IAAuB;QACjC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AAPY,4BAAQ;mBAAR,QAAQ;IARpB,IAAA,mBAAM,EAAC;QACN,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,uBAAuB;QAC5B,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAC,KAAK,EAAC,MAAM,CAAC,EAAE;YAC7D,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC3B;KACF,CAAC;;GACW,QAAQ,CAOpB"}
@@ -1,10 +1,10 @@
1
1
  import { FilterableOperators, IColumnFilter, IFilter } from './interfaces.js';
2
2
  declare module '@spinajs/orm' {
3
- interface IColumnDescriptor {
3
+ interface IModelDescriptor {
4
4
  /**
5
5
  * If set column is fitlerable by this operators
6
6
  */
7
- Filterable?: FilterableOperators[];
7
+ FilterableColumns?: Map<string, FilterableOperators[]>;
8
8
  }
9
9
  interface ISelectQueryBuilder {
10
10
  /**
@@ -1 +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"}
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,gBAAgB;QAC/B;;WAEG;QACH,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAC,mBAAmB,EAAE,CAAC,CAAC;KACvD;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"}
@@ -1,10 +1,10 @@
1
1
  import './builders.js';
2
- import { IFilter } from './interfaces.js';
2
+ import { FilterableOperators, IFilter } from './interfaces.js';
3
3
  export declare const MODEL_STATIC_MIXINS: {
4
4
  filter(filters: IFilter[]): Promise<any>;
5
5
  filterColumns(): {
6
6
  column: string;
7
- operators: import("./interfaces.js").FilterableOperators[];
7
+ operators: FilterableOperators[];
8
8
  }[];
9
9
  filterSchema(): {
10
10
  type: string;
@@ -22,7 +22,7 @@ export declare const MODEL_STATIC_MIXINS: {
22
22
  };
23
23
  Operator: {
24
24
  type: string;
25
- enum: import("./interfaces.js").FilterableOperators[];
25
+ enum: FilterableOperators[];
26
26
  };
27
27
  };
28
28
  }[];
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/D,eAAO,MAAM,mBAAmB;oBACR,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6ChC,CAAC"}
package/lib/cjs/model.js CHANGED
@@ -13,10 +13,10 @@ exports.MODEL_STATIC_MIXINS = {
13
13
  if (!modelDescriptor) {
14
14
  throw new orm_1.OrmException(`Model ${this.constructor.name} has no descriptor`);
15
15
  }
16
- return modelDescriptor.Columns.filter((c) => c.Filterable !== null && c.Filterable !== undefined && c.Filterable.length > 0).map((c) => {
16
+ return [...modelDescriptor.FilterableColumns.entries()].map(([key, val]) => {
17
17
  return {
18
- column: c.Name,
19
- operators: c.Filterable,
18
+ column: key,
19
+ operators: val,
20
20
  };
21
21
  });
22
22
  },
@@ -29,14 +29,14 @@ exports.MODEL_STATIC_MIXINS = {
29
29
  type: 'array',
30
30
  items: {
31
31
  type: 'object',
32
- anyOf: modelDescriptor.Columns.filter((c) => c.Filterable !== null && c.Filterable !== undefined && c.Filterable.length > 0).map((c) => {
32
+ anyOf: [...modelDescriptor.FilterableColumns.entries()].map(([key, val]) => {
33
33
  return {
34
34
  type: 'object',
35
35
  required: ['Column', 'Value', 'Operator'],
36
36
  properties: {
37
- Column: { const: c.Name },
37
+ Column: { const: key },
38
38
  Value: { type: ['string', 'integer', 'array'] },
39
- Operator: { type: 'string', enum: c.Filterable },
39
+ Operator: { type: 'string', enum: val },
40
40
  },
41
41
  };
42
42
  }),
@@ -1 +1 @@
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,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC;wBACzC,UAAU,EAAE;4BACV,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE;4BACzB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE;4BAC/C,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"}
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,CAAC,GAAG,eAAe,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAmC,EAAE,EAAE;YAC3G,OAAO;gBACL,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,GAAG;aACf,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,CAAC,GAAG,eAAe,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAkC,EAAE,EAAE;oBAC1G,OAAO;wBACL,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC;wBACzC,UAAU,EAAE;4BACV,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;4BACtB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE;4BAC/C,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE;yBACxC;qBACF,CAAC;gBACJ,CAAC,CAAC;aACH;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { ModelBase } from '@spinajs/orm';
2
2
  import { FilterableOperators } from './interfaces.js';
3
3
  import { Constructor } from '@spinajs/di';
4
- export declare function Filterable(operators: FilterableOperators[]): any;
4
+ export declare function Filterable(operatorsOrClass: FilterableOperators[] | Constructor<ModelBase>, isAggregate?: boolean): any;
5
5
  export type CustomFilterSchema = {
6
6
  Column: string;
7
7
  Operators: FilterableOperators[];
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAsC,MAAM,cAAc,CAAC;AAC/F,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,MAAM,MAAM,kBAAkB,GAAI;IAAE,MAAM,EAAG,MAAM,CAAC;IAAC,SAAS,EAAG,mBAAmB,EAAE,CAAA;CAAC,CAAC;AAExF,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,kBAAkB,EAAE,yGAE1E"}
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAkF,MAAM,cAAc,CAAC;AAC3I,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAiB,MAAM,aAAa,CAAC;AAGzD,wBAAgB,UAAU,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,GAAG,WAAW,CAAC,SAAS,CAAC,EAAG,WAAW,CAAC,EAAG,OAAO,OAiCnH;AAED,MAAM,MAAM,kBAAkB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,mBAAmB,EAAE,CAAA;CAAE,CAAC;AAEtF,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,kBAAkB,EAAE,yGAE1E"}
@@ -1,18 +1,40 @@
1
- import { extractDecoratorPropertyDescriptor } from '@spinajs/orm';
1
+ import { _prepareColumnDesc, extractDecoratorPropertyDescriptor, extractModelDescriptor } from '@spinajs/orm';
2
+ import { isConstructor } from '@spinajs/di';
2
3
  import { Parameter, Route } from '@spinajs/http';
3
- export function Filterable(operators) {
4
+ export function Filterable(operatorsOrClass, isAggregate) {
4
5
  return extractDecoratorPropertyDescriptor((model, _target, propertyKey) => {
6
+ if (model.FilterableColumns === undefined) {
7
+ model.FilterableColumns = new Map();
8
+ }
9
+ if (isConstructor(operatorsOrClass)) {
10
+ // if we have @belonsgTo relation we add to this filter schema all avaible filters
11
+ // from the related model
12
+ const descriptor = extractModelDescriptor(operatorsOrClass);
13
+ if (descriptor.FilterableColumns) {
14
+ const keys = [...descriptor.FilterableColumns.keys()];
15
+ const ops = keys.map((k) => {
16
+ return [`${propertyKey}.${k}`, descriptor.FilterableColumns.get(k)];
17
+ });
18
+ model.FilterableColumns = new Map([...model.FilterableColumns.entries(), ...ops]);
19
+ }
20
+ }
21
+ else {
22
+ if (!operatorsOrClass) {
23
+ throw new Error(`Filterable decorator on ${model.Name} model, property ${propertyKey} must have operators defined`);
24
+ }
25
+ model.FilterableColumns.set(propertyKey, operatorsOrClass);
26
+ }
5
27
  const columnDesc = model.Columns.find((c) => c.Name === propertyKey);
6
28
  if (!columnDesc) {
7
29
  // we dont want to fill all props, they will be loaded from db and mergeg with this
8
- model.Columns.push({ Name: propertyKey, Filterable: operators });
30
+ model.Columns.push(_prepareColumnDesc({ Name: propertyKey, Aggregate: isAggregate ?? false }));
9
31
  }
10
32
  else {
11
- columnDesc.Filterable = operators;
33
+ columnDesc.Aggregate = isAggregate ?? false;
12
34
  }
13
35
  });
14
36
  }
15
37
  export function Filter(model) {
16
- return Route(Parameter("FilterModelRouteArg", null, model));
38
+ return Route(Parameter('FilterModelRouteArg', null, model));
17
39
  }
18
40
  //# sourceMappingURL=decorators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,kCAAkC,EAAE,MAAM,cAAc,CAAC;AAG/F,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,UAAU,UAAU,CAAC,SAAgC;IACzD,OAAO,kCAAkC,CAAC,CAAC,KAAuB,EAAE,OAAY,EAAE,WAAmB,EAAE,EAAE;QACvG,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,CAAC,CAAC;AACL,CAAC;AAID,MAAM,UAAU,MAAM,CAAC,KAAoD;IACzE,OAAO,KAAK,CAAC,SAAS,CAAC,qBAAqB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,kBAAkB,EAAE,kCAAkC,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3I,OAAO,EAAe,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,UAAU,UAAU,CAAC,gBAAgE,EAAG,WAAsB;IAClH,OAAO,kCAAkC,CAAC,CAAC,KAAuB,EAAE,OAAY,EAAE,WAAmB,EAAE,EAAE;QACvG,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,EAAE;YACzC,KAAK,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAiC,CAAC;SACpE;QAED,IAAI,aAAa,CAAC,gBAAgB,CAAC,EAAE;YACnC,kFAAkF;YAClF,yBAAyB;YACzB,MAAM,UAAU,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;YAC5D,IAAI,UAAU,CAAC,iBAAiB,EAAE;gBAChC,MAAM,IAAI,GAAG,CAAC,GAAG,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACzB,OAAO,CAAC,GAAG,WAAW,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtE,CAAC,CAAC,CAAC;gBAEH,KAAK,CAAC,iBAAiB,GAAG,IAAI,GAAG,CAAgC,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,GAAG,GAAU,CAAC,CAAC,CAAC;aACzH;SACF;aAAM;YACL,IAAI,CAAC,gBAAgB,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,IAAI,oBAAoB,WAAW,8BAA8B,CAAC,CAAC;aACrH;YACD,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;SAC5D;QAED,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,kBAAkB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;SAChG;aAAM;YACL,UAAU,CAAC,SAAS,GAAG,WAAW,IAAI,KAAK,CAAC;SAC7C;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAID,MAAM,UAAU,MAAM,CAAC,KAAoD;IACzE,OAAO,KAAK,CAAC,SAAS,CAAC,qBAAqB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC"}
package/lib/mjs/dto.d.ts CHANGED
@@ -1,10 +1,11 @@
1
+ import { SortOrder } from '@spinajs/orm';
1
2
  export declare class PaginationDTO {
2
3
  limit: number;
3
4
  page: number;
4
5
  constructor(data: Partial<PaginationDTO>);
5
6
  }
6
7
  export declare class OrderDTO {
7
- order: 'ASC' | 'DESC';
8
+ order: SortOrder;
8
9
  column: string;
9
10
  constructor(data: Partial<OrderDTO>);
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dto.d.ts","sourceRoot":"","sources":["../../src/dto.ts"],"names":[],"mappings":"AAEA,qBASa,aAAa;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;gBAER,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC;CAGzC;AAED,qBAQa,QAAQ;IACZ,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;gBAEV,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC;CAGpC"}
1
+ {"version":3,"file":"dto.d.ts","sourceRoot":"","sources":["../../src/dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,qBASa,aAAa;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;gBAER,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC;CAGzC;AAED,qBAQa,QAAQ;IACZ,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;gBAEV,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC;CAGpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dto.js","sourceRoot":"","sources":["../../src/dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAWtC,IAAM,aAAa,GAAnB,MAAM,aAAa;IAIxB,YAAY,IAA4B;QACtC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AAPY,aAAa;IATzB,MAAM,CAAC;QACN,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,4BAA4B;QACjC,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;YACrC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;YACtC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;SACrC;KACF,CAAC;;GACW,aAAa,CAOzB;;AAUM,IAAM,QAAQ,GAAd,MAAM,QAAQ;IAInB,YAAY,IAAuB;QACjC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AAPY,QAAQ;IARpB,MAAM,CAAC;QACN,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,uBAAuB;QAC5B,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAC,KAAK,EAAC,MAAM,CAAC,EAAE;YAC7D,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC3B;KACF,CAAC;;GACW,QAAQ,CAOpB"}
1
+ {"version":3,"file":"dto.js","sourceRoot":"","sources":["../../src/dto.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAWtC,IAAM,aAAa,GAAnB,MAAM,aAAa;IAIxB,YAAY,IAA4B;QACtC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AAPY,aAAa;IATzB,MAAM,CAAC;QACN,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,4BAA4B;QACjC,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;YACrC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;YACtC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;SACrC;KACF,CAAC;;GACW,aAAa,CAOzB;;AAUM,IAAM,QAAQ,GAAd,MAAM,QAAQ;IAInB,YAAY,IAAuB;QACjC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AAPY,QAAQ;IARpB,MAAM,CAAC;QACN,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,uBAAuB;QAC5B,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAC,KAAK,EAAC,MAAM,CAAC,EAAE;YAC7D,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC3B;KACF,CAAC;;GACW,QAAQ,CAOpB"}
@@ -1,10 +1,10 @@
1
1
  import { FilterableOperators, IColumnFilter, IFilter } from './interfaces.js';
2
2
  declare module '@spinajs/orm' {
3
- interface IColumnDescriptor {
3
+ interface IModelDescriptor {
4
4
  /**
5
5
  * If set column is fitlerable by this operators
6
6
  */
7
- Filterable?: FilterableOperators[];
7
+ FilterableColumns?: Map<string, FilterableOperators[]>;
8
8
  }
9
9
  interface ISelectQueryBuilder {
10
10
  /**
@@ -1 +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"}
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,gBAAgB;QAC/B;;WAEG;QACH,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAC,mBAAmB,EAAE,CAAC,CAAC;KACvD;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"}
@@ -1,10 +1,10 @@
1
1
  import './builders.js';
2
- import { IFilter } from './interfaces.js';
2
+ import { FilterableOperators, IFilter } from './interfaces.js';
3
3
  export declare const MODEL_STATIC_MIXINS: {
4
4
  filter(filters: IFilter[]): Promise<any>;
5
5
  filterColumns(): {
6
6
  column: string;
7
- operators: import("./interfaces.js").FilterableOperators[];
7
+ operators: FilterableOperators[];
8
8
  }[];
9
9
  filterSchema(): {
10
10
  type: string;
@@ -22,7 +22,7 @@ export declare const MODEL_STATIC_MIXINS: {
22
22
  };
23
23
  Operator: {
24
24
  type: string;
25
- enum: import("./interfaces.js").FilterableOperators[];
25
+ enum: FilterableOperators[];
26
26
  };
27
27
  };
28
28
  }[];
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/D,eAAO,MAAM,mBAAmB;oBACR,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6ChC,CAAC"}
package/lib/mjs/model.js CHANGED
@@ -10,10 +10,10 @@ export const MODEL_STATIC_MIXINS = {
10
10
  if (!modelDescriptor) {
11
11
  throw new OrmException(`Model ${this.constructor.name} has no descriptor`);
12
12
  }
13
- return modelDescriptor.Columns.filter((c) => c.Filterable !== null && c.Filterable !== undefined && c.Filterable.length > 0).map((c) => {
13
+ return [...modelDescriptor.FilterableColumns.entries()].map(([key, val]) => {
14
14
  return {
15
- column: c.Name,
16
- operators: c.Filterable,
15
+ column: key,
16
+ operators: val,
17
17
  };
18
18
  });
19
19
  },
@@ -26,14 +26,14 @@ export const MODEL_STATIC_MIXINS = {
26
26
  type: 'array',
27
27
  items: {
28
28
  type: 'object',
29
- anyOf: modelDescriptor.Columns.filter((c) => c.Filterable !== null && c.Filterable !== undefined && c.Filterable.length > 0).map((c) => {
29
+ anyOf: [...modelDescriptor.FilterableColumns.entries()].map(([key, val]) => {
30
30
  return {
31
31
  type: 'object',
32
32
  required: ['Column', 'Value', 'Operator'],
33
33
  properties: {
34
- Column: { const: c.Name },
34
+ Column: { const: key },
35
35
  Value: { type: ['string', 'integer', 'array'] },
36
- Operator: { type: 'string', enum: c.Filterable },
36
+ Operator: { type: 'string', enum: val },
37
37
  },
38
38
  };
39
39
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC/F,OAAO,eAAe,CAAC;AAGvB,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,KAAK,CAAC,MAAM,CAAC,OAAkB;QAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,kBAAkB,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,YAAY,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,YAAY,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,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC;wBACzC,UAAU,EAAE;4BACV,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE;4BACzB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE;4BAC/C,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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC/F,OAAO,eAAe,CAAC;AAGvB,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,KAAK,CAAC,MAAM,CAAC,OAAkB;QAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,kBAAkB,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,YAAY,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,oBAAoB,CAAC,CAAC;SAC5E;QAED,OAAO,CAAC,GAAG,eAAe,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAmC,EAAE,EAAE;YAC3G,OAAO;gBACL,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,GAAG;aACf,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,YAAY,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,CAAC,GAAG,eAAe,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAkC,EAAE,EAAE;oBAC1G,OAAO;wBACL,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC;wBACzC,UAAU,EAAE;4BACV,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;4BACtB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE;4BAC/C,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE;yBACxC;qBACF,CAAC;gBACJ,CAAC,CAAC;aACH;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}