@spinajs/orm-http 2.0.491 → 2.0.494

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 (44) hide show
  1. package/README.md +100 -100
  2. package/lib/cjs/decorators.d.ts +1 -1
  3. package/lib/cjs/decorators.d.ts.map +1 -1
  4. package/lib/cjs/decorators.js +2 -0
  5. package/lib/cjs/decorators.js.map +1 -1
  6. package/lib/cjs/dto.d.ts +4 -4
  7. package/lib/cjs/dto.d.ts.map +1 -1
  8. package/lib/cjs/dto.js.map +1 -1
  9. package/lib/cjs/extension.d.ts +5 -2
  10. package/lib/cjs/extension.d.ts.map +1 -1
  11. package/lib/cjs/index.d.ts +12 -3
  12. package/lib/cjs/index.d.ts.map +1 -1
  13. package/lib/cjs/index.js +36 -6
  14. package/lib/cjs/index.js.map +1 -1
  15. package/lib/cjs/interfaces.d.ts +8 -3
  16. package/lib/cjs/interfaces.d.ts.map +1 -1
  17. package/lib/cjs/interfaces.js.map +1 -1
  18. package/lib/cjs/model.d.ts +2 -2
  19. package/lib/cjs/model.d.ts.map +1 -1
  20. package/lib/cjs/model.js +1 -1
  21. package/lib/cjs/model.js.map +1 -1
  22. package/lib/mjs/decorators.d.ts +1 -1
  23. package/lib/mjs/decorators.d.ts.map +1 -1
  24. package/lib/mjs/decorators.js +2 -0
  25. package/lib/mjs/decorators.js.map +1 -1
  26. package/lib/mjs/dto.d.ts +4 -4
  27. package/lib/mjs/dto.d.ts.map +1 -1
  28. package/lib/mjs/dto.js.map +1 -1
  29. package/lib/mjs/extension.d.ts +5 -2
  30. package/lib/mjs/extension.d.ts.map +1 -1
  31. package/lib/mjs/index.d.ts +12 -3
  32. package/lib/mjs/index.d.ts.map +1 -1
  33. package/lib/mjs/index.js +36 -6
  34. package/lib/mjs/index.js.map +1 -1
  35. package/lib/mjs/interfaces.d.ts +8 -3
  36. package/lib/mjs/interfaces.d.ts.map +1 -1
  37. package/lib/mjs/interfaces.js.map +1 -1
  38. package/lib/mjs/model.d.ts +2 -2
  39. package/lib/mjs/model.d.ts.map +1 -1
  40. package/lib/mjs/model.js +1 -1
  41. package/lib/mjs/model.js.map +1 -1
  42. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  43. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  44. package/package.json +70 -68
