@steedos/odata-v4-typeorm 0.1.0 → 2.2.26
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/{build/lib → lib}/createFilter.d.ts +0 -0
- package/{build/lib → lib}/createFilter.js +2 -1
- package/lib/createFilter.js.map +1 -0
- package/{build/lib → lib}/createQuery.d.ts +0 -0
- package/{build/lib → lib}/createQuery.js +2 -1
- package/lib/createQuery.js.map +1 -0
- package/{build/lib → lib}/executeQuery.d.ts +0 -0
- package/{build/lib → lib}/executeQuery.js +44 -16
- package/lib/executeQuery.js.map +1 -0
- package/{build/lib → lib}/index.d.ts +0 -0
- package/lib/index.js +14 -0
- package/lib/index.js.map +1 -0
- package/{build/lib → lib}/odataQueryMiddleware.d.ts +0 -0
- package/{build/lib → lib}/odataQueryMiddleware.js +5 -3
- package/{build/lib → lib}/odataQueryMiddleware.js.map +1 -1
- package/{build/lib → lib}/sqlOptions.d.ts +0 -0
- package/{build/lib → lib}/sqlOptions.js +0 -0
- package/{build/lib → lib}/sqlOptions.js.map +1 -1
- package/{build/lib → lib}/visitor.d.ts +0 -0
- package/{build/lib → lib}/visitor.js +6 -1
- package/lib/visitor.js.map +1 -0
- package/package.json +7 -19
- package/src/{lib/createFilter.ts → createFilter.ts} +1 -1
- package/src/{lib/createQuery.ts → createQuery.ts} +0 -0
- package/src/{lib/executeQuery.ts → executeQuery.ts} +37 -8
- package/src/{lib/index.ts → index.ts} +0 -0
- package/src/{lib/odataQueryMiddleware.ts → odataQueryMiddleware.ts} +0 -0
- package/src/{lib/sqlOptions.ts → sqlOptions.ts} +0 -0
- package/src/{lib/visitor.ts → visitor.ts} +5 -2
- package/tsconfig.json +2 -1
- package/build/example/sql.d.ts +0 -1
- package/build/example/sql.js +0 -132
- package/build/example/sql.js.map +0 -1
- package/build/lib/createFilter.js.map +0 -1
- package/build/lib/createQuery.js.map +0 -1
- package/build/lib/executeQuery.js.map +0 -1
- package/build/lib/index.js +0 -13
- package/build/lib/index.js.map +0 -1
- package/build/lib/visitor.js.map +0 -1
- package/src/example/sql.ts +0 -82
- package/src/example/world.sql +0 -5388
|
File without changes
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createFilter = void 0;
|
|
3
4
|
const visitor_1 = require("./visitor");
|
|
4
5
|
const odata_v4_parser_1 = require("odata-v4-parser");
|
|
5
6
|
const odata_v4_sql_1 = require("odata-v4-sql");
|
|
@@ -7,7 +8,7 @@ function createFilter(odataFilter, options = {}) {
|
|
|
7
8
|
if (!options.type) {
|
|
8
9
|
options.type = odata_v4_sql_1.SQLLang.Oracle;
|
|
9
10
|
}
|
|
10
|
-
let ast = (typeof odataFilter == 'string' ? odata_v4_parser_1.filter(odataFilter) : odataFilter);
|
|
11
|
+
let ast = (typeof odataFilter == 'string' ? (0, odata_v4_parser_1.filter)(odataFilter) : odataFilter);
|
|
11
12
|
const visitor = new visitor_1.TypeOrmVisitor(options);
|
|
12
13
|
const visit = visitor.Visit(ast);
|
|
13
14
|
const type = visit.asType();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createFilter.js","sourceRoot":"","sources":["../src/createFilter.ts"],"names":[],"mappings":";;;AAAA,uCAAoD;AAGpD,qDAAuC;AACvC,+CAAqC;AAYrC,SAAgB,YAAY,CAAC,WAA2B,EAAE,UAAsB,EAAE;IAChF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAC;QAChB,OAAO,CAAC,IAAI,GAAG,sBAAO,CAAC,MAAM,CAAC;KAC/B;IACD,IAAI,GAAG,GAAiB,CAAC,OAAO,WAAW,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAA,wBAAM,EAAS,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACrG,MAAM,OAAO,GAAG,IAAI,wBAAO,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;IAC5B,OAAO,IAAI,CAAC;AAEd,CAAC;AAVD,oCAUC"}
|
|
File without changes
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createQuery = void 0;
|
|
3
4
|
const visitor_1 = require("./visitor");
|
|
4
5
|
const odata_v4_parser_1 = require("odata-v4-parser");
|
|
5
6
|
const odata_v4_sql_1 = require("odata-v4-sql");
|
|
@@ -7,7 +8,7 @@ function createQuery(odataQuery, options = {}) {
|
|
|
7
8
|
if (!options.type) {
|
|
8
9
|
options.type = odata_v4_sql_1.SQLLang.Oracle;
|
|
9
10
|
}
|
|
10
|
-
let ast = (typeof odataQuery == 'string' ? odata_v4_parser_1.query(odataQuery) : odataQuery);
|
|
11
|
+
let ast = (typeof odataQuery == 'string' ? (0, odata_v4_parser_1.query)(odataQuery) : odataQuery);
|
|
11
12
|
return new visitor_1.TypeOrmVisitor(options).Visit(ast).asType();
|
|
12
13
|
}
|
|
13
14
|
exports.createQuery = createQuery;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createQuery.js","sourceRoot":"","sources":["../src/createQuery.ts"],"names":[],"mappings":";;;AAAA,uCAAoD;AAEpD,qDAAsC;AACtC,+CAAqC;AAarC,SAAgB,WAAW,CAAC,UAA0B,EAAE,UAAsB,EAAE;IAC9E,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACjB,OAAO,CAAC,IAAI,GAAG,sBAAO,CAAC,MAAM,CAAC;KAC/B;IACD,IAAI,GAAG,GAAiB,CAAC,OAAO,UAAU,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAA,uBAAK,EAAS,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACjG,OAAO,IAAI,wBAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AAClD,CAAC;AAND,kCAMC"}
|
|
File without changes
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
5
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
6
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) :
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
9
|
});
|
|
9
10
|
};
|
|
10
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.getExecuteQuerySQL = exports.executeCountQuery = exports.executeQuery = void 0;
|
|
11
13
|
const createQuery_1 = require("./createQuery");
|
|
12
14
|
const odata_v4_sql_1 = require("odata-v4-sql");
|
|
15
|
+
const _ = require("underscore");
|
|
13
16
|
const mapToObject = (aMap) => {
|
|
14
17
|
const obj = {};
|
|
15
18
|
if (aMap) {
|
|
@@ -48,7 +51,7 @@ const processIncludes = (queryBuilder, odataQuery, alias) => {
|
|
|
48
51
|
}
|
|
49
52
|
return queryBuilder;
|
|
50
53
|
};
|
|
51
|
-
const executeQueryByQueryBuilder = (inputQueryBuilder, query, options, returnSql = false) => __awaiter(
|
|
54
|
+
const executeQueryByQueryBuilder = (inputQueryBuilder, query, options, returnSql = false) => __awaiter(void 0, void 0, void 0, function* () {
|
|
52
55
|
const alias = inputQueryBuilder.expressionMap.mainAlias.name;
|
|
53
56
|
options.alias = alias;
|
|
54
57
|
//const filter = createFilter(query.$filter, {alias: alias});
|
|
@@ -56,13 +59,16 @@ const executeQueryByQueryBuilder = (inputQueryBuilder, query, options, returnSql
|
|
|
56
59
|
if (query) {
|
|
57
60
|
const odataString = queryToOdataString(query);
|
|
58
61
|
if (odataString) {
|
|
59
|
-
odataQuery = createQuery_1.createQuery(odataString, options);
|
|
62
|
+
odataQuery = (0, createQuery_1.createQuery)(odataString, options);
|
|
60
63
|
}
|
|
61
64
|
}
|
|
62
65
|
let queryBuilder = inputQueryBuilder;
|
|
63
|
-
|
|
64
|
-
.andWhere(odataQuery.where)
|
|
65
|
-
|
|
66
|
+
if (odataQuery.where) {
|
|
67
|
+
queryBuilder = queryBuilder.andWhere(odataQuery.where);
|
|
68
|
+
}
|
|
69
|
+
if (odataQuery.parameters) {
|
|
70
|
+
queryBuilder = queryBuilder.setParameters(mapToObject(odataQuery.parameters));
|
|
71
|
+
}
|
|
66
72
|
const queryRunner = inputQueryBuilder.obtainQueryRunner();
|
|
67
73
|
const isPaging = query.$skip !== undefined || query.$top !== undefined;
|
|
68
74
|
if (isPaging && query.$top === undefined) {
|
|
@@ -131,15 +137,34 @@ const executeQueryByQueryBuilder = (inputQueryBuilder, query, options, returnSql
|
|
|
131
137
|
splicedSql = `SELECT * FROM (SELECT A.*, ROWNUM ${RowNumberKey} FROM (${qs[0]}) A ${end ? ('WHERE ROWNUM <= ' + end) : ''}) b WHERE B.${RowNumberKey} > ${start}`;
|
|
132
138
|
}
|
|
133
139
|
try {
|
|
140
|
+
let getFieldMap = function (columns) {
|
|
141
|
+
let map = {};
|
|
142
|
+
_.each(columns, function (column) {
|
|
143
|
+
if (column.givenDatabaseName && column.givenDatabaseName != column.propertyName) {
|
|
144
|
+
map[column.givenDatabaseName] = column.propertyName;
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
return map;
|
|
148
|
+
};
|
|
149
|
+
let columnsMap = getFieldMap(queryBuilder.expressionMap.mainAlias.metadata.columns);
|
|
134
150
|
const result = yield queryRunner.query(splicedSql, qs[1]);
|
|
151
|
+
let items = result.concat();
|
|
152
|
+
if (!_.isEmpty(columnsMap)) {
|
|
153
|
+
items.map(function (item) {
|
|
154
|
+
_.each(columnsMap, function (v, k) {
|
|
155
|
+
item[v] = item[k];
|
|
156
|
+
delete item[k];
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
}
|
|
135
160
|
if (query.$count && query.$count !== 'false') {
|
|
136
161
|
return {
|
|
137
|
-
items:
|
|
162
|
+
items: items,
|
|
138
163
|
count: result.length
|
|
139
164
|
};
|
|
140
165
|
}
|
|
141
166
|
else {
|
|
142
|
-
return
|
|
167
|
+
return items;
|
|
143
168
|
}
|
|
144
169
|
}
|
|
145
170
|
finally {
|
|
@@ -183,7 +208,7 @@ const executeQueryByQueryBuilder = (inputQueryBuilder, query, options, returnSql
|
|
|
183
208
|
}
|
|
184
209
|
return queryBuilder.getMany();
|
|
185
210
|
});
|
|
186
|
-
const executeQuery = (repositoryOrQueryBuilder, query, options) => __awaiter(
|
|
211
|
+
const executeQuery = (repositoryOrQueryBuilder, query, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
187
212
|
// options = options || {};
|
|
188
213
|
const alias = options.alias || '';
|
|
189
214
|
let queryBuilder = null;
|
|
@@ -198,7 +223,7 @@ const executeQuery = (repositoryOrQueryBuilder, query, options) => __awaiter(thi
|
|
|
198
223
|
return result;
|
|
199
224
|
});
|
|
200
225
|
exports.executeQuery = executeQuery;
|
|
201
|
-
const executeCountQueryByQueryBuilder = (inputQueryBuilder, query, options) => __awaiter(
|
|
226
|
+
const executeCountQueryByQueryBuilder = (inputQueryBuilder, query, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
202
227
|
const alias = inputQueryBuilder.expressionMap.mainAlias.name;
|
|
203
228
|
options.alias = alias;
|
|
204
229
|
//const filter = createFilter(query.$filter, {alias: alias});
|
|
@@ -206,18 +231,21 @@ const executeCountQueryByQueryBuilder = (inputQueryBuilder, query, options) => _
|
|
|
206
231
|
if (query) {
|
|
207
232
|
const odataString = queryToOdataString(query);
|
|
208
233
|
if (odataString) {
|
|
209
|
-
odataQuery = createQuery_1.createQuery(odataString, options);
|
|
234
|
+
odataQuery = (0, createQuery_1.createQuery)(odataString, options);
|
|
210
235
|
}
|
|
211
236
|
}
|
|
212
237
|
const queryRunner = inputQueryBuilder.obtainQueryRunner();
|
|
213
238
|
let queryBuilder = inputQueryBuilder;
|
|
214
|
-
|
|
215
|
-
.andWhere(odataQuery.where)
|
|
216
|
-
|
|
239
|
+
if (odataQuery.where) {
|
|
240
|
+
queryBuilder = queryBuilder.andWhere(odataQuery.where);
|
|
241
|
+
}
|
|
242
|
+
if (odataQuery.parameters) {
|
|
243
|
+
queryBuilder = queryBuilder.setParameters(mapToObject(odataQuery.parameters));
|
|
244
|
+
}
|
|
217
245
|
queryBuilder = processIncludes(queryBuilder, odataQuery, alias);
|
|
218
246
|
return yield queryBuilder.getCount();
|
|
219
247
|
});
|
|
220
|
-
const executeCountQuery = (repositoryOrQueryBuilder, query, options) => __awaiter(
|
|
248
|
+
const executeCountQuery = (repositoryOrQueryBuilder, query, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
221
249
|
// options = options || {};
|
|
222
250
|
const alias = options.alias || '';
|
|
223
251
|
let queryBuilder = null;
|
|
@@ -232,7 +260,7 @@ const executeCountQuery = (repositoryOrQueryBuilder, query, options) => __awaite
|
|
|
232
260
|
return result;
|
|
233
261
|
});
|
|
234
262
|
exports.executeCountQuery = executeCountQuery;
|
|
235
|
-
const getExecuteQuerySQL = (repositoryOrQueryBuilder, query, options) => __awaiter(
|
|
263
|
+
const getExecuteQuerySQL = (repositoryOrQueryBuilder, query, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
236
264
|
// options = options || {};
|
|
237
265
|
const alias = options.alias || '';
|
|
238
266
|
let queryBuilder = null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executeQuery.js","sourceRoot":"","sources":["../src/executeQuery.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createFilter = exports.createQuery = exports.getExecuteQuerySQL = exports.executeCountQuery = exports.executeQuery = exports.odataQuery = void 0;
|
|
4
|
+
const odataQueryMiddleware_1 = require("./odataQueryMiddleware");
|
|
5
|
+
Object.defineProperty(exports, "odataQuery", { enumerable: true, get: function () { return odataQueryMiddleware_1.odataQuery; } });
|
|
6
|
+
const executeQuery_1 = require("./executeQuery");
|
|
7
|
+
Object.defineProperty(exports, "executeQuery", { enumerable: true, get: function () { return executeQuery_1.executeQuery; } });
|
|
8
|
+
Object.defineProperty(exports, "executeCountQuery", { enumerable: true, get: function () { return executeQuery_1.executeCountQuery; } });
|
|
9
|
+
Object.defineProperty(exports, "getExecuteQuerySQL", { enumerable: true, get: function () { return executeQuery_1.getExecuteQuerySQL; } });
|
|
10
|
+
const createQuery_1 = require("./createQuery");
|
|
11
|
+
Object.defineProperty(exports, "createQuery", { enumerable: true, get: function () { return createQuery_1.createQuery; } });
|
|
12
|
+
const createFilter_1 = require("./createFilter");
|
|
13
|
+
Object.defineProperty(exports, "createFilter", { enumerable: true, get: function () { return createFilter_1.createFilter; } });
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iEAAkD;AAMzC,2FAND,iCAAU,OAMC;AALnB,iDAAoF;AAK/D,6FALZ,2BAAY,OAKY;AAAE,kGALZ,gCAAiB,OAKY;AAAE,mGALZ,iCAAkB,OAKY;AAHxE,+CAA0C;AAG4C,4FAH9E,yBAAW,OAG8E;AAFjG,iDAA4C;AAEuD,6FAF3F,2BAAY,OAE2F"}
|
|
File without changes
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
5
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
6
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) :
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
9
|
});
|
|
9
10
|
};
|
|
10
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.executeQuery = exports.odataQuery = void 0;
|
|
11
13
|
const executeQuery_1 = require("./executeQuery");
|
|
12
|
-
exports
|
|
14
|
+
Object.defineProperty(exports, "executeQuery", { enumerable: true, get: function () { return executeQuery_1.executeQuery; } });
|
|
13
15
|
function odataQuery(repositoryOrQueryBuilder) {
|
|
14
16
|
return (req, res, next) => __awaiter(this, void 0, void 0, function* () {
|
|
15
17
|
try {
|
|
16
18
|
const alias = '';
|
|
17
|
-
const result = yield executeQuery_1.executeQuery(repositoryOrQueryBuilder, req.query, { alias });
|
|
19
|
+
const result = yield (0, executeQuery_1.executeQuery)(repositoryOrQueryBuilder, req.query, { alias });
|
|
18
20
|
return res.status(200).json(result);
|
|
19
21
|
}
|
|
20
22
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odataQueryMiddleware.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"odataQueryMiddleware.js","sourceRoot":"","sources":["../src/odataQueryMiddleware.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAA4C;AAiBxB,6FAjBZ,2BAAY,OAiBY;AAfhC,SAAS,UAAU,CAAC,wBAA6B;IAC/C,OAAO,CAAO,GAAQ,EAAE,GAAQ,EAAE,IAAI,EAAE,EAAE;QACxC,IAAI;YACF,MAAM,KAAK,GAAG,EAAE,CAAC;YAEjB,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAY,EAAC,wBAAwB,EAAE,GAAG,CAAC,KAAK,EAAE,EAAC,KAAK,EAAC,CAAC,CAAC;YAChF,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACrC;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,aAAa,EAAC,CAAC,CAAC,CAAC;YAC7B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,wBAAwB,EAAE,KAAK,EAAE,EAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAC,EAAC,CAAC,CAAC;SACxF;QACD,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC,CAAA,CAAA;AACH,CAAC;AAEO,gCAAU"}
|
|
File without changes
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlOptions.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"sqlOptions.js","sourceRoot":"","sources":["../src/sqlOptions.ts"],"names":[],"mappings":""}
|
|
File without changes
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TypeOrmVisitor = void 0;
|
|
3
4
|
const odata_v4_literal_1 = require("odata-v4-literal");
|
|
4
5
|
const visitor_1 = require("odata-v4-sql/lib/visitor");
|
|
6
|
+
// import {SqlOptions} from './index';
|
|
5
7
|
class TypeOrmVisitor extends visitor_1.Visitor {
|
|
6
8
|
constructor(options) {
|
|
7
9
|
super(options);
|
|
@@ -152,7 +154,10 @@ class TypeOrmVisitor extends visitor_1.Visitor {
|
|
|
152
154
|
if (context.literal != null) {
|
|
153
155
|
this.parameters.set(name, value);
|
|
154
156
|
}
|
|
155
|
-
this.where += `:${name}`;
|
|
157
|
+
// this.where += `:${name}`;
|
|
158
|
+
// 因为useParameters为true,所以这里不可以把where追加为:p1这种格式,因为asOracleSql、asPostgreSql等用了正则替换?占位的方式重新设置:p{index}值
|
|
159
|
+
// 如果把where追加为:p1这种格式,已知的问题是VisitMethodCallExpression函数中的包括contains在内的所有method都只能写在过滤条件的最前面,而不可以写在后面的位置
|
|
160
|
+
this.where += `?`;
|
|
156
161
|
}
|
|
157
162
|
else
|
|
158
163
|
this.where += (context.literal = visitor_1.SQLLiteral.convert(node.value, node.raw));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visitor.js","sourceRoot":"","sources":["../src/visitor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/odata-v4-typeorm",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "2.2.26",
|
|
5
5
|
"description": "OData to TYPEORM query compiler",
|
|
6
|
-
"main": "
|
|
7
|
-
"typings": "
|
|
6
|
+
"main": "lib/index.js",
|
|
7
|
+
"typings": "lib/index",
|
|
8
8
|
"directories": {
|
|
9
9
|
"test": "test"
|
|
10
10
|
},
|
|
11
11
|
"scripts": {
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"test": "mocha",
|
|
15
|
-
"pretdd": "npm run build",
|
|
16
|
-
"tdd": "mocha -w"
|
|
12
|
+
"compile": "tsc",
|
|
13
|
+
"prepare": "tsc"
|
|
17
14
|
},
|
|
18
15
|
"repository": {
|
|
19
16
|
"type": "git",
|
|
@@ -36,17 +33,8 @@
|
|
|
36
33
|
"odata-v4-parser": "0.1.13",
|
|
37
34
|
"odata-v4-sql": "^0.1.2"
|
|
38
35
|
},
|
|
39
|
-
"devDependencies": {
|
|
40
|
-
"@types/config": "^0.0.30",
|
|
41
|
-
"@types/pg": "^6.1.34",
|
|
42
|
-
"chai": "^3.5.0",
|
|
43
|
-
"config": "^1.21.0",
|
|
44
|
-
"mocha": "^3.1.2",
|
|
45
|
-
"odata-v4-server": "rc",
|
|
46
|
-
"pg": "^6.1.0",
|
|
47
|
-
"typescript": "^2.0.6"
|
|
48
|
-
},
|
|
49
36
|
"publishConfig": {
|
|
50
37
|
"access": "public"
|
|
51
|
-
}
|
|
38
|
+
},
|
|
39
|
+
"gitHead": "77fa3c2b6bdfebaccb4b7f0886f32eb347cbdd35"
|
|
52
40
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {TypeOrmVisitor as Visitor} from './visitor';
|
|
2
2
|
import {Token} from 'odata-v4-parser/lib/lexer';
|
|
3
3
|
import {SqlOptions} from './sqlOptions';
|
|
4
|
-
import {filter
|
|
4
|
+
import {filter} from 'odata-v4-parser';
|
|
5
5
|
import {SQLLang} from 'odata-v4-sql';
|
|
6
6
|
|
|
7
7
|
/**
|
|
File without changes
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createQuery } from './createQuery';
|
|
2
2
|
import { SqlOptions } from './sqlOptions';
|
|
3
3
|
import { SQLLang } from 'odata-v4-sql';
|
|
4
|
+
const _ = require("underscore");
|
|
4
5
|
|
|
5
6
|
const mapToObject = (aMap) => {
|
|
6
7
|
const obj = {};
|
|
@@ -64,9 +65,13 @@ const executeQueryByQueryBuilder = async (inputQueryBuilder, query, options: Sql
|
|
|
64
65
|
}
|
|
65
66
|
let queryBuilder = inputQueryBuilder;
|
|
66
67
|
|
|
67
|
-
|
|
68
|
-
.andWhere(odataQuery.where)
|
|
69
|
-
|
|
68
|
+
if(odataQuery.where){
|
|
69
|
+
queryBuilder = queryBuilder.andWhere(odataQuery.where)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if(odataQuery.parameters){
|
|
73
|
+
queryBuilder = queryBuilder.setParameters(mapToObject(odataQuery.parameters));
|
|
74
|
+
}
|
|
70
75
|
|
|
71
76
|
const queryRunner = inputQueryBuilder.obtainQueryRunner();
|
|
72
77
|
const isPaging = query.$skip !== undefined || query.$top !== undefined;
|
|
@@ -136,15 +141,34 @@ const executeQueryByQueryBuilder = async (inputQueryBuilder, query, options: Sql
|
|
|
136
141
|
splicedSql = `SELECT * FROM (SELECT A.*, ROWNUM ${RowNumberKey} FROM (${qs[0]}) A ${end ? ('WHERE ROWNUM <= ' + end) : ''}) b WHERE B.${RowNumberKey} > ${start}`;
|
|
137
142
|
}
|
|
138
143
|
try {
|
|
144
|
+
let getFieldMap = function(columns){
|
|
145
|
+
let map = {};
|
|
146
|
+
_.each(columns, function(column){
|
|
147
|
+
if(column.givenDatabaseName && column.givenDatabaseName != column.propertyName){
|
|
148
|
+
map[column.givenDatabaseName] = column.propertyName
|
|
149
|
+
}
|
|
150
|
+
})
|
|
151
|
+
return map;
|
|
152
|
+
}
|
|
153
|
+
let columnsMap = getFieldMap(queryBuilder.expressionMap.mainAlias.metadata.columns)
|
|
139
154
|
const result = await queryRunner.query(splicedSql, qs[1]);
|
|
155
|
+
let items = result.concat();
|
|
156
|
+
if(!_.isEmpty(columnsMap)){
|
|
157
|
+
items.map(function(item){
|
|
158
|
+
_.each(columnsMap, function(v, k){
|
|
159
|
+
item[v] = item[k];
|
|
160
|
+
delete item[k];
|
|
161
|
+
})
|
|
162
|
+
})
|
|
163
|
+
}
|
|
140
164
|
if (query.$count && query.$count !== 'false') {
|
|
141
165
|
return {
|
|
142
|
-
items:
|
|
166
|
+
items: items,
|
|
143
167
|
count: result.length
|
|
144
168
|
}
|
|
145
169
|
}
|
|
146
170
|
else {
|
|
147
|
-
return
|
|
171
|
+
return items;
|
|
148
172
|
}
|
|
149
173
|
} finally {
|
|
150
174
|
if (queryRunner !== queryBuilder.queryRunner) {
|
|
@@ -221,9 +245,14 @@ const executeCountQueryByQueryBuilder = async (inputQueryBuilder, query, options
|
|
|
221
245
|
}
|
|
222
246
|
const queryRunner = inputQueryBuilder.obtainQueryRunner();
|
|
223
247
|
let queryBuilder = inputQueryBuilder;
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
.
|
|
248
|
+
|
|
249
|
+
if(odataQuery.where){
|
|
250
|
+
queryBuilder = queryBuilder.andWhere(odataQuery.where)
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
if(odataQuery.parameters){
|
|
254
|
+
queryBuilder = queryBuilder.setParameters(mapToObject(odataQuery.parameters));
|
|
255
|
+
}
|
|
227
256
|
|
|
228
257
|
queryBuilder = processIncludes(queryBuilder, odataQuery, alias);
|
|
229
258
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {Token} from 'odata-v4-parser/lib/lexer';
|
|
2
2
|
import {Literal} from 'odata-v4-literal';
|
|
3
3
|
import {SQLLiteral, SQLLang, Visitor} from 'odata-v4-sql/lib/visitor';
|
|
4
|
-
import {SqlOptions} from './index';
|
|
4
|
+
// import {SqlOptions} from './index';
|
|
5
5
|
|
|
6
6
|
export class TypeOrmVisitor extends Visitor {
|
|
7
7
|
//parameters:any[] = [];
|
|
@@ -159,7 +159,10 @@ export class TypeOrmVisitor extends Visitor {
|
|
|
159
159
|
if (context.literal != null) {
|
|
160
160
|
this.parameters.set(name, value);
|
|
161
161
|
}
|
|
162
|
-
this.where += `:${name}`;
|
|
162
|
+
// this.where += `:${name}`;
|
|
163
|
+
// 因为useParameters为true,所以这里不可以把where追加为:p1这种格式,因为asOracleSql、asPostgreSql等用了正则替换?占位的方式重新设置:p{index}值
|
|
164
|
+
// 如果把where追加为:p1这种格式,已知的问题是VisitMethodCallExpression函数中的包括contains在内的所有method都只能写在过滤条件的最前面,而不可以写在后面的位置
|
|
165
|
+
this.where += `?`;
|
|
163
166
|
} else this.where += (context.literal = SQLLiteral.convert(node.value, node.raw));
|
|
164
167
|
}
|
|
165
168
|
|
package/tsconfig.json
CHANGED
package/build/example/sql.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|