@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.
Files changed (41) hide show
  1. package/{build/lib → lib}/createFilter.d.ts +0 -0
  2. package/{build/lib → lib}/createFilter.js +2 -1
  3. package/lib/createFilter.js.map +1 -0
  4. package/{build/lib → lib}/createQuery.d.ts +0 -0
  5. package/{build/lib → lib}/createQuery.js +2 -1
  6. package/lib/createQuery.js.map +1 -0
  7. package/{build/lib → lib}/executeQuery.d.ts +0 -0
  8. package/{build/lib → lib}/executeQuery.js +44 -16
  9. package/lib/executeQuery.js.map +1 -0
  10. package/{build/lib → lib}/index.d.ts +0 -0
  11. package/lib/index.js +14 -0
  12. package/lib/index.js.map +1 -0
  13. package/{build/lib → lib}/odataQueryMiddleware.d.ts +0 -0
  14. package/{build/lib → lib}/odataQueryMiddleware.js +5 -3
  15. package/{build/lib → lib}/odataQueryMiddleware.js.map +1 -1
  16. package/{build/lib → lib}/sqlOptions.d.ts +0 -0
  17. package/{build/lib → lib}/sqlOptions.js +0 -0
  18. package/{build/lib → lib}/sqlOptions.js.map +1 -1
  19. package/{build/lib → lib}/visitor.d.ts +0 -0
  20. package/{build/lib → lib}/visitor.js +6 -1
  21. package/lib/visitor.js.map +1 -0
  22. package/package.json +7 -19
  23. package/src/{lib/createFilter.ts → createFilter.ts} +1 -1
  24. package/src/{lib/createQuery.ts → createQuery.ts} +0 -0
  25. package/src/{lib/executeQuery.ts → executeQuery.ts} +37 -8
  26. package/src/{lib/index.ts → index.ts} +0 -0
  27. package/src/{lib/odataQueryMiddleware.ts → odataQueryMiddleware.ts} +0 -0
  28. package/src/{lib/sqlOptions.ts → sqlOptions.ts} +0 -0
  29. package/src/{lib/visitor.ts → visitor.ts} +5 -2
  30. package/tsconfig.json +2 -1
  31. package/build/example/sql.d.ts +0 -1
  32. package/build/example/sql.js +0 -132
  33. package/build/example/sql.js.map +0 -1
  34. package/build/lib/createFilter.js.map +0 -1
  35. package/build/lib/createQuery.js.map +0 -1
  36. package/build/lib/executeQuery.js.map +0 -1
  37. package/build/lib/index.js +0 -13
  38. package/build/lib/index.js.map +0 -1
  39. package/build/lib/visitor.js.map +0 -1
  40. package/src/example/sql.ts +0 -82
  41. 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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
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(this, void 0, void 0, function* () {
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
- queryBuilder = queryBuilder
64
- .andWhere(odataQuery.where)
65
- .setParameters(mapToObject(odataQuery.parameters));
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: result.concat(),
162
+ items: items,
138
163
  count: result.length
139
164
  };
140
165
  }
141
166
  else {
142
- return result.concat();
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(this, void 0, void 0, function* () {
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(this, void 0, void 0, function* () {
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
- queryBuilder = queryBuilder
215
- .andWhere(odataQuery.where)
216
- .setParameters(mapToObject(odataQuery.parameters));
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(this, void 0, void 0, function* () {
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(this, void 0, void 0, function* () {
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
@@ -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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
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.executeQuery = executeQuery_1.executeQuery;
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":["../../src/lib/odataQueryMiddleware.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,iDAA4C;AAiBxB,uBAjBZ,2BAAY,CAiBY;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,2BAAY,CAAC,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"}
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":["../../src/lib/sqlOptions.ts"],"names":[],"mappings":""}
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": "0.1.0",
4
+ "version": "2.2.26",
5
5
  "description": "OData to TYPEORM query compiler",
6
- "main": "build/lib/index.js",
7
- "typings": "build/lib/index",
6
+ "main": "lib/index.js",
7
+ "typings": "lib/index",
8
8
  "directories": {
9
9
  "test": "test"
10
10
  },
11
11
  "scripts": {
12
- "build": "tsc",
13
- "pretest": "npm run build",
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, query} from 'odata-v4-parser';
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
- queryBuilder = queryBuilder
68
- .andWhere(odataQuery.where)
69
- .setParameters(mapToObject(odataQuery.parameters));
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: result.concat(),
166
+ items: items,
143
167
  count: result.length
144
168
  }
145
169
  }
146
170
  else {
147
- return result.concat();
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
- queryBuilder = queryBuilder
225
- .andWhere(odataQuery.where)
226
- .setParameters(mapToObject(odataQuery.parameters));
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
@@ -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
@@ -4,7 +4,8 @@
4
4
  "target": "es6",
5
5
  "module": "commonjs",
6
6
  "declaration": true,
7
+ "skipLibCheck": true,
7
8
  "experimentalDecorators": true,
8
- "outDir": "build"
9
+ "outDir": "lib"
9
10
  }
10
11
  }
@@ -1 +0,0 @@
1
- export {};