package/README.md CHANGED
@@ -1,100 +1,100 @@
1
- # `@spinajs/orm-http`
2
-
3
- Glue between [`@spinajs/orm`](../orm) and `@spinajs/http`: route arguments that load or build
4
- models straight from a request, a declarative filtering layer, and DTO fields that resolve to
5
- database entities.
6
-
7
- It does **not** generate controllers or routes. You write ordinary `@spinajs/http` controllers;
8
- this package removes the boilerplate inside them.
9
-
10
- ## Install
11
-
12
- ```bash
13
- npm install @spinajs/orm-http
14
- ```
15
-
16
- Importing it is enough — its bootstrapper registers itself with DI and runs when the ORM
17
- resolves.
18
-
19
- ## Usage
20
-
21
- ```ts
22
- import { BaseController, BasePath, Get, Post, Ok } from '@spinajs/http';
23
- import { Connection, Model, ModelBase, Primary } from '@spinajs/orm';
24
- import { FromModel, AsModel, Filter, Filterable, IFilterRequest } from '@spinajs/orm-http';
25
-
26
- @Connection('default')
27
- @Model('articles')
28
- export class Article extends ModelBase<Article> {
29
- @Primary()
30
- public Id: number;
31
-
32
- @Filterable(['eq', 'like'])
33
- public Title: string;
34
- }
35
-
36
- @BasePath('articles')
37
- export class ArticleController extends BaseController {
38
- /** GET /articles/:article — loaded by primary key, 404 when missing. */
39
- @Get(':article')
40
- public one(@FromModel() article: Article) {
41
- return new Ok(article.dehydrate());
42
- }
43
-
44
- /** GET /articles?filter={"op":"and","filters":[{"Column":"Title","Operator":"like","Value":"x"}]} */
45
- @Get()
46
- public async list(@Filter(Article) filter: IFilterRequest) {
47
- const rows = await Article.select().filter(filter.filters, filter.op);
48
- return new Ok(rows.map((r) => r.dehydrate()));
49
- }
50
-
51
- /** POST /articles — hydrated from the body, not fetched or saved. */
52
- @Post()
53
- public async create(@AsModel() article: Article) {
54
- await article.insert();
55
- return new Ok(article.dehydrate());
56
- }
57
- }
58
- ```
59
-
60
- ## What it adds
61
-
62
- | Feature | Entry point |
63
- | --- | --- |
64
- | Load a model from a route / query / body / header parameter | `@FromModel()` |
65
- | Build an unsaved model from the request body | `@AsModel()` |
66
- | Declarative, schema-validated filtering | `@Filterable()` + `@Filter()` |
67
- | DTO fields that resolve to entities | `@Relation()` |
68
- | Pagination and ordering DTOs | `PaginationDTO`, `OrderDTO` |
69
- | `404` for `OrmNotFoundException` | `OrmNotFound` |
70
-
71
- It also installs `filter()`, `filterColumns()` and `filterSchema()` onto every model class.
72
-
73
- ## Documentation
74
-
75
- Full documentation lives in **[docs/](docs/)**.
76
-
77
- | | Page |
78
- | --- | --- |
79
- | 01 | [Overview](docs/01-overview.md) |
80
- | 02 | [Route arguments](docs/02-route-args.md) |
81
- | 03 | [Filtering](docs/03-filtering.md) |
82
- | 04 | [DTO relations](docs/04-dto-relations.md) |
83
- | 05 | [Pagination and ordering](docs/05-pagination-and-order.md) |
84
- | 06 | [Repository middleware](docs/06-repository-middleware.md) |
85
-
86
- ## Known issues
87
-
88
- - `RepositoryMiddleware` is defined in `src/middleware.ts` but re-exported from neither
89
- `src/index.ts` nor the `exports` map, so it is currently unreachable. Use `QueryMiddleware`
90
- from the core instead — see [docs/06](docs/06-repository-middleware.md).
91
- - `npm test` fails during bootstrap with `No __file_provider_instance__ registered`: the test
92
- harness does not register `@spinajs/fs`. That is a test-configuration gap, not a defect in the
93
- package.
94
-
95
- ## Development
96
-
97
- ```bash
98
- npm run build
99
- npm run docs:check # from the repo root
100
- ```
1
+ # `@spinajs/orm-http`
2
+
3
+ Glue between [`@spinajs/orm`](../orm) and `@spinajs/http`: route arguments that load or build
4
+ models straight from a request, a declarative filtering layer, and DTO fields that resolve to
5
+ database entities.
6
+
7
+ It does **not** generate controllers or routes. You write ordinary `@spinajs/http` controllers;
8
+ this package removes the boilerplate inside them.
9
+
10
+ ## Install
11
+
12
+ ```bash
13
+ npm install @spinajs/orm-http
14
+ ```
15
+
16
+ Importing it is enough — its bootstrapper registers itself with DI and runs when the ORM
17
+ resolves.
18
+
19
+ ## Usage
20
+
21
+ ```ts
22
+ import { BaseController, BasePath, Get, Post, Ok } from '@spinajs/http';
23
+ import { Connection, Model, ModelBase, Primary } from '@spinajs/orm';
24
+ import { FromModel, AsModel, Filter, Filterable, IFilterRequest } from '@spinajs/orm-http';
25
+
26
+ @Connection('default')
27
+ @Model('articles')
28
+ export class Article extends ModelBase<Article> {
29
+ @Primary()
30
+ public Id: number;
31
+
32
+ @Filterable(['eq', 'like'])
33
+ public Title: string;
34
+ }
35
+
36
+ @BasePath('articles')
37
+ export class ArticleController extends BaseController {
38
+ /** GET /articles/:article — loaded by primary key, 404 when missing. */
39
+ @Get(':article')
40
+ public one(@FromModel() article: Article) {
41
+ return new Ok(article.dehydrate());
42
+ }
43
+
44
+ /** GET /articles?filter={"op":"and","filters":[{"Column":"Title","Operator":"like","Value":"x"}]} */
45
+ @Get()
46
+ public async list(@Filter(Article) filter: IFilterRequest) {
47
+ const rows = await Article.select().filter(filter.filters, filter.op);
48
+ return new Ok(rows.map((r) => r.dehydrate()));
49
+ }
50
+
51
+ /** POST /articles — hydrated from the body, not fetched or saved. */
52
+ @Post()
53
+ public async create(@AsModel() article: Article) {
54
+ await article.insert();
55
+ return new Ok(article.dehydrate());
56
+ }
57
+ }
58
+ ```
59
+
60
+ ## What it adds
61
+
62
+ | Feature | Entry point |
63
+ | --- | --- |
64
+ | Load a model from a route / query / body / header parameter | `@FromModel()` |
65
+ | Build an unsaved model from the request body | `@AsModel()` |
66
+ | Declarative, schema-validated filtering | `@Filterable()` + `@Filter()` |
67
+ | DTO fields that resolve to entities | `@Relation()` |
68
+ | Pagination and ordering DTOs | `PaginationDTO`, `OrderDTO` |
69
+ | `404` for `OrmNotFoundException` | `OrmNotFound` |
70
+
71
+ It also installs `filter()`, `filterColumns()` and `filterSchema()` onto every model class.
72
+
73
+ ## Documentation
74
+
75
+ Full documentation lives in **[docs/](docs/)**.
76
+
77
+ | | Page |
78
+ | --- | --- |
79
+ | 01 | [Overview](docs/01-overview.md) |
80
+ | 02 | [Route arguments](docs/02-route-args.md) |
81
+ | 03 | [Filtering](docs/03-filtering.md) |
82
+ | 04 | [DTO relations](docs/04-dto-relations.md) |
83
+ | 05 | [Pagination and ordering](docs/05-pagination-and-order.md) |
84
+ | 06 | [Repository middleware](docs/06-repository-middleware.md) |
85
+
86
+ ## Known issues
87
+
88
+ - `RepositoryMiddleware` is defined in `src/middleware.ts` but re-exported from neither
89
+ `src/index.ts` nor the `exports` map, so it is currently unreachable. Use `QueryMiddleware`
90
+ from the core instead — see [docs/06](docs/06-repository-middleware.md).
91
+ - `npm test` fails during bootstrap with `No __file_provider_instance__ registered`: the test
92
+ harness does not register `@spinajs/fs`. That is a test-configuration gap, not a defect in the
93
+ package.
94
+
95
+ ## Development
96
+
97
+ ```bash
98
+ npm run build
99
+ npm run docs:check # from the repo root
100
+ ```
@@ -1,6 +1,6 @@
1
1
  import { ModelBase, WhereFunction } from '@spinajs/orm';
2
2
  import { FilterableOperators, IColumnFilter } from './interfaces.js';
3
3
  import { Constructor } from '@spinajs/di';
