@spinajs/orm-http 2.0.223 → 2.0.224
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.
- package/lib/cjs/builders.d.ts +2 -0
- package/lib/cjs/builders.d.ts.map +1 -0
- package/lib/cjs/builders.js +53 -0
- package/lib/cjs/builders.js.map +1 -0
- package/lib/cjs/decorators.d.ts +3 -0
- package/lib/cjs/decorators.d.ts.map +1 -0
- package/lib/cjs/decorators.js +18 -0
- package/lib/cjs/decorators.js.map +1 -0
- package/lib/cjs/index.d.ts +4 -0
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +26 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/interfaces.d.ts +34 -0
- package/lib/cjs/interfaces.d.ts.map +1 -1
- package/lib/cjs/model.d.ts +23 -0
- package/lib/cjs/model.d.ts.map +1 -0
- package/lib/cjs/model.js +39 -0
- package/lib/cjs/model.js.map +1 -0
- package/lib/mjs/builders.d.ts +2 -0
- package/lib/mjs/builders.d.ts.map +1 -0
- package/lib/mjs/builders.js +51 -0
- package/lib/mjs/builders.js.map +1 -0
- package/lib/mjs/decorators.d.ts +3 -0
- package/lib/mjs/decorators.d.ts.map +1 -0
- package/lib/mjs/decorators.js +14 -0
- package/lib/mjs/decorators.js.map +1 -0
- package/lib/mjs/index.d.ts +4 -0
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +12 -0
- package/lib/mjs/index.js.map +1 -1
- package/lib/mjs/interfaces.d.ts +34 -0
- package/lib/mjs/interfaces.d.ts.map +1 -1
- package/lib/mjs/model.d.ts +23 -0
- package/lib/mjs/model.d.ts.map +1 -0
- package/lib/mjs/model.js +36 -0
- package/lib/mjs/model.js.map +1 -0
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +10 -10
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../src/builders.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const orm_1 = require("@spinajs/orm");
|
|
4
|
+
/**
|
|
5
|
+
* Extend where builder with flter func old style ( by prototype )
|
|
6
|
+
*/
|
|
7
|
+
orm_1.WhereBuilder.prototype.filter = function (filters) {
|
|
8
|
+
filters.forEach((filter) => {
|
|
9
|
+
switch (filter.Operator) {
|
|
10
|
+
case 'eq':
|
|
11
|
+
this.andWhere(filter.Column, orm_1.SqlOperator.EQ, filter.Value);
|
|
12
|
+
break;
|
|
13
|
+
case 'neq':
|
|
14
|
+
this.andWhere(filter.Column, orm_1.SqlOperator.NOT, filter.Value);
|
|
15
|
+
break;
|
|
16
|
+
case 'gt':
|
|
17
|
+
this.andWhere(filter.Column, orm_1.SqlOperator.GT, filter.Value);
|
|
18
|
+
break;
|
|
19
|
+
case 'gte':
|
|
20
|
+
this.andWhere(filter.Column, orm_1.SqlOperator.GTE, filter.Value);
|
|
21
|
+
break;
|
|
22
|
+
case 'lt':
|
|
23
|
+
this.andWhere(filter.Column, orm_1.SqlOperator.LT, filter.Value);
|
|
24
|
+
break;
|
|
25
|
+
case 'lte':
|
|
26
|
+
this.andWhere(filter.Column, orm_1.SqlOperator.LTE, filter.Value);
|
|
27
|
+
break;
|
|
28
|
+
case 'like':
|
|
29
|
+
this.andWhere(filter.Column, orm_1.SqlOperator.LIKE, filter.Value);
|
|
30
|
+
break;
|
|
31
|
+
case 'in':
|
|
32
|
+
this.andWhere(filter.Column, orm_1.SqlOperator.IN, filter.Value);
|
|
33
|
+
break;
|
|
34
|
+
case 'nin':
|
|
35
|
+
this.andWhere(filter.Column, orm_1.SqlOperator.NOT_IN, filter.Value);
|
|
36
|
+
break;
|
|
37
|
+
case 'between':
|
|
38
|
+
this.andWhere(filter.Column, orm_1.SqlOperator.BETWEEN, filter.Value);
|
|
39
|
+
break;
|
|
40
|
+
case 'isnull':
|
|
41
|
+
this.andWhere(filter.Column, orm_1.SqlOperator.NULL);
|
|
42
|
+
break;
|
|
43
|
+
case 'notnull':
|
|
44
|
+
this.andWhere(filter.Column, orm_1.SqlOperator.NOT_NULL);
|
|
45
|
+
break;
|
|
46
|
+
case 'notbetween':
|
|
47
|
+
this.andWhere(filter.Column, orm_1.SqlOperator.NOT_BETWEEN, filter.Value);
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
return this;
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=builders.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Filterable = void 0;
|
|
4
|
+
const orm_1 = require("@spinajs/orm");
|
|
5
|
+
function Filterable(operators) {
|
|
6
|
+
return (0, orm_1.extractDecoratorDescriptor)((model, _target, propertyKey) => {
|
|
7
|
+
const columnDesc = model.Columns.find((c) => c.Name === propertyKey);
|
|
8
|
+
if (!columnDesc) {
|
|
9
|
+
// we dont want to fill all props, they will be loaded from db and mergeg with this
|
|
10
|
+
model.Columns.push({ Name: propertyKey, Filterable: operators });
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
columnDesc.Filterable = operators;
|
|
14
|
+
}
|
|
15
|
+
}, true);
|
|
16
|
+
}
|
|
17
|
+
exports.Filterable = Filterable;
|
|
18
|
+
//# sourceMappingURL=decorators.js.map
|
|
@@ -0,0 +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"}
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { Orm, ModelBase } from '@spinajs/orm';
|
|
2
2
|
import { IRouteParameter, IRouteCall, ParameterType, ArgHydrator, Request as sRequest, RouteArgs } from '@spinajs/http';
|
|
3
3
|
import { IContainer, Bootstrapper } from '@spinajs/di';
|
|
4
|
+
export * from "./interfaces.js";
|
|
5
|
+
export * from "./model.js";
|
|
6
|
+
export * from "./decorators.js";
|
|
7
|
+
export * from "./builders.js";
|
|
4
8
|
export declare class AsDbModel extends RouteArgs {
|
|
5
9
|
get SupportedType(): string;
|
|
6
10
|
extract(callData: IRouteCall, param: IRouteParameter, req: sRequest): Promise<{
|
package/lib/cjs/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
2
13
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
14
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
15
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
16
|
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
17
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
18
|
};
|
|
19
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
20
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
21
|
+
};
|
|
8
22
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
23
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
24
|
};
|
|
@@ -13,6 +27,11 @@ exports.OrmHttpBootstrapper = exports.FromModel = exports.AsModel = exports.DbMo
|
|
|
13
27
|
const orm_1 = require("@spinajs/orm");
|
|
14
28
|
const http_1 = require("@spinajs/http");
|
|
15
29
|
const di_1 = require("@spinajs/di");
|
|
30
|
+
const model_js_1 = require("./model.js");
|
|
31
|
+
__exportStar(require("./interfaces.js"), exports);
|
|
32
|
+
__exportStar(require("./model.js"), exports);
|
|
33
|
+
__exportStar(require("./decorators.js"), exports);
|
|
34
|
+
__exportStar(require("./builders.js"), exports);
|
|
16
35
|
let AsDbModel = class AsDbModel extends http_1.RouteArgs {
|
|
17
36
|
get SupportedType() {
|
|
18
37
|
return 'AsDbModel';
|
|
@@ -98,6 +117,13 @@ let OrmHttpBootstrapper = class OrmHttpBootstrapper extends di_1.Bootstrapper {
|
|
|
98
117
|
orm.Models.forEach((m) => {
|
|
99
118
|
Reflect.defineMetadata('custom:arg_hydrator', { hydrator: DbModelHydrator }, m.type);
|
|
100
119
|
});
|
|
120
|
+
// add custom mixins
|
|
121
|
+
orm.Models.forEach((m) => {
|
|
122
|
+
// tslint:disable-next-line: forin
|
|
123
|
+
for (const mixin in model_js_1.MODEL_STATIC_MIXINS) {
|
|
124
|
+
m.type[mixin] = model_js_1.MODEL_STATIC_MIXINS[mixin].bind(m.type);
|
|
125
|
+
}
|
|
126
|
+
});
|
|
101
127
|
});
|
|
102
128
|
}
|
|
103
129
|
};
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/interfaces.d.ts
CHANGED
|
@@ -17,4 +17,38 @@ 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 {
|
|
45
|
+
column: string;
|
|
46
|
+
operators: FilterableOperators[];
|
|
47
|
+
}
|
|
48
|
+
export interface IFilter {
|
|
49
|
+
Column: string;
|
|
50
|
+
Operator: FilterableOperators;
|
|
51
|
+
Value: any;
|
|
52
|
+
}
|
|
53
|
+
export type FilterableOperators = 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'like' | 'in' | 'nin' | 'between' | 'isnull' | 'notnull' | 'notbetween';
|
|
20
54
|
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -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"}
|
|
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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare const MODEL_STATIC_MIXINS: {
|
|
2
|
+
filterColumns(): {
|
|
3
|
+
column: string;
|
|
4
|
+
operators: import("./interfaces").FilterableOperators[];
|
|
5
|
+
}[];
|
|
6
|
+
filterSchema(): {
|
|
7
|
+
type: string;
|
|
8
|
+
oneOf: {
|
|
9
|
+
type: string;
|
|
10
|
+
required: string[];
|
|
11
|
+
properties: {
|
|
12
|
+
field: {
|
|
13
|
+
const: string;
|
|
14
|
+
};
|
|
15
|
+
value: {
|
|
16
|
+
type: string[];
|
|
17
|
+
};
|
|
18
|
+
operator: import("./interfaces").FilterableOperators[];
|
|
19
|
+
};
|
|
20
|
+
}[];
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;CAsC/B,CAAC"}
|
package/lib/cjs/model.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MODEL_STATIC_MIXINS = void 0;
|
|
4
|
+
const orm_1 = require("@spinajs/orm");
|
|
5
|
+
exports.MODEL_STATIC_MIXINS = {
|
|
6
|
+
filterColumns() {
|
|
7
|
+
const modelDescriptor = this.getModelDescriptor();
|
|
8
|
+
if (!modelDescriptor) {
|
|
9
|
+
throw new orm_1.OrmException(`Model ${this.constructor.name} has no descriptor`);
|
|
10
|
+
}
|
|
11
|
+
return modelDescriptor.Columns.filter((c) => c.Filterable !== null && c.Filterable !== undefined && c.Filterable.length > 0).map((c) => {
|
|
12
|
+
return {
|
|
13
|
+
column: c.Name,
|
|
14
|
+
operators: c.Filterable,
|
|
15
|
+
};
|
|
16
|
+
});
|
|
17
|
+
},
|
|
18
|
+
filterSchema() {
|
|
19
|
+
const modelDescriptor = this.getModelDescriptor();
|
|
20
|
+
if (!modelDescriptor) {
|
|
21
|
+
throw new orm_1.OrmException(`Model ${this.constructor.name} has no descriptor`);
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
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
|
+
}),
|
|
36
|
+
};
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../src/builders.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { SqlOperator, WhereBuilder } from "@spinajs/orm";
|
|
2
|
+
/**
|
|
3
|
+
* Extend where builder with flter func old style ( by prototype )
|
|
4
|
+
*/
|
|
5
|
+
WhereBuilder.prototype.filter = function (filters) {
|
|
6
|
+
filters.forEach((filter) => {
|
|
7
|
+
switch (filter.Operator) {
|
|
8
|
+
case 'eq':
|
|
9
|
+
this.andWhere(filter.Column, SqlOperator.EQ, filter.Value);
|
|
10
|
+
break;
|
|
11
|
+
case 'neq':
|
|
12
|
+
this.andWhere(filter.Column, SqlOperator.NOT, filter.Value);
|
|
13
|
+
break;
|
|
14
|
+
case 'gt':
|
|
15
|
+
this.andWhere(filter.Column, SqlOperator.GT, filter.Value);
|
|
16
|
+
break;
|
|
17
|
+
case 'gte':
|
|
18
|
+
this.andWhere(filter.Column, SqlOperator.GTE, filter.Value);
|
|
19
|
+
break;
|
|
20
|
+
case 'lt':
|
|
21
|
+
this.andWhere(filter.Column, SqlOperator.LT, filter.Value);
|
|
22
|
+
break;
|
|
23
|
+
case 'lte':
|
|
24
|
+
this.andWhere(filter.Column, SqlOperator.LTE, filter.Value);
|
|
25
|
+
break;
|
|
26
|
+
case 'like':
|
|
27
|
+
this.andWhere(filter.Column, SqlOperator.LIKE, filter.Value);
|
|
28
|
+
break;
|
|
29
|
+
case 'in':
|
|
30
|
+
this.andWhere(filter.Column, SqlOperator.IN, filter.Value);
|
|
31
|
+
break;
|
|
32
|
+
case 'nin':
|
|
33
|
+
this.andWhere(filter.Column, SqlOperator.NOT_IN, filter.Value);
|
|
34
|
+
break;
|
|
35
|
+
case 'between':
|
|
36
|
+
this.andWhere(filter.Column, SqlOperator.BETWEEN, filter.Value);
|
|
37
|
+
break;
|
|
38
|
+
case 'isnull':
|
|
39
|
+
this.andWhere(filter.Column, SqlOperator.NULL);
|
|
40
|
+
break;
|
|
41
|
+
case 'notnull':
|
|
42
|
+
this.andWhere(filter.Column, SqlOperator.NOT_NULL);
|
|
43
|
+
break;
|
|
44
|
+
case 'notbetween':
|
|
45
|
+
this.andWhere(filter.Column, SqlOperator.NOT_BETWEEN, filter.Value);
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
return this;
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=builders.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { extractDecoratorDescriptor } from "@spinajs/orm";
|
|
2
|
+
export function Filterable(operators) {
|
|
3
|
+
return extractDecoratorDescriptor((model, _target, propertyKey) => {
|
|
4
|
+
const columnDesc = model.Columns.find((c) => c.Name === propertyKey);
|
|
5
|
+
if (!columnDesc) {
|
|
6
|
+
// we dont want to fill all props, they will be loaded from db and mergeg with this
|
|
7
|
+
model.Columns.push({ Name: propertyKey, Filterable: operators });
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
columnDesc.Filterable = operators;
|
|
11
|
+
}
|
|
12
|
+
}, true);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=decorators.js.map
|
|
@@ -0,0 +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"}
|
package/lib/mjs/index.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { Orm, ModelBase } from '@spinajs/orm';
|
|
2
2
|
import { IRouteParameter, IRouteCall, ParameterType, ArgHydrator, Request as sRequest, RouteArgs } from '@spinajs/http';
|
|
3
3
|
import { IContainer, Bootstrapper } from '@spinajs/di';
|
|
4
|
+
export * from "./interfaces.js";
|
|
5
|
+
export * from "./model.js";
|
|
6
|
+
export * from "./decorators.js";
|
|
7
|
+
export * from "./builders.js";
|
|
4
8
|
export declare class AsDbModel extends RouteArgs {
|
|
5
9
|
get SupportedType(): string;
|
|
6
10
|
extract(callData: IRouteCall, param: IRouteParameter, req: sRequest): Promise<{
|
package/lib/mjs/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/lib/mjs/index.js
CHANGED
|
@@ -10,6 +10,11 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
import { Orm, OrmException } from '@spinajs/orm';
|
|
11
11
|
import { Parameter, Route, ParameterType, ArgHydrator, RouteArgs } from '@spinajs/http';
|
|
12
12
|
import { Injectable, Container, Autoinject, Bootstrapper, DI } from '@spinajs/di';
|
|
13
|
+
import { MODEL_STATIC_MIXINS } from './model.js';
|
|
14
|
+
export * from "./interfaces.js";
|
|
15
|
+
export * from "./model.js";
|
|
16
|
+
export * from "./decorators.js";
|
|
17
|
+
export * from "./builders.js";
|
|
13
18
|
let AsDbModel = class AsDbModel extends RouteArgs {
|
|
14
19
|
get SupportedType() {
|
|
15
20
|
return 'AsDbModel';
|
|
@@ -92,6 +97,13 @@ let OrmHttpBootstrapper = class OrmHttpBootstrapper extends Bootstrapper {
|
|
|
92
97
|
orm.Models.forEach((m) => {
|
|
93
98
|
Reflect.defineMetadata('custom:arg_hydrator', { hydrator: DbModelHydrator }, m.type);
|
|
94
99
|
});
|
|
100
|
+
// add custom mixins
|
|
101
|
+
orm.Models.forEach((m) => {
|
|
102
|
+
// tslint:disable-next-line: forin
|
|
103
|
+
for (const mixin in MODEL_STATIC_MIXINS) {
|
|
104
|
+
m.type[mixin] = MODEL_STATIC_MIXINS[mixin].bind(m.type);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
95
107
|
});
|
|
96
108
|
}
|
|
97
109
|
};
|
package/lib/mjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,GAAG,EAAa,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAA+B,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAuB,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1I,OAAO,EAAc,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/mjs/interfaces.d.ts
CHANGED
|
@@ -17,4 +17,38 @@ 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 {
|
|
45
|
+
column: string;
|
|
46
|
+
operators: FilterableOperators[];
|
|
47
|
+
}
|
|
48
|
+
export interface IFilter {
|
|
49
|
+
Column: string;
|
|
50
|
+
Operator: FilterableOperators;
|
|
51
|
+
Value: any;
|
|
52
|
+
}
|
|
53
|
+
export type FilterableOperators = 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'like' | 'in' | 'nin' | 'between' | 'isnull' | 'notnull' | 'notbetween';
|
|
20
54
|
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -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"}
|
|
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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare const MODEL_STATIC_MIXINS: {
|
|
2
|
+
filterColumns(): {
|
|
3
|
+
column: string;
|
|
4
|
+
operators: import("./interfaces.js").FilterableOperators[];
|
|
5
|
+
}[];
|
|
6
|
+
filterSchema(): {
|
|
7
|
+
type: string;
|
|
8
|
+
oneOf: {
|
|
9
|
+
type: string;
|
|
10
|
+
required: string[];
|
|
11
|
+
properties: {
|
|
12
|
+
field: {
|
|
13
|
+
const: string;
|
|
14
|
+
};
|
|
15
|
+
value: {
|
|
16
|
+
type: string[];
|
|
17
|
+
};
|
|
18
|
+
operator: import("./interfaces.js").FilterableOperators[];
|
|
19
|
+
};
|
|
20
|
+
}[];
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;CAsC/B,CAAC"}
|
package/lib/mjs/model.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { OrmException } from '@spinajs/orm';
|
|
2
|
+
export const MODEL_STATIC_MIXINS = {
|
|
3
|
+
filterColumns() {
|
|
4
|
+
const modelDescriptor = this.getModelDescriptor();
|
|
5
|
+
if (!modelDescriptor) {
|
|
6
|
+
throw new OrmException(`Model ${this.constructor.name} has no descriptor`);
|
|
7
|
+
}
|
|
8
|
+
return modelDescriptor.Columns.filter((c) => c.Filterable !== null && c.Filterable !== undefined && c.Filterable.length > 0).map((c) => {
|
|
9
|
+
return {
|
|
10
|
+
column: c.Name,
|
|
11
|
+
operators: c.Filterable,
|
|
12
|
+
};
|
|
13
|
+
});
|
|
14
|
+
},
|
|
15
|
+
filterSchema() {
|
|
16
|
+
const modelDescriptor = this.getModelDescriptor();
|
|
17
|
+
if (!modelDescriptor) {
|
|
18
|
+
throw new OrmException(`Model ${this.constructor.name} has no descriptor`);
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
type: 'array',
|
|
22
|
+
oneOf: modelDescriptor.Columns.filter((c) => c.Filterable !== null && c.Filterable !== undefined && c.Filterable.length > 0).map((c) => {
|
|
23
|
+
return {
|
|
24
|
+
type: 'object',
|
|
25
|
+
required: ['field', 'value', 'operator'],
|
|
26
|
+
properties: {
|
|
27
|
+
field: { const: c.Name },
|
|
28
|
+
value: { type: ['string', 'integer'] },
|
|
29
|
+
operator: c.Filterable,
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
}),
|
|
33
|
+
};
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,YAAY,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,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,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"}
|