@autofleet/sheilta 1.3.5 → 1.3.6-hilat-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/formatter/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export declare type FormatPayloadOptions = {
|
|
|
5
5
|
includeRawPayload?: boolean;
|
|
6
6
|
literalAttributes?: LiteralAttribute[];
|
|
7
7
|
DBFormatter?: any;
|
|
8
|
+
skipSearchTermFormat?: boolean;
|
|
8
9
|
};
|
|
9
10
|
declare const formatPayload: ({ order, page, perPage, include, query, attributes, searchTerm, }: {
|
|
10
11
|
order?: any[];
|
|
@@ -15,7 +16,9 @@ declare const formatPayload: ({ order, page, perPage, include, query, attributes
|
|
|
15
16
|
attributes?: any;
|
|
16
17
|
searchTerm?: any;
|
|
17
18
|
}, model?: any, options?: any) => {
|
|
18
|
-
attributes: any[]
|
|
19
|
+
attributes: any[] | {
|
|
20
|
+
include: any[];
|
|
21
|
+
};
|
|
19
22
|
query: {};
|
|
20
23
|
order: SequelizeOrder[];
|
|
21
24
|
page: any;
|
package/lib/formatter/index.js
CHANGED
|
@@ -65,9 +65,9 @@ const formatQuery = (query, associationModels) => {
|
|
|
65
65
|
formattedScopeMap.get(CUSTOM_FIELDS_FILTER_SCOPE)[scopeKey] = queryItemValue;
|
|
66
66
|
return;
|
|
67
67
|
}
|
|
68
|
-
const key = utils_1.isAttributeByAssociation(queryItemKey, associationModels)
|
|
69
|
-
utils_1.wrapAttributeWithOperator(queryItemKey)
|
|
70
|
-
queryItemKey;
|
|
68
|
+
const key = utils_1.isAttributeByAssociation(queryItemKey, associationModels)
|
|
69
|
+
? utils_1.wrapAttributeWithOperator(queryItemKey)
|
|
70
|
+
: queryItemKey;
|
|
71
71
|
formattedQuery[key] = queryItemValue;
|
|
72
72
|
});
|
|
73
73
|
const formattedScopes = Array.from(formattedScopeMap.entries()).map(([scopeName, scopeValue]) => {
|
|
@@ -98,12 +98,13 @@ const formatPayload = ({ order = [], page = utils_1.PAGE_DEFAULT, perPage = util
|
|
|
98
98
|
});
|
|
99
99
|
const [filteredFormattedOrder, filteredLiteralAttributes] = getAttributeFromOrder(formattedOrder, options);
|
|
100
100
|
const allAttributes = [...filteredLiteralAttributes, ...(attributes || [])];
|
|
101
|
+
const formattedAttribute = (attributes === null || attributes === void 0 ? void 0 : attributes.length) ? allAttributes : { include: allAttributes };
|
|
101
102
|
const formattedInclude = formatInclude(include, model === null || model === void 0 ? void 0 : model.associations);
|
|
102
103
|
const formattedPage = formatPage(page);
|
|
103
104
|
const formattedPerPage = formatPerPage(perPage);
|
|
104
105
|
const result = formatQuery(query, associationModels);
|
|
105
106
|
let { formattedQuery } = result;
|
|
106
|
-
if (searchTerm) {
|
|
107
|
+
if (searchTerm && !(options === null || options === void 0 ? void 0 : options.skipSearchTermFormat)) {
|
|
107
108
|
const attributesToSend = (attributes === null || attributes === void 0 ? void 0 : attributes.length) ? attributes : Object.keys(model.rawAttributes);
|
|
108
109
|
const queryWithSearchTerm = formatSearchTerm(searchTerm, attributesToSend, model.rawAttributes);
|
|
109
110
|
formattedQuery = lodash_1.default.isEmpty(formattedQuery) ? queryWithSearchTerm : {
|
|
@@ -113,6 +114,6 @@ const formatPayload = ({ order = [], page = utils_1.PAGE_DEFAULT, perPage = util
|
|
|
113
114
|
],
|
|
114
115
|
};
|
|
115
116
|
}
|
|
116
|
-
return Object.assign({ query: formattedQuery, order: filteredFormattedOrder, page: formattedPage, perPage: formattedPerPage, include: formattedInclude, scopes: result.formattedScopes }, (
|
|
117
|
+
return Object.assign({ query: formattedQuery, order: filteredFormattedOrder, page: formattedPage, perPage: formattedPerPage, include: formattedInclude, scopes: result.formattedScopes }, (formattedAttribute && { attributes: formattedAttribute }));
|
|
117
118
|
};
|
|
118
119
|
exports.default = formatPayload;
|
|
@@ -202,7 +202,7 @@ describe('formatting test', () => {
|
|
|
202
202
|
});
|
|
203
203
|
expect(JSON.stringify(order)).toBe(JSON.stringify([[`${literalAttribute.attribute} ASC`], ['id']]));
|
|
204
204
|
expect(JSON.stringify(attributes))
|
|
205
|
-
.toBe(JSON.stringify([literalAttribute.literal]));
|
|
205
|
+
.toBe(JSON.stringify({ include: [literalAttribute.literal] }));
|
|
206
206
|
});
|
|
207
207
|
it('by literal field descending', () => {
|
|
208
208
|
const literalAttribute = { attribute: 'genericField', literal: ['void', 'field'] };
|