4
- export declare function Filterable(operatorsOrClass: FilterableOperators[] | Constructor<ModelBase>, queryFunc?: (operator: FilterableOperators, value: any) => WhereFunction<unknown>, isAggregate?: boolean): any;
4
+ export declare function Filterable(operatorsOrClass: FilterableOperators[] | Constructor<ModelBase>, queryFunc?: ((operator: FilterableOperators, value: any) => WhereFunction<unknown>) | null, isAggregate?: boolean): any;
5
5
  export declare function Filter(model: Constructor<ModelBase> | IColumnFilter<unknown>[]): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
6
6
  //# sourceMappingURL=decorators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAE,aAAa,EAAkF,MAAM,cAAc,CAAC;AAC1J,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAiB,MAAM,aAAa,CAAC;AAGzD,wBAAgB,UAAU,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,GAAG,WAAW,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,EAAE,KAAK,EAAE,GAAG,KAAK,aAAa,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,OAAO,OAoCpM;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,yGAE9E"}
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAE,aAAa,EAAkF,MAAM,cAAc,CAAC;AAC1J,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAiB,MAAM,aAAa,CAAC;AAKzD,wBAAgB,UAAU,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,GAAG,WAAW,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,mBAAmB,EAAE,KAAK,EAAE,GAAG,KAAK,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC,EAAE,OAAO,OAoC7M;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,yGAE9E"}
@@ -5,6 +5,8 @@ exports.Filter = Filter;
5
5
  const orm_1 = require("@spinajs/orm");
6
6
  const di_1 = require("@spinajs/di");
7
7
  const http_1 = require("@spinajs/http");
