@recursyve/nestjs-data-filter 9.4.0-beta.0 → 9.4.1
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/adapters/default-access-control.adapter.js +3 -3
- package/lib/adapters/default-export.adapter.js +3 -3
- package/lib/adapters/default-translate.adapter.js +3 -3
- package/lib/data-filter.repository.d.ts +1 -3
- package/lib/data-filter.repository.js +11 -14
- package/lib/data-filter.service.d.ts +4 -4
- package/lib/data-filter.service.js +9 -10
- package/lib/filter/base-filter.d.ts +0 -3
- package/lib/filter/base-filter.js +1 -19
- package/lib/filter/controllers/dynamic-filter.controller.js +2 -2
- package/lib/filter/controllers/filter.controller.js +2 -2
- package/lib/filter/decorators/inject-filter.decorator.d.ts +1 -1
- package/lib/filter/filter.factory.d.ts +1 -2
- package/lib/filter/filter.factory.js +3 -3
- package/lib/filter/filter.provider.js +2 -3
- package/lib/filter/filter.service.d.ts +2 -3
- package/lib/filter/filter.service.js +26 -17
- package/lib/filter/filters/date-time.filter.js +5 -12
- package/lib/filter/filters/filter.d.ts +0 -3
- package/lib/filter/filters/filter.js +5 -8
- package/lib/filter/filters/geo-bounds.filter.js +3 -2
- package/lib/filter/filters/geo-localization.filter.js +2 -2
- package/lib/filter/filters/group.filter.d.ts +0 -3
- package/lib/filter/filters/group.filter.js +2 -9
- package/lib/filter/filters/options.filter.d.ts +46 -0
- package/lib/filter/filters/options.filter.js +111 -0
- package/lib/filter/filters/select.filter.d.ts +3 -1
- package/lib/filter/filters/select.filter.js +2 -2
- package/lib/filter/guards/filter-query.guard.js +3 -3
- package/lib/filter/interceptors/data-file-download.interceptor.js +3 -3
- package/lib/filter/models/filter-configuration-search.model.d.ts +2 -0
- package/lib/filter/models/filter-configuration-search.model.js +1 -1
- package/lib/filter/operators.js +2 -2
- package/lib/filter/order-rules/enum.order-rule.js +3 -2
- package/lib/filter/order-rules/if.order-rule.js +3 -2
- package/lib/filter/order-rules/is-null.order-rule.js +3 -2
- package/lib/filter/order-rules/order-rule.d.ts +0 -3
- package/lib/filter/order-rules/order-rule.js +2 -5
- package/lib/filter/type.js +2 -2
- package/lib/index.js +5 -6
- package/lib/models/attributes.model.d.ts +1 -8
- package/lib/models/attributes.model.js +11 -21
- package/lib/models/count.model.d.ts +4 -11
- package/lib/models/count.model.js +14 -25
- package/lib/models/custom-attributes.model.d.ts +2 -6
- package/lib/models/custom-attributes.model.js +1 -5
- package/lib/models/data-filter.model.d.ts +2 -9
- package/lib/models/data-filter.model.js +30 -40
- package/lib/models/distance.model.d.ts +3 -10
- package/lib/models/distance.model.js +18 -29
- package/lib/models/export-types.model.js +2 -2
- package/lib/models/sum.model.d.ts +3 -10
- package/lib/models/sum.model.js +8 -19
- package/lib/scanners/data-filter.scanner.js +3 -3
- package/lib/scanners/sequelize-model.scanner.d.ts +2 -4
- package/lib/scanners/sequelize-model.scanner.js +10 -18
- package/lib/sequelize.utils.d.ts +3 -0
- package/lib/sequelize.utils.js +18 -1
- package/lib/services/data-filter-validation.service.js +3 -3
- package/package.json +1 -1
|
@@ -1,41 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.CountAttributesConfig = void 0;
|
|
4
4
|
const sequelize_1 = require("sequelize");
|
|
5
|
-
const
|
|
5
|
+
const sequelize_utils_1 = require("../sequelize.utils");
|
|
6
6
|
class CountAttributesConfig {
|
|
7
7
|
constructor(key, config) {
|
|
8
8
|
this.key = key;
|
|
9
9
|
this.config = config;
|
|
10
10
|
this.type = "count";
|
|
11
11
|
}
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
transform(options, path) {
|
|
13
|
+
if (this.config.distinct) {
|
|
14
|
+
const attribute = this.config.path
|
|
15
|
+
? sequelize_utils_1.SequelizeUtils.getLiteralFullName(this.config.attribute, this.config.path)
|
|
16
|
+
: this.config.attribute;
|
|
17
|
+
return [(0, sequelize_1.literal)(`COUNT(DISTINCT ${attribute})`), this.key];
|
|
18
|
+
}
|
|
19
|
+
const attribute = this.config.path
|
|
20
|
+
? (0, sequelize_1.literal)(sequelize_utils_1.SequelizeUtils.getLiteralFullName(this.config.attribute, this.config.path))
|
|
21
|
+
: this.config.attribute;
|
|
22
|
+
return [(0, sequelize_1.fn)("COUNT", attribute), this.key];
|
|
14
23
|
}
|
|
15
24
|
shouldGroupBy() {
|
|
16
25
|
return true;
|
|
17
26
|
}
|
|
18
27
|
}
|
|
19
28
|
exports.CountAttributesConfig = CountAttributesConfig;
|
|
20
|
-
class CountAttributesContext extends custom_attributes_model_1.CustomAttributesContext {
|
|
21
|
-
constructor(config, dialectFormatterService) {
|
|
22
|
-
super();
|
|
23
|
-
this.config = config;
|
|
24
|
-
this.dialectFormatterService = dialectFormatterService;
|
|
25
|
-
}
|
|
26
|
-
transform(options, path) {
|
|
27
|
-
if (this.config.config.distinct) {
|
|
28
|
-
const attribute = this.config.config.path
|
|
29
|
-
? this.dialectFormatterService.getLiteralFullName(this.config.config.attribute, this.config.config.path)
|
|
30
|
-
: this.config.config.attribute;
|
|
31
|
-
return [(0, sequelize_1.literal)(`COUNT(DISTINCT ${attribute})`), this.config.key];
|
|
32
|
-
}
|
|
33
|
-
const attribute = this.config.config.path
|
|
34
|
-
? (0, sequelize_1.literal)(this.dialectFormatterService.getLiteralFullName(this.config.config.attribute, this.config.config.path))
|
|
35
|
-
: this.config.config.attribute;
|
|
36
|
-
return [(0, sequelize_1.fn)("COUNT", attribute), this.config.key];
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
exports.CountAttributesContext = CountAttributesContext;
|
|
40
29
|
|
|
41
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvY291bnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQXlEO0FBRXpELHdEQUFvRDtBQVFwRCxNQUFhLHFCQUFxQjtJQUc5QixZQUFtQixHQUFXLEVBQVMsTUFBbUI7UUFBdkMsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUFTLFdBQU0sR0FBTixNQUFNLENBQWE7UUFGbkQsU0FBSSxHQUFHLE9BQU8sQ0FBQztJQUV1QyxDQUFDO0lBRXZELFNBQVMsQ0FBQyxPQUFlLEVBQUUsSUFBYTtRQUMzQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ3RCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtnQkFDOUIsQ0FBQyxDQUFDLGdDQUFjLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQzVFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUM1QixPQUFPLENBQUMsSUFBQSxtQkFBTyxFQUFDLGtCQUFrQixTQUFTLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM5RDtRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtZQUM5QixDQUFDLENBQUMsSUFBQSxtQkFBTyxFQUFDLGdDQUFjLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyRixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDNUIsT0FBTyxDQUFDLElBQUEsY0FBRSxFQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVNLGFBQWE7UUFDaEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKO0FBdEJELHNEQXNCQyIsImZpbGUiOiJsaWIvbW9kZWxzL2NvdW50Lm1vZGVsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHIgfSBmcm9tIFwiZGF0ZS1mbnMvbG9jYWxlXCI7XG5pbXBvcnQgeyBmbiwgbGl0ZXJhbCwgUHJvamVjdGlvbkFsaWFzIH0gZnJvbSBcInNlcXVlbGl6ZVwiO1xuaW1wb3J0IHsgR3JvdXBPcHRpb24gfSBmcm9tIFwic2VxdWVsaXplL3R5cGVzL21vZGVsXCI7XG5pbXBvcnQgeyBTZXF1ZWxpemVVdGlscyB9IGZyb20gXCIuLi9zZXF1ZWxpemUudXRpbHNcIjtcbmltcG9ydCB7IEN1c3RvbUF0dHJpYnV0ZXNDb25maWcsIEN1c3RvbUF0dHJpYnV0ZXNPcHRpb25Db25maWcgfSBmcm9tIFwiLi9jdXN0b20tYXR0cmlidXRlcy5tb2RlbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvdW50Q29uZmlnIGV4dGVuZHMgQ3VzdG9tQXR0cmlidXRlc09wdGlvbkNvbmZpZyB7XG4gICAgYXR0cmlidXRlOiBzdHJpbmc7XG4gICAgZGlzdGluY3Q/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQ291bnRBdHRyaWJ1dGVzQ29uZmlnIGltcGxlbWVudHMgQ3VzdG9tQXR0cmlidXRlc0NvbmZpZzxDb3VudENvbmZpZz4ge1xuICAgIHB1YmxpYyB0eXBlID0gXCJjb3VudFwiO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGtleTogc3RyaW5nLCBwdWJsaWMgY29uZmlnOiBDb3VudENvbmZpZykge31cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm0ob3B0aW9uczogb2JqZWN0LCBwYXRoPzogc3RyaW5nKTogc3RyaW5nIHwgUHJvamVjdGlvbkFsaWFzIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmRpc3RpbmN0KSB7XG4gICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGUgPSB0aGlzLmNvbmZpZy5wYXRoXG4gICAgICAgICAgICAgICAgPyBTZXF1ZWxpemVVdGlscy5nZXRMaXRlcmFsRnVsbE5hbWUodGhpcy5jb25maWcuYXR0cmlidXRlLCB0aGlzLmNvbmZpZy5wYXRoKVxuICAgICAgICAgICAgICAgIDogdGhpcy5jb25maWcuYXR0cmlidXRlO1xuICAgICAgICAgICAgcmV0dXJuIFtsaXRlcmFsKGBDT1VOVChESVNUSU5DVCAke2F0dHJpYnV0ZX0pYCksIHRoaXMua2V5XTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IHRoaXMuY29uZmlnLnBhdGhcbiAgICAgICAgICAgID8gbGl0ZXJhbChTZXF1ZWxpemVVdGlscy5nZXRMaXRlcmFsRnVsbE5hbWUodGhpcy5jb25maWcuYXR0cmlidXRlLCB0aGlzLmNvbmZpZy5wYXRoKSlcbiAgICAgICAgICAgIDogdGhpcy5jb25maWcuYXR0cmlidXRlO1xuICAgICAgICByZXR1cm4gW2ZuKFwiQ09VTlRcIiwgYXR0cmlidXRlKSwgdGhpcy5rZXldO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG91bGRHcm91cEJ5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ProjectionAlias } from "sequelize";
|
|
2
|
-
import { DialectFormatterService } from "../services/dialect-formatter.service";
|
|
3
2
|
import { IncludeWhereModel } from "./include.model";
|
|
4
3
|
import { PathModel } from "./path.model";
|
|
5
4
|
export interface CustomAttributesOptionConfig {
|
|
@@ -7,16 +6,13 @@ export interface CustomAttributesOptionConfig {
|
|
|
7
6
|
path?: string;
|
|
8
7
|
where?: IncludeWhereModel;
|
|
9
8
|
}
|
|
10
|
-
export interface CustomAttributesConfig<T extends CustomAttributesOptionConfig = CustomAttributesOptionConfig
|
|
9
|
+
export interface CustomAttributesConfig<T extends CustomAttributesOptionConfig = CustomAttributesOptionConfig> {
|
|
11
10
|
key: string;
|
|
12
11
|
type: string;
|
|
13
12
|
config?: T;
|
|
14
|
-
|
|
13
|
+
transform(options?: object, path?: string): string | ProjectionAlias;
|
|
15
14
|
shouldGroupBy(): boolean;
|
|
16
15
|
}
|
|
17
|
-
export declare abstract class CustomAttributesContext {
|
|
18
|
-
abstract transform(options?: object, path?: string): string | ProjectionAlias;
|
|
19
|
-
}
|
|
20
16
|
export interface CustomAttributesModel {
|
|
21
17
|
key: string;
|
|
22
18
|
attribute: string | ProjectionAlias;
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CustomAttributesContext = void 0;
|
|
4
|
-
class CustomAttributesContext {
|
|
5
|
-
}
|
|
6
|
-
exports.CustomAttributesContext = CustomAttributesContext;
|
|
7
3
|
|
|
8
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvY3VzdG9tLWF0dHJpYnV0ZXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJsaWIvbW9kZWxzL2N1c3RvbS1hdHRyaWJ1dGVzLm1vZGVsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvamVjdGlvbkFsaWFzIH0gZnJvbSBcInNlcXVlbGl6ZVwiO1xuaW1wb3J0IHsgR3JvdXBPcHRpb24gfSBmcm9tIFwic2VxdWVsaXplL3R5cGVzL21vZGVsXCI7XG5pbXBvcnQgeyBJbmNsdWRlV2hlcmVNb2RlbCB9IGZyb20gXCIuL2luY2x1ZGUubW9kZWxcIjtcbmltcG9ydCB7IFBhdGhNb2RlbCB9IGZyb20gXCIuL3BhdGgubW9kZWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21BdHRyaWJ1dGVzT3B0aW9uQ29uZmlnIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcGF0aD86IHN0cmluZztcbiAgICB3aGVyZT86IEluY2x1ZGVXaGVyZU1vZGVsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUF0dHJpYnV0ZXNDb25maWc8VCBleHRlbmRzIEN1c3RvbUF0dHJpYnV0ZXNPcHRpb25Db25maWcgPSBDdXN0b21BdHRyaWJ1dGVzT3B0aW9uQ29uZmlnPiB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGNvbmZpZz86IFQ7XG5cbiAgICB0cmFuc2Zvcm0ob3B0aW9ucz86IG9iamVjdCwgcGF0aD86IHN0cmluZyk6IHN0cmluZyB8IFByb2plY3Rpb25BbGlhcztcbiAgICBzaG91bGRHcm91cEJ5KCk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tQXR0cmlidXRlc01vZGVsIHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBhdHRyaWJ1dGU6IHN0cmluZyB8IFByb2plY3Rpb25BbGlhcztcbiAgICBwYXRoPzogUGF0aE1vZGVsO1xufVxuIl19
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { FindAttributeOptions } from "sequelize";
|
|
2
2
|
import { Model } from "sequelize-typescript";
|
|
3
|
-
import { DialectFormatterService } from "../services/dialect-formatter.service";
|
|
4
3
|
import { CustomAttributesConfig, CustomAttributesModel } from "./custom-attributes.model";
|
|
5
4
|
import { IncludeConfig } from "./include.model";
|
|
6
5
|
export interface DataFilterConfigModel {
|
|
@@ -16,20 +15,14 @@ export declare class DataFilterConfig implements DataFilterConfigModel {
|
|
|
16
15
|
exportColumns?: string[];
|
|
17
16
|
customAttributes: CustomAttributesConfig[];
|
|
18
17
|
ignoreInSearch: boolean;
|
|
19
|
-
withContext(dialectFormatterService: DialectFormatterService): DataFilterContext;
|
|
20
18
|
setModel(model: typeof Model): void;
|
|
21
19
|
setIgnoreInPath(ignore: boolean): void;
|
|
22
20
|
setAttributes(attributes?: FindAttributeOptions): void;
|
|
23
21
|
setSearchableAttributes(attributes: string[]): void;
|
|
24
22
|
setExportColumns(exportColumns: string[]): void;
|
|
25
23
|
addCustomAttribute(attribute: CustomAttributesConfig): void;
|
|
26
|
-
getCustomAttributesIncludes(): IncludeConfig[];
|
|
27
|
-
getSearchableAttributes(): string[];
|
|
28
|
-
}
|
|
29
|
-
export declare class DataFilterContext {
|
|
30
|
-
private config;
|
|
31
|
-
private dialectFormatterService;
|
|
32
|
-
constructor(config: DataFilterConfig, dialectFormatterService: DialectFormatterService);
|
|
33
24
|
transformAttributesConfig(options?: object): FindAttributeOptions;
|
|
34
25
|
getCustomAttributes(options?: object): CustomAttributesModel[];
|
|
26
|
+
getCustomAttributesIncludes(): IncludeConfig[];
|
|
27
|
+
getSearchableAttributes(): string[];
|
|
35
28
|
}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.DataFilterConfig = void 0;
|
|
4
4
|
const sequelize_utils_1 = require("../sequelize.utils");
|
|
5
5
|
class DataFilterConfig {
|
|
6
6
|
constructor() {
|
|
7
7
|
this.customAttributes = [];
|
|
8
8
|
this.ignoreInSearch = false;
|
|
9
9
|
}
|
|
10
|
-
withContext(dialectFormatterService) {
|
|
11
|
-
return new DataFilterContext(this, dialectFormatterService);
|
|
12
|
-
}
|
|
13
10
|
setModel(model) {
|
|
14
11
|
this.model = model;
|
|
15
12
|
}
|
|
@@ -28,6 +25,34 @@ class DataFilterConfig {
|
|
|
28
25
|
addCustomAttribute(attribute) {
|
|
29
26
|
this.customAttributes.push(attribute);
|
|
30
27
|
}
|
|
28
|
+
transformAttributesConfig(options) {
|
|
29
|
+
const customAttributes = this.getCustomAttributes(options);
|
|
30
|
+
if (this.attributes) {
|
|
31
|
+
if (this.customAttributes.length) {
|
|
32
|
+
return sequelize_utils_1.SequelizeUtils.ensureAttributesValidity(sequelize_utils_1.SequelizeUtils.mergeAttributes(this.attributes, {
|
|
33
|
+
include: customAttributes.map(x => x.attribute)
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
return sequelize_utils_1.SequelizeUtils.ensureAttributesValidity(this.attributes);
|
|
37
|
+
}
|
|
38
|
+
if (!this.attributes && customAttributes.length) {
|
|
39
|
+
return {
|
|
40
|
+
include: customAttributes.map(x => x.attribute)
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
getCustomAttributes(options) {
|
|
45
|
+
return this.customAttributes
|
|
46
|
+
.map(x => ({
|
|
47
|
+
key: x.key,
|
|
48
|
+
attribute: x.transform(options),
|
|
49
|
+
path: x.config.path ? {
|
|
50
|
+
path: x.config.path,
|
|
51
|
+
paranoid: true
|
|
52
|
+
} : null
|
|
53
|
+
}))
|
|
54
|
+
.filter(x => x.attribute);
|
|
55
|
+
}
|
|
31
56
|
getCustomAttributesIncludes() {
|
|
32
57
|
return this.customAttributes
|
|
33
58
|
.filter(x => x.config.path)
|
|
@@ -54,40 +79,5 @@ class DataFilterConfig {
|
|
|
54
79
|
}
|
|
55
80
|
}
|
|
56
81
|
exports.DataFilterConfig = DataFilterConfig;
|
|
57
|
-
class DataFilterContext {
|
|
58
|
-
constructor(config, dialectFormatterService) {
|
|
59
|
-
this.config = config;
|
|
60
|
-
this.dialectFormatterService = dialectFormatterService;
|
|
61
|
-
}
|
|
62
|
-
transformAttributesConfig(options) {
|
|
63
|
-
const customAttributes = this.getCustomAttributes(options);
|
|
64
|
-
if (this.config.attributes) {
|
|
65
|
-
if (this.config.customAttributes.length) {
|
|
66
|
-
return sequelize_utils_1.SequelizeUtils.ensureAttributesValidity(sequelize_utils_1.SequelizeUtils.mergeAttributes(this.config.attributes, {
|
|
67
|
-
include: customAttributes.map(x => x.attribute)
|
|
68
|
-
}));
|
|
69
|
-
}
|
|
70
|
-
return sequelize_utils_1.SequelizeUtils.ensureAttributesValidity(this.config.attributes);
|
|
71
|
-
}
|
|
72
|
-
if (!this.config.attributes && customAttributes.length) {
|
|
73
|
-
return {
|
|
74
|
-
include: customAttributes.map(x => x.attribute)
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
getCustomAttributes(options) {
|
|
79
|
-
return this.config.customAttributes
|
|
80
|
-
.map(x => ({
|
|
81
|
-
key: x.key,
|
|
82
|
-
attribute: x.withContext(this.dialectFormatterService).transform(options),
|
|
83
|
-
path: x.config.path ? {
|
|
84
|
-
path: x.config.path,
|
|
85
|
-
paranoid: true
|
|
86
|
-
} : null
|
|
87
|
-
}))
|
|
88
|
-
.filter(x => x.attribute);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
exports.DataFilterContext = DataFilterContext;
|
|
92
82
|
|
|
93
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvZGF0YS1maWx0ZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsd0RBQXVEO0FBU3ZELE1BQWEsZ0JBQWdCO0lBQTdCO1FBS1cscUJBQWdCLEdBQTZCLEVBQUUsQ0FBQztRQUNoRCxtQkFBYyxHQUFHLEtBQUssQ0FBQztJQXFGbEMsQ0FBQztJQW5GVSxRQUFRLENBQUMsS0FBbUI7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFlO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxhQUFhLENBQUMsVUFBaUM7UUFDbEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDakMsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFVBQW9CO1FBQy9DLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxVQUFVLENBQUM7SUFDM0MsQ0FBQztJQUVNLGdCQUFnQixDQUFDLGFBQXVCO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxTQUFpQztRQUN2RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxPQUFnQjtRQUM3QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO2dCQUM5QixPQUFPLGdDQUFjLENBQUMsd0JBQXdCLENBQzFDLGdDQUFjLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7b0JBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2lCQUNsRCxDQUFDLENBQ0wsQ0FBQzthQUNMO1lBRUQsT0FBTyxnQ0FBYyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNuRTtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtZQUM3QyxPQUFPO2dCQUNILE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2FBQ2xELENBQUM7U0FDTDtJQUNMLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxPQUFnQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0I7YUFDdkIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNQLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRztZQUNWLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztZQUMvQixJQUFJLEVBQUcsQ0FBQyxDQUFDLE1BQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUMzQixJQUFJLEVBQUcsQ0FBQyxDQUFDLE1BQWMsQ0FBQyxJQUFJO2dCQUM1QixRQUFRLEVBQUUsSUFBSTthQUNqQixDQUFDLENBQUMsQ0FBQyxJQUFJO1NBQ2UsQ0FBQSxDQUFDO2FBQzNCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sMkJBQTJCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQjthQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQzthQUMxQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ1AsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtZQUMzQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJO1lBQ25CLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDckIsUUFBUSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRU0sdUJBQXVCOztRQUMxQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckIsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUVELElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzNCLE9BQU8sZ0NBQWMsQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsS0FBaUIsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUM5RztRQUVELE1BQU0sb0JBQW9CLEdBQUcsZ0NBQWMsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsS0FBaUIsQ0FBQyxDQUFDO1FBQ2pHLE1BQU0sVUFBVSxHQUFHLGdDQUFjLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLEtBQWlCLEVBQUUsTUFBQSxJQUFJLENBQUMsVUFBc0IsbUNBQUksRUFBRSxDQUFDLENBQUM7UUFDL0gsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDckIsVUFBdUIsYUFBdkIsVUFBVSx1QkFBVixVQUFVLENBQWUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RixvQkFBb0IsQ0FBQztJQUM3QixDQUFDO0NBQ0o7QUEzRkQsNENBMkZDIiwiZmlsZSI6ImxpYi9tb2RlbHMvZGF0YS1maWx0ZXIubW9kZWwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaW5kQXR0cmlidXRlT3B0aW9ucyB9IGZyb20gXCJzZXF1ZWxpemVcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcInNlcXVlbGl6ZS10eXBlc2NyaXB0XCI7XG5pbXBvcnQgeyBDdXN0b21BdHRyaWJ1dGVzQ29uZmlnLCBDdXN0b21BdHRyaWJ1dGVzTW9kZWwgfSBmcm9tIFwiLi9jdXN0b20tYXR0cmlidXRlcy5tb2RlbFwiO1xuaW1wb3J0IHsgSW5jbHVkZUNvbmZpZyB9IGZyb20gXCIuL2luY2x1ZGUubW9kZWxcIjtcbmltcG9ydCB7IE0sIFNlcXVlbGl6ZVV0aWxzIH0gZnJvbSBcIi4uL3NlcXVlbGl6ZS51dGlsc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFGaWx0ZXJDb25maWdNb2RlbCB7XG4gICAgbW9kZWw6IHR5cGVvZiBNb2RlbDtcbiAgICBhdHRyaWJ1dGVzPzogRmluZEF0dHJpYnV0ZU9wdGlvbnM7XG4gICAgZXhwb3J0Q29sdW1ucz86IHN0cmluZ1tdO1xuICAgIGN1c3RvbUF0dHJpYnV0ZXM6IEN1c3RvbUF0dHJpYnV0ZXNDb25maWdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIERhdGFGaWx0ZXJDb25maWcgaW1wbGVtZW50cyBEYXRhRmlsdGVyQ29uZmlnTW9kZWwge1xuICAgIHB1YmxpYyBtb2RlbDogdHlwZW9mIE1vZGVsO1xuICAgIHB1YmxpYyBhdHRyaWJ1dGVzPzogRmluZEF0dHJpYnV0ZU9wdGlvbnM7XG4gICAgcHVibGljIHNlYXJjaGFibGVBdHRyaWJ1dGVzPzogc3RyaW5nW107XG4gICAgcHVibGljIGV4cG9ydENvbHVtbnM/OiBzdHJpbmdbXTtcbiAgICBwdWJsaWMgY3VzdG9tQXR0cmlidXRlczogQ3VzdG9tQXR0cmlidXRlc0NvbmZpZ1tdID0gW107XG4gICAgcHVibGljIGlnbm9yZUluU2VhcmNoID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgc2V0TW9kZWwobW9kZWw6IHR5cGVvZiBNb2RlbCkge1xuICAgICAgICB0aGlzLm1vZGVsID0gbW9kZWw7XG4gICAgfVxuXG4gICAgcHVibGljIHNldElnbm9yZUluUGF0aChpZ25vcmU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pZ25vcmVJblNlYXJjaCA9IGlnbm9yZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0QXR0cmlidXRlcyhhdHRyaWJ1dGVzPzogRmluZEF0dHJpYnV0ZU9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGVzID0gYXR0cmlidXRlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0U2VhcmNoYWJsZUF0dHJpYnV0ZXMoYXR0cmlidXRlczogc3RyaW5nW10pIHtcbiAgICAgICAgdGhpcy5zZWFyY2hhYmxlQXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEV4cG9ydENvbHVtbnMoZXhwb3J0Q29sdW1uczogc3RyaW5nW10pIHtcbiAgICAgICAgdGhpcy5leHBvcnRDb2x1bW5zID0gZXhwb3J0Q29sdW1ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ3VzdG9tQXR0cmlidXRlKGF0dHJpYnV0ZTogQ3VzdG9tQXR0cmlidXRlc0NvbmZpZykge1xuICAgICAgICB0aGlzLmN1c3RvbUF0dHJpYnV0ZXMucHVzaChhdHRyaWJ1dGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm1BdHRyaWJ1dGVzQ29uZmlnKG9wdGlvbnM/OiBvYmplY3QpOiBGaW5kQXR0cmlidXRlT3B0aW9ucyB7XG4gICAgICAgIGNvbnN0IGN1c3RvbUF0dHJpYnV0ZXMgPSB0aGlzLmdldEN1c3RvbUF0dHJpYnV0ZXMob3B0aW9ucyk7XG4gICAgICAgIGlmICh0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1c3RvbUF0dHJpYnV0ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFNlcXVlbGl6ZVV0aWxzLmVuc3VyZUF0dHJpYnV0ZXNWYWxpZGl0eShcbiAgICAgICAgICAgICAgICAgICAgU2VxdWVsaXplVXRpbHMubWVyZ2VBdHRyaWJ1dGVzKHRoaXMuYXR0cmlidXRlcywge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZTogY3VzdG9tQXR0cmlidXRlcy5tYXAoeCA9PiB4LmF0dHJpYnV0ZSlcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gU2VxdWVsaXplVXRpbHMuZW5zdXJlQXR0cmlidXRlc1ZhbGlkaXR5KHRoaXMuYXR0cmlidXRlcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmF0dHJpYnV0ZXMgJiYgY3VzdG9tQXR0cmlidXRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaW5jbHVkZTogY3VzdG9tQXR0cmlidXRlcy5tYXAoeCA9PiB4LmF0dHJpYnV0ZSlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VzdG9tQXR0cmlidXRlcyhvcHRpb25zPzogb2JqZWN0KTogQ3VzdG9tQXR0cmlidXRlc01vZGVsW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXN0b21BdHRyaWJ1dGVzXG4gICAgICAgICAgICAubWFwKHggPT4gKHtcbiAgICAgICAgICAgICAgICBrZXk6IHgua2V5LFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZTogeC50cmFuc2Zvcm0ob3B0aW9ucyksXG4gICAgICAgICAgICAgICAgcGF0aDogKHguY29uZmlnIGFzIGFueSkucGF0aCA/IHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogKHguY29uZmlnIGFzIGFueSkucGF0aCxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW5vaWQ6IHRydWVcbiAgICAgICAgICAgICAgICB9IDogbnVsbFxuICAgICAgICAgICAgfSBhcyBDdXN0b21BdHRyaWJ1dGVzTW9kZWwpKVxuICAgICAgICAgICAgLmZpbHRlcih4ID0+IHguYXR0cmlidXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VzdG9tQXR0cmlidXRlc0luY2x1ZGVzKCk6IEluY2x1ZGVDb25maWdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1c3RvbUF0dHJpYnV0ZXNcbiAgICAgICAgICAgIC5maWx0ZXIoeCA9PiB4LmNvbmZpZy5wYXRoKVxuICAgICAgICAgICAgLm1hcCh4ID0+ICh7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogeyBpbmNsdWRlOiBbXSB9LFxuICAgICAgICAgICAgICAgIHBhdGg6IHguY29uZmlnLnBhdGgsXG4gICAgICAgICAgICAgICAgd2hlcmU6IHguY29uZmlnLndoZXJlLFxuICAgICAgICAgICAgICAgIHBhcmFub2lkOiB0cnVlXG4gICAgICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNlYXJjaGFibGVBdHRyaWJ1dGVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgaWYgKHRoaXMuaWdub3JlSW5TZWFyY2gpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaGFibGVBdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gU2VxdWVsaXplVXRpbHMuZ2V0TW9kZWxTZWFyY2hhYmxlRmllbGRBdHRyaWJ1dGVzKHRoaXMubW9kZWwgYXMgdHlwZW9mIE0sIHRoaXMuc2VhcmNoYWJsZUF0dHJpYnV0ZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2VhcmNoYWJsZUF0dHJpYnV0ZXMgPSBTZXF1ZWxpemVVdGlscy5nZXRNb2RlbFNlYXJjaGFibGVBdHRyaWJ1dGVzKHRoaXMubW9kZWwgYXMgdHlwZW9mIE0pO1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gU2VxdWVsaXplVXRpbHMuZ2V0TW9kZWxTZWFyY2hhYmxlRmllbGRBdHRyaWJ1dGVzKHRoaXMubW9kZWwgYXMgdHlwZW9mIE0sIHRoaXMuYXR0cmlidXRlcyBhcyBzdHJpbmdbXSA/PyBbXSk7XG4gICAgICAgIHJldHVybiBhdHRyaWJ1dGVzLmxlbmd0aCA/XG4gICAgICAgICAgICAoYXR0cmlidXRlcyBhcyBzdHJpbmdbXSk/LmZpbHRlcih4ID0+IHNlYXJjaGFibGVBdHRyaWJ1dGVzLnNvbWUoYXR0ciA9PiBhdHRyID09PSB4KSkgOlxuICAgICAgICAgICAgc2VhcmNoYWJsZUF0dHJpYnV0ZXM7XG4gICAgfVxufVxuIl19
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ProjectionAlias } from "sequelize";
|
|
2
|
-
import {
|
|
3
|
-
import { CustomAttributesConfig, CustomAttributesContext, CustomAttributesOptionConfig } from "./custom-attributes.model";
|
|
2
|
+
import { CustomAttributesConfig, CustomAttributesOptionConfig } from "./custom-attributes.model";
|
|
4
3
|
export interface BaseDistanceConfig extends CustomAttributesOptionConfig {
|
|
5
4
|
coordinates: (option?: any) => [number, number];
|
|
6
5
|
srid?: number;
|
|
@@ -13,18 +12,12 @@ export interface DistanceConfigWithLatLng {
|
|
|
13
12
|
lngAttribute: string;
|
|
14
13
|
}
|
|
15
14
|
export type DistanceConfig = BaseDistanceConfig & (DistanceConfigWithPoint | DistanceConfigWithLatLng);
|
|
16
|
-
export declare class DistanceAttributesConfig implements CustomAttributesConfig<DistanceConfig
|
|
15
|
+
export declare class DistanceAttributesConfig implements CustomAttributesConfig<DistanceConfig> {
|
|
17
16
|
key: string;
|
|
18
17
|
config: DistanceConfig;
|
|
19
18
|
type: string;
|
|
20
19
|
constructor(key: string, config: DistanceConfig);
|
|
21
|
-
withContext(dialectFormatterService: DialectFormatterService): DistanceAttributesContext;
|
|
22
|
-
shouldGroupBy(): boolean;
|
|
23
|
-
}
|
|
24
|
-
export declare class DistanceAttributesContext extends CustomAttributesContext {
|
|
25
|
-
private config;
|
|
26
|
-
private dialectFormatterService;
|
|
27
|
-
constructor(config: DistanceAttributesConfig, dialectFormatterService: DialectFormatterService);
|
|
28
20
|
transform(options: object, path?: string): string | ProjectionAlias;
|
|
21
|
+
shouldGroupBy(): boolean;
|
|
29
22
|
private getPointAttribute;
|
|
30
23
|
}
|
|
@@ -1,34 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.DistanceAttributesConfig = void 0;
|
|
4
4
|
const sequelize_1 = require("sequelize");
|
|
5
|
-
const
|
|
5
|
+
const sequelize_utils_1 = require("../sequelize.utils");
|
|
6
6
|
class DistanceAttributesConfig {
|
|
7
7
|
constructor(key, config) {
|
|
8
8
|
this.key = key;
|
|
9
9
|
this.config = config;
|
|
10
10
|
this.type = "distance";
|
|
11
11
|
}
|
|
12
|
-
withContext(dialectFormatterService) {
|
|
13
|
-
return new DistanceAttributesContext(this, dialectFormatterService);
|
|
14
|
-
}
|
|
15
|
-
shouldGroupBy() {
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
exports.DistanceAttributesConfig = DistanceAttributesConfig;
|
|
20
|
-
class DistanceAttributesContext extends custom_attributes_model_1.CustomAttributesContext {
|
|
21
|
-
constructor(config, dialectFormatterService) {
|
|
22
|
-
super();
|
|
23
|
-
this.config = config;
|
|
24
|
-
this.dialectFormatterService = dialectFormatterService;
|
|
25
|
-
}
|
|
26
12
|
transform(options, path) {
|
|
27
13
|
var _a, _b;
|
|
28
14
|
if (!options) {
|
|
29
15
|
return null;
|
|
30
16
|
}
|
|
31
|
-
const coordinates = this.config.
|
|
17
|
+
const coordinates = this.config.coordinates(options);
|
|
32
18
|
if (!coordinates || coordinates.length < 2) {
|
|
33
19
|
return null;
|
|
34
20
|
}
|
|
@@ -36,23 +22,26 @@ class DistanceAttributesContext extends custom_attributes_model_1.CustomAttribut
|
|
|
36
22
|
if (typeof latitude !== "number" || typeof longitude !== "number") {
|
|
37
23
|
return null;
|
|
38
24
|
}
|
|
39
|
-
if (path || this.config.
|
|
40
|
-
path = [path, this.config.
|
|
25
|
+
if (path || this.config.path) {
|
|
26
|
+
path = [path, this.config.path].filter(x => x).join(".");
|
|
41
27
|
}
|
|
42
|
-
const location = (0, sequelize_1.fn)("ST_GeometryFromText", (0, sequelize_1.literal)(`'POINT(${latitude} ${longitude})'`), (_a = this.config.
|
|
43
|
-
return [(0, sequelize_1.fn)("ST_Distance_Sphere", this.getPointAttribute(path), location), (_b = this.config.
|
|
28
|
+
const location = (0, sequelize_1.fn)("ST_GeometryFromText", (0, sequelize_1.literal)(`'POINT(${latitude} ${longitude})'`), (_a = this.config.srid) !== null && _a !== void 0 ? _a : 0);
|
|
29
|
+
return [(0, sequelize_1.fn)("ST_Distance_Sphere", this.getPointAttribute(path), location), (_b = this.config.name) !== null && _b !== void 0 ? _b : this.key];
|
|
30
|
+
}
|
|
31
|
+
shouldGroupBy() {
|
|
32
|
+
return false;
|
|
44
33
|
}
|
|
45
34
|
getPointAttribute(path) {
|
|
46
|
-
if (this.config.
|
|
47
|
-
const att = this.config.
|
|
48
|
-
return (0, sequelize_1.literal)(path ?
|
|
35
|
+
if (this.config.attribute) {
|
|
36
|
+
const att = this.config.attribute;
|
|
37
|
+
return (0, sequelize_1.literal)(path ? sequelize_utils_1.SequelizeUtils.getLiteralFullName(att, path) : att);
|
|
49
38
|
}
|
|
50
|
-
const lat = path ? (0, sequelize_1.literal)(
|
|
51
|
-
const lng = path ? (0, sequelize_1.literal)(
|
|
39
|
+
const lat = path ? (0, sequelize_1.literal)(sequelize_utils_1.SequelizeUtils.getLiteralFullName(this.config.latAttribute, path)) : this.config.latAttribute;
|
|
40
|
+
const lng = path ? (0, sequelize_1.literal)(sequelize_utils_1.SequelizeUtils.getLiteralFullName(this.config.lngAttribute, path)) : this.config.lngAttribute;
|
|
52
41
|
const point = (0, sequelize_1.fn)("Point", lng, lat);
|
|
53
|
-
return this.config.
|
|
42
|
+
return this.config.srid ? (0, sequelize_1.fn)("ST_SRID", point, this.config.srid) : point;
|
|
54
43
|
}
|
|
55
44
|
}
|
|
56
|
-
exports.
|
|
45
|
+
exports.DistanceAttributesConfig = DistanceAttributesConfig;
|
|
57
46
|
|
|
58
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvZGlzdGFuY2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXlEO0FBRXpELHdEQUFvRDtBQW1CcEQsTUFBYSx3QkFBd0I7SUFHakMsWUFBbUIsR0FBVyxFQUFTLE1BQXNCO1FBQTFDLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUZ0RCxTQUFJLEdBQUcsVUFBVSxDQUFDO0lBRXVDLENBQUM7SUFFMUQsU0FBUyxDQUFDLE9BQWUsRUFBRSxJQUFhOztRQUMzQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDeEMsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLEdBQUcsV0FBVyxDQUFDO1FBQzFDLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsRUFBRTtZQUMvRCxPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDMUIsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzVEO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBQSxjQUFFLEVBQUMscUJBQXFCLEVBQUUsSUFBQSxtQkFBTyxFQUFDLFVBQVUsUUFBUSxJQUFJLFNBQVMsSUFBSSxDQUFDLEVBQUUsTUFBQSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksbUNBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEgsT0FBTyxDQUFDLElBQUEsY0FBRSxFQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLENBQUMsRUFBRSxNQUFBLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxtQ0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVNLGFBQWE7UUFDaEIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVPLGlCQUFpQixDQUFDLElBQVk7UUFDbEMsSUFBSyxJQUFJLENBQUMsTUFBa0MsQ0FBQyxTQUFTLEVBQUU7WUFDcEQsTUFBTSxHQUFHLEdBQUksSUFBSSxDQUFDLE1BQWtDLENBQUMsU0FBUyxDQUFDO1lBQy9ELE9BQU8sSUFBQSxtQkFBTyxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZ0NBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzdFO1FBRUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFBLG1CQUFPLEVBQUMsZ0NBQWMsQ0FBQyxrQkFBa0IsQ0FBRSxJQUFJLENBQUMsTUFBbUMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLE1BQW1DLENBQUMsWUFBWSxDQUFDO1FBQ3JMLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBQSxtQkFBTyxFQUFDLGdDQUFjLENBQUMsa0JBQWtCLENBQUUsSUFBSSxDQUFDLE1BQW1DLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxNQUFtQyxDQUFDLFlBQVksQ0FBQztRQUNyTCxNQUFNLEtBQUssR0FBRyxJQUFBLGNBQUUsRUFBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUEsY0FBRSxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzdFLENBQUM7Q0FDSjtBQTFDRCw0REEwQ0MiLCJmaWxlIjoibGliL21vZGVscy9kaXN0YW5jZS5tb2RlbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZuLCBsaXRlcmFsLCBQcm9qZWN0aW9uQWxpYXMgfSBmcm9tIFwic2VxdWVsaXplXCI7XG5pbXBvcnQgeyBHcm91cE9wdGlvbiB9IGZyb20gXCJzZXF1ZWxpemUvdHlwZXMvbW9kZWxcIjtcbmltcG9ydCB7IFNlcXVlbGl6ZVV0aWxzIH0gZnJvbSBcIi4uL3NlcXVlbGl6ZS51dGlsc1wiO1xuaW1wb3J0IHsgQ3VzdG9tQXR0cmlidXRlc0NvbmZpZywgQ3VzdG9tQXR0cmlidXRlc09wdGlvbkNvbmZpZyB9IGZyb20gXCIuL2N1c3RvbS1hdHRyaWJ1dGVzLm1vZGVsXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZURpc3RhbmNlQ29uZmlnIGV4dGVuZHMgQ3VzdG9tQXR0cmlidXRlc09wdGlvbkNvbmZpZyB7XG4gICAgY29vcmRpbmF0ZXM6IChvcHRpb24/KSA9PiBbbnVtYmVyLCBudW1iZXJdO1xuICAgIHNyaWQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzdGFuY2VDb25maWdXaXRoUG9pbnQge1xuICAgIGF0dHJpYnV0ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpc3RhbmNlQ29uZmlnV2l0aExhdExuZyB7XG4gICAgbGF0QXR0cmlidXRlOiBzdHJpbmc7XG4gICAgbG5nQXR0cmlidXRlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIERpc3RhbmNlQ29uZmlnID0gQmFzZURpc3RhbmNlQ29uZmlnICYgKERpc3RhbmNlQ29uZmlnV2l0aFBvaW50IHwgRGlzdGFuY2VDb25maWdXaXRoTGF0TG5nKTtcblxuZXhwb3J0IGNsYXNzIERpc3RhbmNlQXR0cmlidXRlc0NvbmZpZyBpbXBsZW1lbnRzIEN1c3RvbUF0dHJpYnV0ZXNDb25maWc8RGlzdGFuY2VDb25maWc+IHtcbiAgICBwdWJsaWMgdHlwZSA9IFwiZGlzdGFuY2VcIjtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBrZXk6IHN0cmluZywgcHVibGljIGNvbmZpZzogRGlzdGFuY2VDb25maWcpIHt9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtKG9wdGlvbnM6IG9iamVjdCwgcGF0aD86IHN0cmluZyk6IHN0cmluZyB8IFByb2plY3Rpb25BbGlhcyB7XG4gICAgICAgIGlmICghb3B0aW9ucykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb29yZGluYXRlcyA9IHRoaXMuY29uZmlnLmNvb3JkaW5hdGVzKG9wdGlvbnMpO1xuICAgICAgICBpZiAoIWNvb3JkaW5hdGVzIHx8IGNvb3JkaW5hdGVzLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgW2xhdGl0dWRlLCBsb25naXR1ZGVdID0gY29vcmRpbmF0ZXM7XG4gICAgICAgIGlmICh0eXBlb2YgbGF0aXR1ZGUgIT09IFwibnVtYmVyXCIgfHwgdHlwZW9mIGxvbmdpdHVkZSAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGggfHwgdGhpcy5jb25maWcucGF0aCkge1xuICAgICAgICAgICAgcGF0aCA9IFtwYXRoLCB0aGlzLmNvbmZpZy5wYXRoXS5maWx0ZXIoeCA9PiB4KS5qb2luKFwiLlwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxvY2F0aW9uID0gZm4oXCJTVF9HZW9tZXRyeUZyb21UZXh0XCIsIGxpdGVyYWwoYCdQT0lOVCgke2xhdGl0dWRlfSAke2xvbmdpdHVkZX0pJ2ApLCB0aGlzLmNvbmZpZy5zcmlkID8/IDApO1xuICAgICAgICByZXR1cm4gW2ZuKFwiU1RfRGlzdGFuY2VfU3BoZXJlXCIsIHRoaXMuZ2V0UG9pbnRBdHRyaWJ1dGUocGF0aCksIGxvY2F0aW9uKSwgdGhpcy5jb25maWcubmFtZSA/PyB0aGlzLmtleV07XG4gICAgfVxuXG4gICAgcHVibGljIHNob3VsZEdyb3VwQnkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFBvaW50QXR0cmlidXRlKHBhdGg6IHN0cmluZykge1xuICAgICAgICBpZiAoKHRoaXMuY29uZmlnIGFzIERpc3RhbmNlQ29uZmlnV2l0aFBvaW50KS5hdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGF0dCA9ICh0aGlzLmNvbmZpZyBhcyBEaXN0YW5jZUNvbmZpZ1dpdGhQb2ludCkuYXR0cmlidXRlO1xuICAgICAgICAgICAgcmV0dXJuIGxpdGVyYWwocGF0aCA/IFNlcXVlbGl6ZVV0aWxzLmdldExpdGVyYWxGdWxsTmFtZShhdHQsIHBhdGgpIDogYXR0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxhdCA9IHBhdGggPyBsaXRlcmFsKFNlcXVlbGl6ZVV0aWxzLmdldExpdGVyYWxGdWxsTmFtZSgodGhpcy5jb25maWcgYXMgRGlzdGFuY2VDb25maWdXaXRoTGF0TG5nKS5sYXRBdHRyaWJ1dGUsIHBhdGgpKSA6ICh0aGlzLmNvbmZpZyBhcyBEaXN0YW5jZUNvbmZpZ1dpdGhMYXRMbmcpLmxhdEF0dHJpYnV0ZTtcbiAgICAgICAgY29uc3QgbG5nID0gcGF0aCA/IGxpdGVyYWwoU2VxdWVsaXplVXRpbHMuZ2V0TGl0ZXJhbEZ1bGxOYW1lKCh0aGlzLmNvbmZpZyBhcyBEaXN0YW5jZUNvbmZpZ1dpdGhMYXRMbmcpLmxuZ0F0dHJpYnV0ZSwgcGF0aCkpIDogKHRoaXMuY29uZmlnIGFzIERpc3RhbmNlQ29uZmlnV2l0aExhdExuZykubG5nQXR0cmlidXRlO1xuICAgICAgICBjb25zdCBwb2ludCA9IGZuKFwiUG9pbnRcIiwgbG5nLCBsYXQpO1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcuc3JpZCA/IGZuKFwiU1RfU1JJRFwiLCBwb2ludCwgdGhpcy5jb25maWcuc3JpZCkgOiBwb2ludDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -8,6 +8,6 @@ var ExportTypes;
|
|
|
8
8
|
ExportTypes["CSV"] = "csv";
|
|
9
9
|
ExportTypes["PDF"] = "pdf";
|
|
10
10
|
ExportTypes["ZIP"] = "zip";
|
|
11
|
-
})(ExportTypes
|
|
11
|
+
})(ExportTypes = exports.ExportTypes || (exports.ExportTypes = {}));
|
|
12
12
|
|
|
13
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvZXhwb3J0LXR5cGVzLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQVksV0FNWDtBQU5ELFdBQVksV0FBVztJQUNuQiw0QkFBWSxDQUFBO0lBQ1osNEJBQVksQ0FBQTtJQUNaLDBCQUFVLENBQUE7SUFDViwwQkFBVSxDQUFBO0lBQ1YsMEJBQVUsQ0FBQTtBQUNkLENBQUMsRUFOVyxXQUFXLEdBQVgsbUJBQVcsS0FBWCxtQkFBVyxRQU10QiIsImZpbGUiOiJsaWIvbW9kZWxzL2V4cG9ydC10eXBlcy5tb2RlbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEV4cG9ydFR5cGVzIHtcbiAgICBYTFNYPSBcInhsc3hcIixcbiAgICBIVE1MPSBcImh0bWxcIixcbiAgICBDU1Y9IFwiY3N2XCIsXG4gICAgUERGPSBcInBkZlwiLFxuICAgIFpJUD0gXCJ6aXBcIixcbn1cbiJdfQ==
|
|
@@ -1,20 +1,13 @@
|
|
|
1
1
|
import { ProjectionAlias } from "sequelize";
|
|
2
|
-
import {
|
|
3
|
-
import { CustomAttributesConfig, CustomAttributesContext, CustomAttributesOptionConfig } from "./custom-attributes.model";
|
|
2
|
+
import { CustomAttributesConfig, CustomAttributesOptionConfig } from "./custom-attributes.model";
|
|
4
3
|
export interface SumConfig extends CustomAttributesOptionConfig {
|
|
5
4
|
attribute: string;
|
|
6
5
|
}
|
|
7
|
-
export declare class SumAttributesConfig implements CustomAttributesConfig<SumConfig
|
|
6
|
+
export declare class SumAttributesConfig implements CustomAttributesConfig<SumConfig> {
|
|
8
7
|
key: string;
|
|
9
8
|
config: SumConfig;
|
|
10
9
|
type: string;
|
|
11
10
|
constructor(key: string, config: SumConfig);
|
|
12
|
-
withContext(dialectFormatterService: DialectFormatterService): SumAttributesContext;
|
|
13
|
-
shouldGroupBy(): boolean;
|
|
14
|
-
}
|
|
15
|
-
export declare class SumAttributesContext extends CustomAttributesContext {
|
|
16
|
-
private config;
|
|
17
|
-
private dialectFormatterService;
|
|
18
|
-
constructor(config: SumAttributesConfig, dialectFormatterService: DialectFormatterService);
|
|
19
11
|
transform(options: object, path?: string): string | ProjectionAlias;
|
|
12
|
+
shouldGroupBy(): boolean;
|
|
20
13
|
}
|
package/lib/models/sum.model.js
CHANGED
|
@@ -1,35 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.SumAttributesConfig = void 0;
|
|
4
4
|
const sequelize_1 = require("sequelize");
|
|
5
|
-
const
|
|
5
|
+
const sequelize_utils_1 = require("../sequelize.utils");
|
|
6
6
|
class SumAttributesConfig {
|
|
7
7
|
constructor(key, config) {
|
|
8
8
|
this.key = key;
|
|
9
9
|
this.config = config;
|
|
10
10
|
this.type = "sum";
|
|
11
11
|
}
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
transform(options, path) {
|
|
13
|
+
const attribute = this.config.path
|
|
14
|
+
? (0, sequelize_1.literal)(sequelize_utils_1.SequelizeUtils.getLiteralFullName(this.config.attribute, this.config.path))
|
|
15
|
+
: this.config.attribute;
|
|
16
|
+
return [(0, sequelize_1.fn)("SUM", attribute), this.key];
|
|
14
17
|
}
|
|
15
18
|
shouldGroupBy() {
|
|
16
19
|
return true;
|
|
17
20
|
}
|
|
18
21
|
}
|
|
19
22
|
exports.SumAttributesConfig = SumAttributesConfig;
|
|
20
|
-
class SumAttributesContext extends custom_attributes_model_1.CustomAttributesContext {
|
|
21
|
-
constructor(config, dialectFormatterService) {
|
|
22
|
-
super();
|
|
23
|
-
this.config = config;
|
|
24
|
-
this.dialectFormatterService = dialectFormatterService;
|
|
25
|
-
}
|
|
26
|
-
transform(options, path) {
|
|
27
|
-
const attribute = this.config.config.path
|
|
28
|
-
? (0, sequelize_1.literal)(this.dialectFormatterService.getLiteralFullName(this.config.config.attribute, this.config.config.path))
|
|
29
|
-
: this.config.config.attribute;
|
|
30
|
-
return [(0, sequelize_1.fn)("SUM", attribute), this.config.key];
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
exports.SumAttributesContext = SumAttributesContext;
|
|
34
23
|
|
|
35
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvc3VtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlDQUF5RDtBQUV6RCx3REFBb0Q7QUFPcEQsTUFBYSxtQkFBbUI7SUFHNUIsWUFBbUIsR0FBVyxFQUFTLE1BQWlCO1FBQXJDLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBRmpELFNBQUksR0FBRyxLQUFLLENBQUM7SUFFdUMsQ0FBQztJQUVyRCxTQUFTLENBQUMsT0FBZSxFQUFFLElBQWE7UUFDM0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJO1lBQzlCLENBQUMsQ0FBQyxJQUFBLG1CQUFPLEVBQUMsZ0NBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JGLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUM1QixPQUFPLENBQUMsSUFBQSxjQUFFLEVBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sYUFBYTtRQUNoQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0o7QUFmRCxrREFlQyIsImZpbGUiOiJsaWIvbW9kZWxzL3N1bS5tb2RlbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRyIH0gZnJvbSBcImRhdGUtZm5zL2xvY2FsZVwiO1xuaW1wb3J0IHsgZm4sIGxpdGVyYWwsIFByb2plY3Rpb25BbGlhcyB9IGZyb20gXCJzZXF1ZWxpemVcIjtcbmltcG9ydCB7IEdyb3VwT3B0aW9uIH0gZnJvbSBcInNlcXVlbGl6ZS90eXBlcy9tb2RlbFwiO1xuaW1wb3J0IHsgU2VxdWVsaXplVXRpbHMgfSBmcm9tIFwiLi4vc2VxdWVsaXplLnV0aWxzXCI7XG5pbXBvcnQgeyBDdXN0b21BdHRyaWJ1dGVzQ29uZmlnLCBDdXN0b21BdHRyaWJ1dGVzT3B0aW9uQ29uZmlnIH0gZnJvbSBcIi4vY3VzdG9tLWF0dHJpYnV0ZXMubW9kZWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTdW1Db25maWcgZXh0ZW5kcyBDdXN0b21BdHRyaWJ1dGVzT3B0aW9uQ29uZmlnIHtcbiAgICBhdHRyaWJ1dGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFN1bUF0dHJpYnV0ZXNDb25maWcgaW1wbGVtZW50cyBDdXN0b21BdHRyaWJ1dGVzQ29uZmlnPFN1bUNvbmZpZz4ge1xuICAgIHB1YmxpYyB0eXBlID0gXCJzdW1cIjtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBrZXk6IHN0cmluZywgcHVibGljIGNvbmZpZzogU3VtQ29uZmlnKSB7fVxuXG4gICAgcHVibGljIHRyYW5zZm9ybShvcHRpb25zOiBvYmplY3QsIHBhdGg/OiBzdHJpbmcpOiBzdHJpbmcgfCBQcm9qZWN0aW9uQWxpYXMge1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGUgPSB0aGlzLmNvbmZpZy5wYXRoXG4gICAgICAgICAgICA/IGxpdGVyYWwoU2VxdWVsaXplVXRpbHMuZ2V0TGl0ZXJhbEZ1bGxOYW1lKHRoaXMuY29uZmlnLmF0dHJpYnV0ZSwgdGhpcy5jb25maWcucGF0aCkpXG4gICAgICAgICAgICA6IHRoaXMuY29uZmlnLmF0dHJpYnV0ZTtcbiAgICAgICAgcmV0dXJuIFtmbihcIlNVTVwiLCBhdHRyaWJ1dGUpLCB0aGlzLmtleV07XG4gICAgfVxuXG4gICAgcHVibGljIHNob3VsZEdyb3VwQnkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -18,9 +18,9 @@ let DataFilterScanner = class DataFilterScanner {
|
|
|
18
18
|
return (_a = Reflect.getMetadata(constant_1.ATTRIBUTES, target.prototype)) !== null && _a !== void 0 ? _a : [];
|
|
19
19
|
}
|
|
20
20
|
};
|
|
21
|
-
|
|
22
|
-
exports.DataFilterScanner = DataFilterScanner = __decorate([
|
|
21
|
+
DataFilterScanner = __decorate([
|
|
23
22
|
(0, common_1.Injectable)()
|
|
24
23
|
], DataFilterScanner);
|
|
24
|
+
exports.DataFilterScanner = DataFilterScanner;
|
|
25
25
|
|
|
26
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9zY2FubmVycy9kYXRhLWZpbHRlci5zY2FubmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLDJDQUE0QztBQUM1QywwQ0FBdUQ7QUFLaEQsSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBaUI7SUFDbkIsYUFBYSxDQUFDLE1BQVc7UUFDNUIsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLHNCQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVNLGFBQWEsQ0FBQyxNQUFXOztRQUM1QixPQUFPLE1BQUEsT0FBTyxDQUFDLFdBQVcsQ0FBQyxxQkFBVSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsbUNBQUksRUFBRSxDQUFDO0lBQ25FLENBQUM7Q0FDSixDQUFBO0FBUlksaUJBQWlCO0lBRDdCLElBQUEsbUJBQVUsR0FBRTtHQUNBLGlCQUFpQixDQVE3QjtBQVJZLDhDQUFpQiIsImZpbGUiOiJsaWIvc2Nhbm5lcnMvZGF0YS1maWx0ZXIuc2Nhbm5lci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IEFUVFJJQlVURVMsIERBVEFfRklMVEVSLCB9IGZyb20gXCIuLi9jb25zdGFudFwiO1xuaW1wb3J0IHsgRGF0YUZpbHRlckNvbmZpZyB9IGZyb20gXCIuLi9tb2RlbHMvZGF0YS1maWx0ZXIubW9kZWxcIjtcbmltcG9ydCB7IEF0dHJpYnV0ZXNDb25maWcgfSBmcm9tIFwiLi4vbW9kZWxzL2F0dHJpYnV0ZXMubW9kZWxcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERhdGFGaWx0ZXJTY2FubmVyIHtcbiAgICBwdWJsaWMgZ2V0RGF0YUZpbHRlcih0YXJnZXQ6IGFueSk6IERhdGFGaWx0ZXJDb25maWcge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5nZXRNZXRhZGF0YShEQVRBX0ZJTFRFUiwgdGFyZ2V0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXR0cmlidXRlcyh0YXJnZXQ6IGFueSk6IEF0dHJpYnV0ZXNDb25maWdbXSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKEFUVFJJQlVURVMsIHRhcmdldC5wcm90b3R5cGUpID8/IFtdO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { FindAttributeOptions, IncludeOptions, Order } from "sequelize";
|
|
2
2
|
import { Model } from "sequelize-typescript";
|
|
3
|
-
import {
|
|
3
|
+
import { OrderModel } from "..";
|
|
4
|
+
import { IncludeModel } from "..";
|
|
4
5
|
import { PathModel } from "../models/path.model";
|
|
5
6
|
import { SearchAttributesModel } from "../models/search-attributes.model";
|
|
6
|
-
import { DialectFormatterService } from "../services/dialect-formatter.service";
|
|
7
7
|
export declare class SequelizeModelScanner {
|
|
8
|
-
private dialectFormatterService;
|
|
9
|
-
constructor(dialectFormatterService: DialectFormatterService);
|
|
10
8
|
getIncludes(model: typeof Model, path: PathModel, additionalIncludes: IncludeModel[], attributes?: FindAttributeOptions, ignoreAttributes?: boolean): IncludeOptions[];
|
|
11
9
|
getAttributes(model: typeof Model, path: PathModel, additionalIncludes: IncludeModel[], attributes?: FindAttributeOptions): SearchAttributesModel[];
|
|
12
10
|
getOrder(model: typeof Model, orderObj: OrderModel): Order;
|