8
+ // `queryFunc` accepts null so that a column can opt out of a custom query while still
9
+ // setting the trailing `isAggregate` flag.
8
10
  function Filterable(operatorsOrClass, queryFunc, isAggregate) {
9
11
  return (0, orm_1.extractDecoratorPropertyDescriptor)((model, _target, propertyKey) => {
10
12
  if (model.FilterableColumns === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":";;AAKA,gCAoCC;AAED,wBAEC;AA7CD,sCAA0J;AAE1J,oCAAyD;AACzD,wCAAiD;AAEjD,SAAgB,UAAU,CAAC,gBAAgE,EAAE,SAAiF,EAAE,WAAqB;IACnM,OAAO,IAAA,wCAAkC,EAAC,CAAC,KAAuB,EAAE,OAAY,EAAE,WAAmB,EAAE,EAAE;QACvG,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YAC1C,KAAK,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAkC,CAAC;QACtE,CAAC;QAED,IAAI,IAAA,kBAAa,EAAC,gBAAgB,CAAC,EAAE,CAAC;YACpC,kFAAkF;YAClF,yBAAyB;YACzB,MAAM,UAAU,GAAG,IAAA,4BAAsB,EAAC,gBAAgB,CAAC,CAAC;YAC5D,IAAI,UAAW,CAAC,iBAAiB,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,CAAC,GAAG,UAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACzB,OAAO,CAAC,GAAG,WAAW,IAAI,CAAC,EAAE,EAAE,UAAW,CAAC,iBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxE,CAAC,CAAC,CAAC;gBAEH,KAAK,CAAC,iBAAiB,GAAG,IAAI,GAAG,CAAiC,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,GAAI,GAAW,CAAC,CAAC,CAAC;YAC7H,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,IAAI,oBAAoB,WAAW,8BAA8B,CAAC,CAAC;YACtH,CAAC;YACD,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE;gBACvC,SAAS,EAAE,gBAAgB;gBAC3B,KAAK,EAAE,SAAS;aACS,CAAC,CAAC;QAC/B,CAAC;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,CAAC;YAChB,mFAAmF;YACnF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAA,wBAAkB,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,IAAI,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAChH,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,SAAS,GAAG,WAAW,IAAI,KAAK,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,MAAM,CAAC,KAAwD;IAC7E,OAAO,IAAA,YAAK,EAAC,IAAA,gBAAS,EAAC,qBAAqB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":";;AAOA,gCAoCC;AAED,wBAEC;AA/CD,sCAA0J;AAE1J,oCAAyD;AACzD,wCAAiD;AAEjD,sFAAsF;AACtF,2CAA2C;AAC3C,SAAgB,UAAU,CAAC,gBAAgE,EAAE,SAA0F,EAAE,WAAqB;IAC5M,OAAO,IAAA,wCAAkC,EAAC,CAAC,KAAuB,EAAE,OAAY,EAAE,WAAmB,EAAE,EAAE;QACvG,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YAC1C,KAAK,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAkC,CAAC;QACtE,CAAC;QAED,IAAI,IAAA,kBAAa,EAAC,gBAAgB,CAAC,EAAE,CAAC;YACpC,kFAAkF;YAClF,yBAAyB;YACzB,MAAM,UAAU,GAAG,IAAA,4BAAsB,EAAC,gBAAgB,CAAC,CAAC;YAC5D,IAAI,UAAW,CAAC,iBAAiB,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,CAAC,GAAG,UAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACzB,OAAO,CAAC,GAAG,WAAW,IAAI,CAAC,EAAE,EAAE,UAAW,CAAC,iBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxE,CAAC,CAAC,CAAC;gBAEH,KAAK,CAAC,iBAAiB,GAAG,IAAI,GAAG,CAAiC,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,GAAI,GAAW,CAAC,CAAC,CAAC;YAC7H,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,IAAI,oBAAoB,WAAW,8BAA8B,CAAC,CAAC;YACtH,CAAC;YACD,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE;gBACvC,SAAS,EAAE,gBAAgB;gBAC3B,KAAK,EAAE,SAAS;aACS,CAAC,CAAC;QAC/B,CAAC;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,CAAC;YAChB,mFAAmF;YACnF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAA,wBAAkB,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,IAAI,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAChH,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,SAAS,GAAG,WAAW,IAAI,KAAK,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,MAAM,CAAC,KAAwD;IAC7E,OAAO,IAAA,YAAK,EAAC,IAAA,gBAAS,EAAC,qBAAqB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC"}
package/lib/cjs/dto.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  import { SortOrder } from '@spinajs/orm';
2
2
  export declare class PaginationDTO {
3
- limit: number;
4
- page: number;
3
+ limit?: number;
4
+ page?: number;
5
5
  constructor(data: Partial<PaginationDTO>);
6
6
  }
7
7
  export declare class OrderDTO {
8
- order: SortOrder;
9
- column: string;
8
+ order?: SortOrder;
9
+ column?: string;
10
10
  constructor(data: Partial<OrderDTO>);
11
11
  }
12
12
  //# sourceMappingURL=dto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dto.d.ts","sourceRoot":"","sources":["../../src/dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,qBAUa,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
+ {"version":3,"file":"dto.d.ts","sourceRoot":"","sources":["../../src/dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,qBAUa,aAAa;IAGjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;gBAET,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC;CAGzC;AAED,qBAQa,QAAQ;IAEZ,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEX,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC;CAGpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dto.js","sourceRoot":"","sources":["../../src/dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,oDAA6C;AAYtC,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;IAVzB,IAAA,mBAAM,EAAC;QACN,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,4BAA4B;QACjC,0EAA0E;QAC1E,6EAA6E;QAC7E,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;YACrC,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,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE;YAC/D,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;AAYtC,IAAM,aAAa,GAAnB,MAAM,aAAa;IAMxB,YAAY,IAA4B;QACtC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AATY,sCAAa;wBAAb,aAAa;IAVzB,IAAA,mBAAM,EAAC;QACN,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,4BAA4B;QACjC,0EAA0E;QAC1E,6EAA6E;QAC7E,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;YACrC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;SACrC;KACF,CAAC;;GACW,aAAa,CASzB;AAUM,IAAM,QAAQ,GAAd,MAAM,QAAQ;IAKnB,YAAY,IAAuB;QACjC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AARY,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,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE;YAC/D,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC3B;KACF,CAAC;;GACW,QAAQ,CAQpB"}
@@ -11,10 +11,13 @@ declare module '@spinajs/orm' {
11
11
  *
12
12
  * Add filter to query
13
13
  *
14
+ * Passing no filters (undefined / null / empty array) is a no-op, so routes
15
+ * with an optional filter param can call this unconditionally.
16
+ *
14
17
  * @param filter
15
18
  * @param logicalOperator
16
19
  */
17
- filter(filter: IFilter[], logicalOperator?: FilterableLogicalOperators, filters?: IColumnFilter<unknown>[]): this;
20
+ filter(filter?: IFilter[] | null, logicalOperator?: FilterableLogicalOperators, filters?: IColumnFilter<unknown>[]): this;
18
21
  }
19
22
  namespace ModelBase {
20
23
  /**
@@ -30,7 +33,7 @@ declare module '@spinajs/orm' {
30
33
  *
31
34
  * @param filterRequest
32
35
  */
33
- function filter<T extends ModelBase<unknown>>(filterRequest: IFilterRequest): Promise<Array<T>>;
36
+ function filter<T extends ModelBase<unknown>>(filterRequest?: IFilterRequest): Promise<Array<T>>;
34
37
  }
35
38
  }
36
39
  //# sourceMappingURL=extension.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../src/extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAErG,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAiB,gBAAgB;QAC/B;;WAEG;QACH,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;KACzD;IAED,UAAiB,mBAAmB;QAClC;;;;;;WAMG;QACH,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,eAAe,CAAC,EAAE,0BAA0B,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC;KACnH;IAED,UAAU,SAAS,CAAC;QAElB;;WAEG;QACH,SAAgB,YAAY,IAAI,GAAG,CAAC;QAEpC,SAAgB,aAAa,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAE1D;;;;;;;WAOG;QACH,SAAgB,MAAM,CAAC,CAAC,SAAS,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACxG;CACF"}
1
+ {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../src/extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAErG,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAiB,gBAAgB;QAC/B;;WAEG;QACH,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;KACzD;IAED,UAAiB,mBAAmB;QAClC;;;;;;;;;WASG;QACH,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,eAAe,CAAC,EAAE,0BAA0B,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC;KAC3H;IAED,UAAU,SAAS,CAAC;QAElB;;WAEG;QACH,SAAgB,YAAY,IAAI,GAAG,CAAC;QAEpC,SAAgB,aAAa,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAE1D;;;;;;;WAOG;QACH,SAAgB,MAAM,CAAC,CAAC,SAAS,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACzG;CACF"}
@@ -1,6 +1,7 @@
1
1
  import { Orm, ModelBase } from '@spinajs/orm';
2
2
  import { IRouteParameter, IRouteCall, ParameterType, ArgHydrator, Request as sRequest, RouteArgs, IRoute } from '@spinajs/http';
3
3
  import { IContainer, Bootstrapper } from '@spinajs/di';
4
+ import { Log } from '@spinajs/log';
4
5
  import { FromModelOptions } from './interfaces.js';
5
6
  export * from './interfaces.js';
6
7
  export * from './model.js';
@@ -27,14 +28,22 @@ export declare class AsDbModel extends RouteArgs {
27
28
  export declare class FromDbModel extends RouteArgs {
28
29
  protected Container: IContainer;
29
30
  protected Orm: Orm;
31
+ protected Log: Log;
30
32
  resolve(): Promise<void>;
31
33
  get SupportedType(): string;
32
- extract(callData: IRouteCall, args: unknown[], param: IRouteParameter, req: sRequest): Promise<{
34
+ extract(callData: IRouteCall, args: unknown[], param: IRouteParameter, req: sRequest, _res?: express.Response, route?: IRoute): Promise<{
33
35
  CallData: IRouteCall;
34
36
  Args: any;
35
37
  }>;
36
- protected _extractValue(param: IRouteParameter<FromModelOptions<typeof ModelBase>>, req: sRequest): any;
37
- protected fromDbModelDefaultQueryFunction(callData: IRouteCall, _args: unknown[], param: IRouteParameter<FromModelOptions<typeof ModelBase>>, req: sRequest): Promise<any>;
38
+ /**
39
+ * @param param - the @FromModel route parameter the key is being resolved for
40
+ * @param req - incoming request
41
+ * @param route - the route this parameter belongs to. Optional so that callers written
42
+ * against the two-argument signature keep working; without it the resolver
43
+ * falls back to the single-placeholder heuristic below.
44
+ */
45
+ protected _extractValue(param: IRouteParameter<FromModelOptions<typeof ModelBase>>, req: sRequest, route?: IRoute): any;
46
+ protected fromDbModelDefaultQueryFunction(callData: IRouteCall, _args: unknown[], param: IRouteParameter<FromModelOptions<typeof ModelBase>>, req: sRequest, route?: IRoute): Promise<any>;
38
47
  }
39
48
  export declare class DbModelHydrator extends ArgHydrator {
40
49
  hydrate(input: any, parameter: IRouteParameter): Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAgG,MAAM,cAAc,CAAC;AAC5I,OAAO,EAAE,eAAe,EAAE,UAAU,EAAoB,aAAa,EAAE,WAAW,EAAE,OAAO,IAAI,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAClJ,OAAO,EAAE,UAAU,EAAqC,YAAY,EAAM,MAAM,aAAa,CAAC;AAE9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,mCAAmC,CAAC;AAClD,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC;;;;GAIG;AACH,qBACa,SAAU,SAAQ,SAAS;IACtC,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM;;;;CAU1I;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,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ;;;;IAWjG,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,gBAAgB,CAAC,OAAO,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ;IAuBjG,SAAS,CAAC,+BAA+B,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,gBAAgB,CAAC,OAAO,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ;CAqE5J;AAED,qBAAa,eAAgB,SAAQ,WAAW;IACjC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;CAS3E;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,yGAE3D;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,yGAElF;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,EAAgG,MAAM,cAAc,CAAC;AAC5I,OAAO,EAAE,eAAe,EAAE,UAAU,EAAoB,aAAa,EAAE,WAAW,EAAE,OAAO,IAAI,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAClJ,OAAO,EAAE,UAAU,EAAqC,YAAY,EAAM,MAAM,aAAa,CAAC;AAC9F,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,mCAAmC,CAAC;AAClD,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC;;;;GAIG;AACH,qBACa,SAAU,SAAQ,SAAS;IACtC,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM;;;;CAU1I;AAED,qBACa,WAAY,SAAQ,SAAS;IAExC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;IAGhC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,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,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM;;;;IAW1I;;;;;;OAMG;IACH,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,gBAAgB,CAAC,OAAO,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM;IA8CjH,SAAS,CAAC,+BAA+B,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,gBAAgB,CAAC,OAAO,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM;CAqE5K;AAED,qBAAa,eAAgB,SAAQ,WAAW;IACjC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;CAS3E;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,yGAE3D;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,yGAElF;AAED,qBACa,mBAAoB,SAAQ,YAAY;IACtC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAgBxC"}
package/lib/cjs/index.js CHANGED
@@ -29,6 +29,7 @@ exports.FromModel = FromModel;
29
29
  const orm_1 = require("@spinajs/orm");
30
30
  const http_1 = require("@spinajs/http");
31
31
  const di_1 = require("@spinajs/di");
32
+ const log_1 = require("@spinajs/log");
32
33
  const model_js_1 = require("./model.js");
33
34
  const exceptions_1 = require("@spinajs/exceptions");
34
35
  __exportStar(require("./interfaces.js"), exports);
@@ -67,17 +68,24 @@ let FromDbModel = class FromDbModel extends http_1.RouteArgs {
67
68
  get SupportedType() {
68
69
  return 'FromDB';
69
70
  }
70
- async extract(callData, args, param, req) {
71
+ async extract(callData, args, param, req, _res, route) {
71
72
  let result = null;
72
73
  if (param?.Options?.query) {
73
- result = await param.Options.query.call(param.RuntimeType.query(), args, this._extractValue(param, req)).firstOrThrow(new orm_1.OrmNotFoundException('Resource not found'));
74
+ result = await param.Options.query.call(param.RuntimeType.query(), args, this._extractValue(param, req, route)).firstOrThrow(new orm_1.OrmNotFoundException('Resource not found'));
74
75
  }
75
76
  else {
76
- result = await this.fromDbModelDefaultQueryFunction(callData, args, param, req);
77
+ result = await this.fromDbModelDefaultQueryFunction(callData, args, param, req, route);
77
78
  }
78
79
  return { CallData: callData, Args: result };
79
80
  }
80
- _extractValue(param, req) {
81
+ /**
82
+ * @param param - the @FromModel route parameter the key is being resolved for
83
+ * @param req - incoming request
84
+ * @param route - the route this parameter belongs to. Optional so that callers written
85
+ * against the two-argument signature keep working; without it the resolver
86
+ * falls back to the single-placeholder heuristic below.
87
+ */
88
+ _extractValue(param, req, route) {
81
89
  let pkValue = null;
82
90
  const field = param?.Options?.paramField ?? param.Name;
83
91
  switch (param?.Options?.paramType) {
@@ -92,13 +100,31 @@ let FromDbModel = class FromDbModel extends http_1.RouteArgs {
92
100
  break;
93
101
  case http_1.ParameterType.FromParams:
94
102
  default:
103
+ /**
104
+ * The url parameter a @FromModel reads is stated, never guessed: `paramField`
105
+ * names it, or the argument is called after it. If neither is present in the
106
+ * request the route is wrong and it says so, rather than querying with an
107
+ * empty key and returning a 404 that looks like missing data.
108
+ *
109
+ * This is the same rule the OpenAPI document applies while it is built
110
+ * ( http-swagger, OpenApiBuilder ), so a route that serves traffic and a route
111
+ * that can be documented are the same set. The check is against `req.params`
112
+ * rather than the route template on purpose: a placeholder declared in
113
+ * @BasePath never appears in `route.Path`, but it does arrive here.
114
+ */
115
+ if (!Object.prototype.hasOwnProperty.call(req.params ?? {}, field)) {
116
+ const available = Object.keys(req.params ?? {});
117
+ throw new exceptions_1.InvalidArgument(`@FromModel argument '${param.Name}'${route?.Path ? ` on route '${route.Path}'` : ''} reads url parameter '${field}', which this request does not have. ` +
118
+ `Available url parameters: ${available.length > 0 ? available.join(', ') : '(none)'}. ` +
119
+ `Either name the argument after the placeholder, or state it explicitly with @FromModel({ paramField: '<placeholder>' }).`);
120
+ }
95
121
  pkValue = req.params[field];
96
122
  break;
97
123
  }
98
124
  return pkValue;
99
125
  }
100
- fromDbModelDefaultQueryFunction(callData, _args, param, req) {
101
- const pkValue = this._extractValue(param, req);
126
+ fromDbModelDefaultQueryFunction(callData, _args, param, req, route) {
127
+ const pkValue = this._extractValue(param, req, route);
102
128
  const query = param.RuntimeType['query']();
103
129
  const descriptor = (0, orm_1.extractModelDescriptor)(param.RuntimeType);
104
130
  // A route parameter carries ONE value, so it cannot address a composite key. Fail with a
@@ -166,6 +192,10 @@ __decorate([
166
192
  (0, di_1.Autoinject)(orm_1.Orm),
167
193
  __metadata("design:type", orm_1.Orm)
168
194
  ], FromDbModel.prototype, "Orm", void 0);
195
+ __decorate([
196
+ (0, log_1.Logger)('orm-http'),
197
+ __metadata("design:type", log_1.Log)
198
+ ], FromDbModel.prototype, "Log", void 0);
169
199
  exports.FromDbModel = FromDbModel = __decorate([
170
200
  (0, di_1.Injectable)()
171
201
  ], FromDbModel);
@@ -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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"}
@@ -20,7 +20,7 @@ export interface ITransformOptions {
20
20
  export interface IColumnFilter<T> {
21
21
  column?: string;
22
22
  operators: FilterableOperators[];
23
- query?: (operator: FilterableOperators, value: any) => WhereFunction<T>;
23
+ query?: ((operator: FilterableOperators, value: any) => WhereFunction<T>) | null;
24
24
  }
25
25
  export interface IFilter {
26
26
  Column: string;
@@ -28,8 +28,13 @@ export interface IFilter {
28
28
  Value: any;
29
29
  }
30
30
  export interface IFilterRequest {
31
- op: FilterableLogicalOperators;
32
- filters: IFilter[];
31
+ /**
32
+ * Both fields are optional: the filter param itself is optional in a route
33
+ * (FilterModelRouteArg reads it from query/body and yields undefined when absent)
34
+ * and the generated JSON schema marks neither `op` nor `filters` as required.
35
+ */
36
+ op?: FilterableLogicalOperators;
37
+ filters?: IFilter[];
33
38
  }
34
39
  export declare enum FilterableLogicalOperators {
35
40
  And = "and",
@@ -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,kBAAkB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGvF,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,CAAe;gBAEJ,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,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,EAAE,KAAK,EAAE,GAAG,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,EAAE,GAAG,CAAC;CACZ;AAGD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,0BAA0B,CAAC;IAC/B,OAAO,EAAE,OAAO,EAAE,CAAC;CACpB;AAED,oBAAY,0BAA0B;IACpC,GAAG,QAAQ;IACX,EAAE,OAAO;CACV;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,OAAO,SAAS;IAC1D;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,OAAO,CAAC,EAAG,MAAM,EAAE,CAAC;IAEpB;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,kBAAkB,CAAC;CAC/G;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,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,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,kBAAkB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGvF,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,CAAe;gBAEJ,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,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,mBAAmB,EAAE,KAAK,EAAE,GAAG,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAClF;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,EAAE,GAAG,CAAC;CACZ;AAGD,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,EAAE,CAAC,EAAE,0BAA0B,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,oBAAY,0BAA0B;IACpC,GAAG,QAAQ;IACX,EAAE,OAAO;CACV;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,OAAO,SAAS;IAC1D;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,OAAO,CAAC,EAAG,MAAM,EAAE,CAAC;IAEpB;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,kBAAkB,CAAC;CAC/G;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,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,oDAA6C;AAGtC,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAQhC,YAAY,IAAS;QAPd,SAAI,GAKP,IAAW,CAAC;QAGd,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AAXY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAM,EAAC,yCAAyC,CAAC;;GACrC,qBAAqB,CAWjC;AA6BD,IAAY,0BAGX;AAHD,WAAY,0BAA0B;IACpC,yCAAW,CAAA;IACX,uCAAS,CAAA;AACX,CAAC,EAHW,0BAA0B,0CAA1B,0BAA0B,QAGrC"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,oDAA6C;AAGtC,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAQhC,YAAY,IAAS;QAPd,SAAI,GAKP,IAAW,CAAC;QAGd,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AAXY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAM,EAAC,yCAAyC,CAAC;;GACrC,qBAAqB,CAWjC;AAkCD,IAAY,0BAGX;AAHD,WAAY,0BAA0B;IACpC,yCAAW,CAAA;IACX,uCAAS,CAAA;AACX,CAAC,EAHW,0BAA0B,0CAA1B,0BAA0B,QAGrC"}
@@ -1,11 +1,11 @@
1
1
  import './builders.js';
2
2
  import { IFilterRequest, FilterableLogicalOperators } from './interfaces.js';
3
3
  export declare const MODEL_STATIC_MIXINS: {
4
- filter(filterRequest: IFilterRequest): Promise<any>;
4
+ filter(filterRequest?: IFilterRequest): Promise<any>;
5
5
  filterColumns(): {
6
6
  column: string;
7
7
  operators: import("./interfaces.js").FilterableOperators[];
8
- query: ((operator: import("./interfaces.js").FilterableOperators, value: any) => import("@spinajs/orm").WhereFunction<unknown>) | undefined;
8
+ query: ((operator: import("./interfaces.js").FilterableOperators, value: any) => import("@spinajs/orm").WhereFunction<unknown>) | null | undefined;
9
9
  }[];
10
10
  filterSchema(): {
11
11
  type?: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAiB,cAAc,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAE5F,eAAO,MAAM,mBAAmB;0BACF,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+D3C,CAAC"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAiB,cAAc,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAE5F,eAAO,MAAM,mBAAmB;2BACD,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+D5C,CAAC"}
package/lib/cjs/model.js CHANGED
@@ -7,7 +7,7 @@ const interfaces_js_1 = require("./interfaces.js");
7
7
  exports.MODEL_STATIC_MIXINS = {
8
8
  async filter(filterRequest) {
9
9
  const { query } = (0, orm_1.createQuery)(this, orm_1.SelectQueryBuilder);
10
- return query.filter(filterRequest.filters, filterRequest.op);
10
+ return query.filter(filterRequest?.filters, filterRequest?.op);
11
11
  },
12
12
  filterColumns() {
13
13
  const modelDescriptor = this.getModelDescriptor();
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":";;;AAAA,sCAA+F;AAC/F,yBAAuB;AACvB,mDAA4F;AAE/E,QAAA,mBAAmB,GAAG;IACjC,KAAK,CAAC,MAAM,CAAC,aAA6B;QACxC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,iBAAW,EAAC,IAAI,EAAE,wBAAkB,CAAC,CAAC;QACxD,OAAQ,KAAa,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,aAAa;QACX,MAAM,eAAe,GAAI,IAAY,CAAC,kBAAkB,EAAsB,CAAC;QAE/E,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,kBAAY,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,oBAAoB,CAAC,CAAC;QAC7E,CAAC;QAED,IAAG,eAAe,CAAC,iBAAiB,KAAK,SAAS,EAAC,CAAC;YAClD,OAAO,EAAE,CAAC;QACZ,CAAC;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,CAAC,SAAS;gBACxB,KAAK,EAAE,GAAG,CAAC,KAAK;aACjB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,MAAM,eAAe,GAAI,IAAY,CAAC,kBAAkB,EAAsB,CAAC;QAE/E,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,kBAAY,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,oBAAoB,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,eAAe,CAAC,iBAAiB,KAAK,SAAS,EAAC,CAAC;YACnD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,0CAA0B,CAAC,GAAG,EAAE,0CAA0B,CAAC,EAAE,CAAC;iBACtE;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,CAAC,GAAG,eAAe,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAmC,EAAE,EAAE;4BAC3G,OAAO;gCACL,IAAI,EAAE,QAAQ;gCACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;gCAChC,UAAU,EAAE;oCACV,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;oCACtB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;oCAC1D,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,EAAE;iCAClD;6BACF,CAAC;wBACJ,CAAC,CAAC;qBACH;iBACF;aACF;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;AACvB,mDAA4F;AAE/E,QAAA,mBAAmB,GAAG;IACjC,KAAK,CAAC,MAAM,CAAC,aAA8B;QACzC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,iBAAW,EAAC,IAAI,EAAE,wBAAkB,CAAC,CAAC;QACxD,OAAQ,KAAa,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,aAAa;QACX,MAAM,eAAe,GAAI,IAAY,CAAC,kBAAkB,EAAsB,CAAC;QAE/E,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,kBAAY,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,oBAAoB,CAAC,CAAC;QAC7E,CAAC;QAED,IAAG,eAAe,CAAC,iBAAiB,KAAK,SAAS,EAAC,CAAC;YAClD,OAAO,EAAE,CAAC;QACZ,CAAC;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,CAAC,SAAS;gBACxB,KAAK,EAAE,GAAG,CAAC,KAAK;aACjB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,MAAM,eAAe,GAAI,IAAY,CAAC,kBAAkB,EAAsB,CAAC;QAE/E,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,kBAAY,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,oBAAoB,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,eAAe,CAAC,iBAAiB,KAAK,SAAS,EAAC,CAAC;YACnD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,0CAA0B,CAAC,GAAG,EAAE,0CAA0B,CAAC,EAAE,CAAC;iBACtE;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,CAAC,GAAG,eAAe,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAmC,EAAE,EAAE;4BAC3G,OAAO;gCACL,IAAI,EAAE,QAAQ;gCACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;gCAChC,UAAU,EAAE;oCACV,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;oCACtB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;oCAC1D,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,EAAE;iCAClD;6BACF,CAAC;wBACJ,CAAC,CAAC;qBACH;iBACF;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { ModelBase, WhereFunction } from '@spinajs/orm';
2
2
  import { FilterableOperators, IColumnFilter } from './interfaces.js';
3
3
  import { Constructor } from '@spinajs/di';
4
- export declare function Filterable(operatorsOrClass: FilterableOperators[] | Constructor<ModelBase>, queryFunc?: (operator: FilterableOperators, value: any) => WhereFunction<unknown>, isAggregate?: boolean): any;
4
+ export declare function Filterable(operatorsOrClass: FilterableOperators[] | Constructor<ModelBase>, queryFunc?: ((operator: FilterableOperators, value: any) => WhereFunction<unknown>) | null, isAggregate?: boolean): any;
5
5
  export declare function Filter(model: Constructor<ModelBase> | IColumnFilter<unknown>[]): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
6
6
  //# sourceMappingURL=decorators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAE,aAAa,EAAkF,MAAM,cAAc,CAAC;AAC1J,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAiB,MAAM,aAAa,CAAC;AAGzD,wBAAgB,UAAU,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,GAAG,WAAW,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,EAAE,KAAK,EAAE,GAAG,KAAK,aAAa,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,OAAO,OAoCpM;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,yGAE9E"}
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAE,aAAa,EAAkF,MAAM,cAAc,CAAC;AAC1J,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAiB,MAAM,aAAa,CAAC;AAKzD,wBAAgB,UAAU,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,GAAG,WAAW,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,mBAAmB,EAAE,KAAK,EAAE,GAAG,KAAK,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC,EAAE,OAAO,OAoC7M;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,yGAE9E"}
@@ -1,6 +1,8 @@
1
1
  import { _prepareColumnDesc, extractDecoratorPropertyDescriptor, extractModelDescriptor } from '@spinajs/orm';
2
2
  import { isConstructor } from '@spinajs/di';
3
3
  import { Parameter, Route } from '@spinajs/http';
4
+ // `queryFunc` accepts null so that a column can opt out of a custom query while still
5
+ // setting the trailing `isAggregate` flag.
4
6
  export function Filterable(operatorsOrClass, queryFunc, isAggregate) {
5
7
  return extractDecoratorPropertyDescriptor((model, _target, propertyKey) => {
6
8
  if (model.FilterableColumns === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8C,kBAAkB,EAAE,kCAAkC,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE1J,OAAO,EAAe,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,UAAU,UAAU,CAAC,gBAAgE,EAAE,SAAiF,EAAE,WAAqB;IACnM,OAAO,kCAAkC,CAAC,CAAC,KAAuB,EAAE,OAAY,EAAE,WAAmB,EAAE,EAAE;QACvG,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YAC1C,KAAK,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAkC,CAAC;QACtE,CAAC;QAED,IAAI,aAAa,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACpC,kFAAkF;YAClF,yBAAyB;YACzB,MAAM,UAAU,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;YAC5D,IAAI,UAAW,CAAC,iBAAiB,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,CAAC,GAAG,UAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACzB,OAAO,CAAC,GAAG,WAAW,IAAI,CAAC,EAAE,EAAE,UAAW,CAAC,iBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxE,CAAC,CAAC,CAAC;gBAEH,KAAK,CAAC,iBAAiB,GAAG,IAAI,GAAG,CAAiC,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,GAAI,GAAW,CAAC,CAAC,CAAC;YAC7H,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,IAAI,oBAAoB,WAAW,8BAA8B,CAAC,CAAC;YACtH,CAAC;YACD,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE;gBACvC,SAAS,EAAE,gBAAgB;gBAC3B,KAAK,EAAE,SAAS;aACS,CAAC,CAAC;QAC/B,CAAC;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,CAAC;YAChB,mFAAmF;YACnF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,IAAI,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAChH,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,SAAS,GAAG,WAAW,IAAI,KAAK,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAwD;IAC7E,OAAO,KAAK,CAAC,SAAS,CAAC,qBAAqB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8C,kBAAkB,EAAE,kCAAkC,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE1J,OAAO,EAAe,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEjD,sFAAsF;AACtF,2CAA2C;AAC3C,MAAM,UAAU,UAAU,CAAC,gBAAgE,EAAE,SAA0F,EAAE,WAAqB;IAC5M,OAAO,kCAAkC,CAAC,CAAC,KAAuB,EAAE,OAAY,EAAE,WAAmB,EAAE,EAAE;QACvG,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YAC1C,KAAK,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAkC,CAAC;QACtE,CAAC;QAED,IAAI,aAAa,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACpC,kFAAkF;YAClF,yBAAyB;YACzB,MAAM,UAAU,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;YAC5D,IAAI,UAAW,CAAC,iBAAiB,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,CAAC,GAAG,UAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACzB,OAAO,CAAC,GAAG,WAAW,IAAI,CAAC,EAAE,EAAE,UAAW,CAAC,iBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxE,CAAC,CAAC,CAAC;gBAEH,KAAK,CAAC,iBAAiB,GAAG,IAAI,GAAG,CAAiC,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,GAAI,GAAW,CAAC,CAAC,CAAC;YAC7H,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,IAAI,oBAAoB,WAAW,8BAA8B,CAAC,CAAC;YACtH,CAAC;YACD,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE;gBACvC,SAAS,EAAE,gBAAgB;gBAC3B,KAAK,EAAE,SAAS;aACS,CAAC,CAAC;QAC/B,CAAC;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,CAAC;YAChB,mFAAmF;YACnF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,IAAI,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAChH,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,SAAS,GAAG,WAAW,IAAI,KAAK,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAwD;IAC7E,OAAO,KAAK,CAAC,SAAS,CAAC,qBAAqB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC"}
package/lib/mjs/dto.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  import { SortOrder } from '@spinajs/orm';
2
2
  export declare class PaginationDTO {
3
- limit: number;
4
- page: number;
3
+ limit?: number;
4
+ page?: number;
5
5
  constructor(data: Partial<PaginationDTO>);
6
6
  }
7
7
  export declare class OrderDTO {
8
- order: SortOrder;
9
- column: string;
8
+ order?: SortOrder;
9
+ column?: string;
10
10
  constructor(data: Partial<OrderDTO>);
11
11
  }
12
12
  //# sourceMappingURL=dto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dto.d.ts","sourceRoot":"","sources":["../../src/dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,qBAUa,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
+ {"version":3,"file":"dto.d.ts","sourceRoot":"","sources":["../../src/dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,qBAUa,aAAa;IAGjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;gBAET,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC;CAGzC;AAED,qBAQa,QAAQ;IAEZ,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEX,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC;CAGpC"}