@typeorm/codemod 1.0.0 → 1.0.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.
Files changed (240) hide show
  1. package/README.md +12 -10
  2. package/dist/cli/print-guide.js +2 -2
  3. package/dist/cli/print-summary.js +3 -2
  4. package/dist/cli/print-summary.js.map +1 -1
  5. package/dist/cli/print-usage.js +1 -1
  6. package/dist/cli/print-usage.js.map +1 -1
  7. package/dist/cli/run-transforms.js +16 -2
  8. package/dist/cli/run-transforms.js.map +1 -1
  9. package/dist/dependencies/v1.js +22 -9
  10. package/dist/dependencies/v1.js.map +1 -1
  11. package/dist/transforms/ast-helpers.js +150 -14
  12. package/dist/transforms/ast-helpers.js.map +1 -1
  13. package/dist/transforms/todo.js +25 -2
  14. package/dist/transforms/todo.js.map +1 -1
  15. package/dist/transforms/v1/column-readonly.js +28 -13
  16. package/dist/transforms/v1/column-readonly.js.map +1 -1
  17. package/dist/transforms/v1/column-unsigned-numeric.js +6 -8
  18. package/dist/transforms/v1/column-unsigned-numeric.js.map +1 -1
  19. package/dist/transforms/v1/column-width-zerofill.js +2 -1
  20. package/dist/transforms/v1/column-width-zerofill.js.map +1 -1
  21. package/dist/transforms/v1/connection-manager.js +82 -0
  22. package/dist/transforms/v1/connection-manager.js.map +1 -0
  23. package/dist/transforms/v1/connection-options-reader.js +198 -0
  24. package/dist/transforms/v1/connection-options-reader.js.map +1 -0
  25. package/dist/transforms/v1/connection-to-datasource.js +285 -56
  26. package/dist/transforms/v1/connection-to-datasource.js.map +1 -1
  27. package/dist/transforms/v1/datasource-mongodb.js +40 -28
  28. package/dist/transforms/v1/datasource-mongodb.js.map +1 -1
  29. package/dist/transforms/v1/datasource-mssql.js +1 -3
  30. package/dist/transforms/v1/datasource-mssql.js.map +1 -1
  31. package/dist/transforms/v1/datasource-mysql-connector.js +3 -0
  32. package/dist/transforms/v1/datasource-mysql-connector.js.map +1 -1
  33. package/dist/transforms/v1/datasource-name.js +2 -0
  34. package/dist/transforms/v1/datasource-name.js.map +1 -1
  35. package/dist/transforms/v1/datasource-sap.js +21 -8
  36. package/dist/transforms/v1/datasource-sap.js.map +1 -1
  37. package/dist/transforms/v1/datasource-sqlite-options.js +48 -13
  38. package/dist/transforms/v1/datasource-sqlite-options.js.map +1 -1
  39. package/dist/transforms/v1/datasource-sqlite-type.js +28 -7
  40. package/dist/transforms/v1/datasource-sqlite-type.js.map +1 -1
  41. package/dist/transforms/v1/file-logger.js +182 -0
  42. package/dist/transforms/v1/file-logger.js.map +1 -0
  43. package/dist/transforms/v1/find-options-join.js +84 -0
  44. package/dist/transforms/v1/find-options-join.js.map +1 -0
  45. package/dist/transforms/v1/find-options-lock-modes.js +26 -21
  46. package/dist/transforms/v1/find-options-lock-modes.js.map +1 -1
  47. package/dist/transforms/v1/find-options-string-relations.js +2 -0
  48. package/dist/transforms/v1/find-options-string-relations.js.map +1 -1
  49. package/dist/transforms/v1/find-options-string-select.js +2 -0
  50. package/dist/transforms/v1/find-options-string-select.js.map +1 -1
  51. package/dist/transforms/v1/global-functions.js +92 -64
  52. package/dist/transforms/v1/global-functions.js.map +1 -1
  53. package/dist/transforms/v1/index.js +10 -2
  54. package/dist/transforms/v1/index.js.map +1 -1
  55. package/dist/transforms/v1/migrations-get-all.js +25 -9
  56. package/dist/transforms/v1/migrations-get-all.js.map +1 -1
  57. package/dist/transforms/v1/mongodb-stats.js +3 -0
  58. package/dist/transforms/v1/mongodb-stats.js.map +1 -1
  59. package/dist/transforms/v1/query-builder-native-parameters.js +2 -0
  60. package/dist/transforms/v1/query-builder-native-parameters.js.map +1 -1
  61. package/dist/transforms/v1/query-builder-on-conflict.js +2 -1
  62. package/dist/transforms/v1/query-builder-on-conflict.js.map +1 -1
  63. package/dist/transforms/v1/query-builder-or-update.js +8 -4
  64. package/dist/transforms/v1/query-builder-or-update.js.map +1 -1
  65. package/dist/transforms/v1/query-builder-print-sql.js +3 -0
  66. package/dist/transforms/v1/query-builder-print-sql.js.map +1 -1
  67. package/dist/transforms/v1/query-builder-replace-property-names.js +3 -0
  68. package/dist/transforms/v1/query-builder-replace-property-names.js.map +1 -1
  69. package/dist/transforms/v1/query-runner-loaded-tables-views.js +1 -5
  70. package/dist/transforms/v1/query-runner-loaded-tables-views.js.map +1 -1
  71. package/dist/transforms/v1/relation-count.js +75 -12
  72. package/dist/transforms/v1/relation-count.js.map +1 -1
  73. package/dist/transforms/v1/repository-abstract.js +2 -5
  74. package/dist/transforms/v1/repository-abstract.js.map +1 -1
  75. package/dist/transforms/v1/repository-exist.js +2 -0
  76. package/dist/transforms/v1/repository-exist.js.map +1 -1
  77. package/dist/transforms/v1/repository-find-by-ids.js +0 -3
  78. package/dist/transforms/v1/repository-find-by-ids.js.map +1 -1
  79. package/dist/transforms/v1/repository-find-one-by-id.js +3 -0
  80. package/dist/transforms/v1/repository-find-one-by-id.js.map +1 -1
  81. package/dist/transforms/v1/use-container.js +5 -3
  82. package/dist/transforms/v1/use-container.js.map +1 -1
  83. package/package.json +3 -1
  84. package/dist/cli/colors.d.ts +0 -7
  85. package/dist/cli/colors.js +0 -12
  86. package/dist/cli/colors.js.map +0 -1
  87. package/dist/cli/error.d.ts +0 -1
  88. package/dist/cli/error.js +0 -11
  89. package/dist/cli/error.js.map +0 -1
  90. package/dist/cli/list-transforms.d.ts +0 -1
  91. package/dist/cli/parse-args.d.ts +0 -10
  92. package/dist/cli/print-guide.d.ts +0 -1
  93. package/dist/cli/print-summary.d.ts +0 -17
  94. package/dist/cli/print-todos.d.ts +0 -1
  95. package/dist/cli/print-usage.d.ts +0 -1
  96. package/dist/cli/run-dependencies.d.ts +0 -6
  97. package/dist/cli/run-transforms.d.ts +0 -21
  98. package/dist/cli/run.d.ts +0 -9
  99. package/dist/dependencies/config.d.ts +0 -24
  100. package/dist/dependencies/find-package-json.d.ts +0 -5
  101. package/dist/dependencies/index.d.ts +0 -5
  102. package/dist/dependencies/upgrade.d.ts +0 -11
  103. package/dist/dependencies/v1.d.ts +0 -2
  104. package/dist/index.d.ts +0 -2
  105. package/dist/lib/colors.d.ts +0 -9
  106. package/dist/lib/error.d.ts +0 -1
  107. package/dist/lib/format-time.d.ts +0 -1
  108. package/dist/lib/highlight.d.ts +0 -1
  109. package/dist/lib/spinner.d.ts +0 -5
  110. package/dist/transforms/ast-helpers.d.ts +0 -50
  111. package/dist/transforms/index.d.ts +0 -7
  112. package/dist/transforms/resolve.d.ts +0 -1
  113. package/dist/transforms/scan.d.ts +0 -4
  114. package/dist/transforms/scan.js +0 -33
  115. package/dist/transforms/scan.js.map +0 -1
  116. package/dist/transforms/stats.d.ts +0 -11
  117. package/dist/transforms/todo.d.ts +0 -2
  118. package/dist/transforms/transformer.d.ts +0 -8
  119. package/dist/transforms/v1/column-readonly.d.ts +0 -6
  120. package/dist/transforms/v1/column-unsigned-numeric.d.ts +0 -6
  121. package/dist/transforms/v1/column-width-zerofill.d.ts +0 -6
  122. package/dist/transforms/v1/connection-to-datasource.d.ts +0 -6
  123. package/dist/transforms/v1/datasource-mongodb.d.ts +0 -7
  124. package/dist/transforms/v1/datasource-mssql-domain.d.ts +0 -7
  125. package/dist/transforms/v1/datasource-mssql-domain.js +0 -35
  126. package/dist/transforms/v1/datasource-mssql-domain.js.map +0 -1
  127. package/dist/transforms/v1/datasource-mssql.d.ts +0 -7
  128. package/dist/transforms/v1/datasource-mysql-connector.d.ts +0 -6
  129. package/dist/transforms/v1/datasource-name.d.ts +0 -6
  130. package/dist/transforms/v1/datasource-sap.d.ts +0 -6
  131. package/dist/transforms/v1/datasource-sqlite-options.d.ts +0 -6
  132. package/dist/transforms/v1/datasource-sqlite-type.d.ts +0 -6
  133. package/dist/transforms/v1/find-options-lock-modes.d.ts +0 -6
  134. package/dist/transforms/v1/find-options-string-relations.d.ts +0 -6
  135. package/dist/transforms/v1/find-options-string-select.d.ts +0 -6
  136. package/dist/transforms/v1/global-functions.d.ts +0 -7
  137. package/dist/transforms/v1/index.d.ts +0 -40
  138. package/dist/transforms/v1/migrations-get-all.d.ts +0 -7
  139. package/dist/transforms/v1/mongodb-stats.d.ts +0 -7
  140. package/dist/transforms/v1/mongodb-types.d.ts +0 -6
  141. package/dist/transforms/v1/query-builder-native-parameters.d.ts +0 -6
  142. package/dist/transforms/v1/query-builder-on-conflict.d.ts +0 -7
  143. package/dist/transforms/v1/query-builder-or-update.d.ts +0 -6
  144. package/dist/transforms/v1/query-builder-print-sql.d.ts +0 -7
  145. package/dist/transforms/v1/query-builder-replace-property-names.d.ts +0 -7
  146. package/dist/transforms/v1/query-builder-where-expression.d.ts +0 -6
  147. package/dist/transforms/v1/query-runner-loaded-tables-views.d.ts +0 -7
  148. package/dist/transforms/v1/relation-count.d.ts +0 -7
  149. package/dist/transforms/v1/remove-abstract-repository.d.ts +0 -5
  150. package/dist/transforms/v1/remove-abstract-repository.js +0 -93
  151. package/dist/transforms/v1/remove-abstract-repository.js.map +0 -1
  152. package/dist/transforms/v1/remove-connector-package.d.ts +0 -4
  153. package/dist/transforms/v1/remove-connector-package.js +0 -19
  154. package/dist/transforms/v1/remove-connector-package.js.map +0 -1
  155. package/dist/transforms/v1/remove-datasource-name.d.ts +0 -4
  156. package/dist/transforms/v1/remove-datasource-name.js +0 -56
  157. package/dist/transforms/v1/remove-datasource-name.js.map +0 -1
  158. package/dist/transforms/v1/remove-mongodb-options.d.ts +0 -5
  159. package/dist/transforms/v1/remove-mongodb-options.js +0 -86
  160. package/dist/transforms/v1/remove-mongodb-options.js.map +0 -1
  161. package/dist/transforms/v1/remove-relation-count.d.ts +0 -5
  162. package/dist/transforms/v1/remove-relation-count.js +0 -49
  163. package/dist/transforms/v1/remove-relation-count.js.map +0 -1
  164. package/dist/transforms/v1/remove-replace-property-names.d.ts +0 -5
  165. package/dist/transforms/v1/remove-replace-property-names.js +0 -35
  166. package/dist/transforms/v1/remove-replace-property-names.js.map +0 -1
  167. package/dist/transforms/v1/remove-sap-options.d.ts +0 -4
  168. package/dist/transforms/v1/remove-sap-options.js +0 -54
  169. package/dist/transforms/v1/remove-sap-options.js.map +0 -1
  170. package/dist/transforms/v1/remove-unsigned-numeric.d.ts +0 -4
  171. package/dist/transforms/v1/remove-unsigned-numeric.js +0 -76
  172. package/dist/transforms/v1/remove-unsigned-numeric.js.map +0 -1
  173. package/dist/transforms/v1/remove-use-container.d.ts +0 -5
  174. package/dist/transforms/v1/remove-use-container.js +0 -63
  175. package/dist/transforms/v1/remove-use-container.js.map +0 -1
  176. package/dist/transforms/v1/remove-width-zerofill.d.ts +0 -4
  177. package/dist/transforms/v1/remove-width-zerofill.js +0 -29
  178. package/dist/transforms/v1/remove-width-zerofill.js.map +0 -1
  179. package/dist/transforms/v1/rename-connection-to-datasource.d.ts +0 -4
  180. package/dist/transforms/v1/rename-connection-to-datasource.js +0 -111
  181. package/dist/transforms/v1/rename-connection-to-datasource.js.map +0 -1
  182. package/dist/transforms/v1/rename-exist-to-exists.d.ts +0 -4
  183. package/dist/transforms/v1/rename-exist-to-exists.js +0 -25
  184. package/dist/transforms/v1/rename-exist-to-exists.js.map +0 -1
  185. package/dist/transforms/v1/rename-find-by-ids.d.ts +0 -4
  186. package/dist/transforms/v1/rename-find-by-ids.js +0 -64
  187. package/dist/transforms/v1/rename-find-by-ids.js.map +0 -1
  188. package/dist/transforms/v1/rename-get-all-migrations.d.ts +0 -5
  189. package/dist/transforms/v1/rename-get-all-migrations.js +0 -32
  190. package/dist/transforms/v1/rename-get-all-migrations.js.map +0 -1
  191. package/dist/transforms/v1/rename-loaded-tables-views.d.ts +0 -5
  192. package/dist/transforms/v1/rename-loaded-tables-views.js +0 -48
  193. package/dist/transforms/v1/rename-loaded-tables-views.js.map +0 -1
  194. package/dist/transforms/v1/rename-or-update-overload.d.ts +0 -4
  195. package/dist/transforms/v1/rename-or-update-overload.js +0 -46
  196. package/dist/transforms/v1/rename-or-update-overload.js.map +0 -1
  197. package/dist/transforms/v1/rename-print-sql-to-log-query.d.ts +0 -4
  198. package/dist/transforms/v1/rename-print-sql-to-log-query.js +0 -25
  199. package/dist/transforms/v1/rename-print-sql-to-log-query.js.map +0 -1
  200. package/dist/transforms/v1/replace-global-functions.d.ts +0 -5
  201. package/dist/transforms/v1/replace-global-functions.js +0 -92
  202. package/dist/transforms/v1/replace-global-functions.js.map +0 -1
  203. package/dist/transforms/v1/replace-lock-modes.d.ts +0 -4
  204. package/dist/transforms/v1/replace-lock-modes.js +0 -75
  205. package/dist/transforms/v1/replace-lock-modes.js.map +0 -1
  206. package/dist/transforms/v1/replace-mongodb-stats.d.ts +0 -5
  207. package/dist/transforms/v1/replace-mongodb-stats.js +0 -54
  208. package/dist/transforms/v1/replace-mongodb-stats.js.map +0 -1
  209. package/dist/transforms/v1/replace-mongodb-types.d.ts +0 -4
  210. package/dist/transforms/v1/replace-mongodb-types.js +0 -72
  211. package/dist/transforms/v1/replace-mongodb-types.js.map +0 -1
  212. package/dist/transforms/v1/replace-mssql-domain.d.ts +0 -5
  213. package/dist/transforms/v1/replace-mssql-domain.js +0 -25
  214. package/dist/transforms/v1/replace-mssql-domain.js.map +0 -1
  215. package/dist/transforms/v1/replace-on-conflict.d.ts +0 -5
  216. package/dist/transforms/v1/replace-on-conflict.js +0 -49
  217. package/dist/transforms/v1/replace-on-conflict.js.map +0 -1
  218. package/dist/transforms/v1/replace-readonly-column.d.ts +0 -4
  219. package/dist/transforms/v1/replace-readonly-column.js +0 -28
  220. package/dist/transforms/v1/replace-readonly-column.js.map +0 -1
  221. package/dist/transforms/v1/replace-set-native-parameters.d.ts +0 -4
  222. package/dist/transforms/v1/replace-set-native-parameters.js +0 -25
  223. package/dist/transforms/v1/replace-set-native-parameters.js.map +0 -1
  224. package/dist/transforms/v1/replace-sqlite-options.d.ts +0 -4
  225. package/dist/transforms/v1/replace-sqlite-options.js +0 -29
  226. package/dist/transforms/v1/replace-sqlite-options.js.map +0 -1
  227. package/dist/transforms/v1/replace-sqlite-type.d.ts +0 -4
  228. package/dist/transforms/v1/replace-sqlite-type.js +0 -22
  229. package/dist/transforms/v1/replace-sqlite-type.js.map +0 -1
  230. package/dist/transforms/v1/replace-where-expression-type.d.ts +0 -4
  231. package/dist/transforms/v1/replace-where-expression-type.js +0 -41
  232. package/dist/transforms/v1/replace-where-expression-type.js.map +0 -1
  233. package/dist/transforms/v1/repository-abstract.d.ts +0 -7
  234. package/dist/transforms/v1/repository-exist.d.ts +0 -6
  235. package/dist/transforms/v1/repository-find-by-ids.d.ts +0 -6
  236. package/dist/transforms/v1/repository-find-one-by-id.d.ts +0 -6
  237. package/dist/transforms/v1/upgrade-dependencies.d.ts +0 -15
  238. package/dist/transforms/v1/upgrade-dependencies.js +0 -163
  239. package/dist/transforms/v1/upgrade-dependencies.js.map +0 -1
  240. package/dist/transforms/v1/use-container.d.ts +0 -7
@@ -9,25 +9,88 @@ const ast_helpers_1 = require("../ast-helpers");
9
9
  const todo_1 = require("../todo");
10
10
  const stats_1 = require("../stats");
11
11
  exports.name = node_path_1.default.basename(__filename, node_path_1.default.extname(__filename));
12
- exports.description = "flag removed `@RelationCount` decorator for manual migration";
12
+ exports.description = "flag removed `@RelationCount` decorator and `loadRelationCountAndMap()` for manual migration";
13
13
  exports.manual = true;
14
+ const MIGRATION_HINT = "use `@VirtualColumn` with a sub-query instead";
15
+ // Node types on which a leading line-comment survives jscodeshift/recast
16
+ // printing — walking up to one of these keeps the comment visible above
17
+ // the enclosing statement or declaration.
18
+ const isTodoHost = (type) => type.endsWith("Statement") ||
19
+ type === "VariableDeclaration" ||
20
+ type === "ExportDefaultDeclaration" ||
21
+ type === "ExportNamedDeclaration" ||
22
+ type === "ClassProperty" ||
23
+ type === "PropertyDefinition";
14
24
  const relationCount = (file, api) => {
15
25
  const j = api.jscodeshift;
16
26
  const root = j(file.source);
27
+ // No `fileImportsFrom` guard at the top: `.loadRelationCountAndMap()` call
28
+ // sites can appear in files that only receive a `QueryBuilder` via a helper
29
+ // and never import from "typeorm" directly. The decorator and import-
30
+ // removal blocks below self-gate via `getLocalNamesForImport` /
31
+ // `removeImportSpecifiers`, which are no-ops when typeorm is absent.
17
32
  let hasChanges = false;
18
33
  let hasTodos = false;
19
- // Find @RelationCount decorators and add TODO
20
- root.find(j.Decorator, {
21
- expression: {
22
- type: "CallExpression",
23
- callee: { type: "Identifier", name: "RelationCount" },
24
- },
25
- }).forEach((path) => {
26
- (0, todo_1.addTodoComment)(path.node, "`@RelationCount` was removed — use `QueryBuilder` with `loadRelationCountAndMap()` instead", j);
27
- hasChanges = true;
28
- hasTodos = true;
34
+ // Collect local names bound to `RelationCount` from typeorm — including aliases:
35
+ // import { RelationCount } from "typeorm" → "RelationCount"
36
+ // import { RelationCount as RC } from "typeorm" → "RC"
37
+ const localNames = (0, ast_helpers_1.getLocalNamesForImport)(root, j, "typeorm", "RelationCount");
38
+ if (localNames.size > 0) {
39
+ // Decorators live on `ClassProperty.decorators` but jscodeshift's
40
+ // default visitor does not descend into that array, so
41
+ // `root.find(j.Decorator)` is a no-op with the `tsx` parser. Walk the
42
+ // class properties explicitly instead and attach the comment to the
43
+ // property itself (decorator-attached comments are dropped by recast).
44
+ const message = `\`@RelationCount\` was removed — ${MIGRATION_HINT}`;
45
+ root.find(j.ClassProperty).forEach((propertyPath) => {
46
+ const node = propertyPath.node;
47
+ const matches = node.decorators?.some((decorator) => {
48
+ const expr = decorator.expression;
49
+ return (expr.type === "CallExpression" &&
50
+ expr.callee.type === "Identifier" &&
51
+ localNames.has(expr.callee.name));
52
+ });
53
+ if (!matches)
54
+ return;
55
+ if ((0, todo_1.hasTodoComment)(node, message))
56
+ return;
57
+ (0, todo_1.addTodoComment)(node, message, j);
58
+ hasChanges = true;
59
+ hasTodos = true;
60
+ });
61
+ }
62
+ // Find .loadRelationCountAndMap() call sites — attach the comment above the enclosing statement.
63
+ // Multiple chained calls on one statement resolve to the same host, so the
64
+ // `hasTodoComment` guard keeps the transform idempotent.
65
+ const callMessage = `\`loadRelationCountAndMap()\` was removed — ${MIGRATION_HINT}`;
66
+ // Match both dot access (`qb.loadRelationCountAndMap()`) and computed
67
+ // access (`qb["loadRelationCountAndMap"]()`). Use a post-filter rather
68
+ // than a find-pattern so the computed-key branch is visited too.
69
+ root.find(j.CallExpression).forEach((callPath) => {
70
+ const callee = callPath.node.callee;
71
+ if (callee.type !== "MemberExpression")
72
+ return;
73
+ const prop = callee.property;
74
+ const matches = (prop.type === "Identifier" &&
75
+ prop.name === "loadRelationCountAndMap") ||
76
+ (callee.computed &&
77
+ (0, ast_helpers_1.getStringValue)(prop) === "loadRelationCountAndMap");
78
+ if (!matches)
79
+ return;
80
+ let current = callPath.parent;
81
+ while (current) {
82
+ const node = current.node;
83
+ if (isTodoHost(node.type)) {
84
+ if (!(0, todo_1.hasTodoComment)(node, callMessage)) {
85
+ (0, todo_1.addTodoComment)(node, callMessage, j);
86
+ hasChanges = true;
87
+ hasTodos = true;
88
+ }
89
+ break;
90
+ }
91
+ current = current.parent;
92
+ }
29
93
  });
30
- // Remove RelationCount import from typeorm
31
94
  if ((0, ast_helpers_1.removeImportSpecifiers)(root, j, "typeorm", new Set(["RelationCount"]))) {
32
95
  hasChanges = true;
33
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"relation-count.js","sourceRoot":"","sources":["../../../src/transforms/v1/relation-count.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,gDAAuD;AACvD,kCAAwC;AACxC,oCAAgC;AAEnB,QAAA,IAAI,GAAG,mBAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,mBAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;AAC1D,QAAA,WAAW,GACpB,8DAA8D,CAAA;AACrD,QAAA,MAAM,GAAG,IAAI,CAAA;AAEnB,MAAM,aAAa,GAAG,CAAC,IAAc,EAAE,GAAQ,EAAE,EAAE;IACtD,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,CAAA;IACzB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3B,IAAI,UAAU,GAAG,KAAK,CAAA;IACtB,IAAI,QAAQ,GAAG,KAAK,CAAA;IAEpB,8CAA8C;IAC9C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE;QACnB,UAAU,EAAE;YACR,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE;SACxD;KACJ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAChB,IAAA,qBAAc,EACV,IAAI,CAAC,IAAI,EACT,4FAA4F,EAC5F,CAAC,CACJ,CAAA;QACD,UAAU,GAAG,IAAI,CAAA;QACjB,QAAQ,GAAG,IAAI,CAAA;IACnB,CAAC,CAAC,CAAA;IAEF,2CAA2C;IAC3C,IACI,IAAA,oCAAsB,EAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EACxE,CAAC;QACC,UAAU,GAAG,IAAI,CAAA;IACrB,CAAC;IAED,IAAI,QAAQ;QAAE,aAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,YAAI,EAAE,IAAI,CAAC,CAAA;IAE/C,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AACnD,CAAC,CAAA;AAhCY,QAAA,aAAa,iBAgCzB;AAEY,QAAA,EAAE,GAAG,qBAAa,CAAA;AAC/B,kBAAe,UAAE,CAAA"}
1
+ {"version":3,"file":"relation-count.js","sourceRoot":"","sources":["../../../src/transforms/v1/relation-count.ts"],"names":[],"mappings":"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"}
@@ -14,9 +14,10 @@ exports.manual = true;
14
14
  const repositoryAbstract = (file, api) => {
15
15
  const j = api.jscodeshift;
16
16
  const root = j(file.source);
17
+ if (!(0, ast_helpers_1.fileImportsFrom)(root, j, "typeorm"))
18
+ return undefined;
17
19
  let hasChanges = false;
18
20
  let hasTodos = false;
19
- // Find @EntityRepository decorators and add TODO
20
21
  root.find(j.Decorator, {
21
22
  expression: {
22
23
  type: "CallExpression",
@@ -27,7 +28,6 @@ const repositoryAbstract = (file, api) => {
27
28
  hasChanges = true;
28
29
  hasTodos = true;
29
30
  });
30
- // Find classes extending AbstractRepository and add TODO
31
31
  root.find(j.ClassDeclaration).forEach((path) => {
32
32
  const superClass = path.node.superClass;
33
33
  if (!superClass)
@@ -46,7 +46,6 @@ const repositoryAbstract = (file, api) => {
46
46
  hasChanges = true;
47
47
  hasTodos = true;
48
48
  });
49
- // Find getCustomRepository() calls and add TODO
50
49
  const addGetCustomRepoTodo = (path) => {
51
50
  const message = "`getCustomRepository()` was removed — use a custom service class with `dataSource.getRepository()`";
52
51
  const parentNode = path.parent.node;
@@ -65,11 +64,9 @@ const repositoryAbstract = (file, api) => {
65
64
  property: { type: "Identifier", name: "getCustomRepository" },
66
65
  },
67
66
  }).forEach(addGetCustomRepoTodo);
68
- // Also find standalone getCustomRepository() calls
69
67
  root.find(j.CallExpression, {
70
68
  callee: { type: "Identifier", name: "getCustomRepository" },
71
69
  }).forEach(addGetCustomRepoTodo);
72
- // Remove imports
73
70
  if ((0, ast_helpers_1.removeImportSpecifiers)(root, j, "typeorm", new Set(["EntityRepository", "AbstractRepository"]))) {
74
71
  hasChanges = true;
75
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"repository-abstract.js","sourceRoot":"","sources":["../../../src/transforms/v1/repository-abstract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository-abstract.js","sourceRoot":"","sources":["../../../src/transforms/v1/repository-abstract.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,gDAAwE;AACxE,kCAAwC;AACxC,oCAAgC;AAEnB,QAAA,IAAI,GAAG,mBAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,mBAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;AAC1D,QAAA,WAAW,GACpB,gFAAgF,CAAA;AACvE,QAAA,MAAM,GAAG,IAAI,CAAA;AAEnB,MAAM,kBAAkB,GAAG,CAAC,IAAc,EAAE,GAAQ,EAAE,EAAE;IAC3D,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,CAAA;IACzB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAE3B,IAAI,CAAC,IAAA,6BAAe,EAAC,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IAE1D,IAAI,UAAU,GAAG,KAAK,CAAA;IACtB,IAAI,QAAQ,GAAG,KAAK,CAAA;IAEpB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE;QACnB,UAAU,EAAE;YACR,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE;SAC3D;KACJ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAChB,IAAA,qBAAc,EACV,IAAI,CAAC,IAAI,EACT,gGAAgG,EAChG,CAAC,CACJ,CAAA;QACD,UAAU,GAAG,IAAI,CAAA;QACjB,QAAQ,GAAG,IAAI,CAAA;IACnB,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAA;QACvC,IAAI,CAAC,UAAU;YAAE,OAAM;QAEvB,IAAI,IAAI,GAAkB,IAAI,CAAA;QAC9B,IAAI,UAAU,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACnC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;QAC1B,CAAC;aAAM,IACH,UAAU,CAAC,IAAI,KAAK,kBAAkB;YACtC,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,EAC3C,CAAC;YACC,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAA;QACnC,CAAC;QAED,IAAI,IAAI,KAAK,oBAAoB;YAAE,OAAM;QAEzC,IAAA,qBAAc,EACV,IAAI,CAAC,IAAI,EACT,iGAAiG,EACjG,CAAC,CACJ,CAAA;QACD,UAAU,GAAG,IAAI,CAAA;QACjB,QAAQ,GAAG,IAAI,CAAA;IACnB,CAAC,CAAC,CAAA;IAEF,MAAM,oBAAoB,GAAG,CAAC,IAAa,EAAE,EAAE;QAC3C,MAAM,OAAO,GACT,oGAAoG,CAAA;QACxG,MAAM,UAAU,GAAS,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;QACzC,IAAI,UAAU,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC5C,IAAA,qBAAc,EAAC,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;QAC1C,CAAC;aAAM,CAAC;YACJ,IAAA,qBAAc,EAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;QACzC,CAAC;QACD,UAAU,GAAG,IAAI,CAAA;QACjB,QAAQ,GAAG,IAAI,CAAA;IACnB,CAAC,CAAA;IAED,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE;QACxB,MAAM,EAAE;YACJ,IAAI,EAAE,kBAAkB;YACxB,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,qBAAqB,EAAE;SAChE;KACJ,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAEhC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE;QACxB,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,qBAAqB,EAAE;KAC9D,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAEhC,IACI,IAAA,oCAAsB,EAClB,IAAI,EACJ,CAAC,EACD,SAAS,EACT,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC,CACtD,EACH,CAAC;QACC,UAAU,GAAG,IAAI,CAAA;IACrB,CAAC;IAED,IAAI,QAAQ;QAAE,aAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,YAAI,EAAE,IAAI,CAAC,CAAA;IAE/C,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AACnD,CAAC,CAAA;AAvFY,QAAA,kBAAkB,sBAuF9B;AAEY,QAAA,EAAE,GAAG,0BAAkB,CAAA;AACpC,kBAAe,UAAE,CAAA"}
@@ -11,6 +11,8 @@ exports.description = "rename `Repository.exist()` to `exists()`";
11
11
  const repositoryExist = (file, api) => {
12
12
  const j = api.jscodeshift;
13
13
  const root = j(file.source);
14
+ if (!(0, ast_helpers_1.fileImportsFrom)(root, j, "typeorm"))
15
+ return undefined;
14
16
  const hasChanges = (0, ast_helpers_1.renameMemberMethod)(root, j, "exist", "exists");
15
17
  return hasChanges ? root.toSource() : undefined;
16
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"repository-exist.js","sourceRoot":"","sources":["../../../src/transforms/v1/repository-exist.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,gDAAmD;AAEtC,QAAA,IAAI,GAAG,mBAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,mBAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;AAC1D,QAAA,WAAW,GAAG,2CAA2C,CAAA;AAE/D,MAAM,eAAe,GAAG,CAAC,IAAc,EAAE,GAAQ,EAAE,EAAE;IACxD,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,CAAA;IACzB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAE3B,MAAM,UAAU,GAAG,IAAA,gCAAkB,EAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAEjE,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AACnD,CAAC,CAAA;AAPY,QAAA,eAAe,mBAO3B;AAEY,QAAA,EAAE,GAAG,uBAAe,CAAA;AACjC,kBAAe,UAAE,CAAA"}
1
+ {"version":3,"file":"repository-exist.js","sourceRoot":"","sources":["../../../src/transforms/v1/repository-exist.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,gDAAoE;AAEvD,QAAA,IAAI,GAAG,mBAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,mBAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;AAC1D,QAAA,WAAW,GAAG,2CAA2C,CAAA;AAE/D,MAAM,eAAe,GAAG,CAAC,IAAc,EAAE,GAAQ,EAAE,EAAE;IACxD,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,CAAA;IACzB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAE3B,IAAI,CAAC,IAAA,6BAAe,EAAC,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IAE1D,MAAM,UAAU,GAAG,IAAA,gCAAkB,EAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAEjE,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AACnD,CAAC,CAAA;AATY,QAAA,eAAe,mBAS3B;AAEY,QAAA,EAAE,GAAG,uBAAe,CAAA;AACjC,kBAAe,UAAE,CAAA"}
@@ -37,7 +37,6 @@ const repositoryFindByIds = (file, api) => {
37
37
  hasChanges = true;
38
38
  needsInImport = true;
39
39
  });
40
- // Add In import if needed
41
40
  if (needsInImport) {
42
41
  const typeormImports = root.find(j.ImportDeclaration, {
43
42
  source: { value: "typeorm" },
@@ -54,13 +53,11 @@ const repositoryFindByIds = (file, api) => {
54
53
  });
55
54
  if (!hasInImport) {
56
55
  if (typeormImports.length > 0) {
57
- // Add to existing typeorm import
58
56
  typeormImports.at(0).forEach((path) => {
59
57
  path.node.specifiers?.push(j.importSpecifier(j.identifier("In")));
60
58
  });
61
59
  }
62
60
  else {
63
- // Create new import
64
61
  const newImport = j.importDeclaration([j.importSpecifier(j.identifier("In"))], j.literal("typeorm"));
65
62
  root.find(j.ImportDeclaration).at(-1).insertAfter(newImport);
66
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"repository-find-by-ids.js","sourceRoot":"","sources":["../../../src/transforms/v1/repository-find-by-ids.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository-find-by-ids.js","sourceRoot":"","sources":["../../../src/transforms/v1/repository-find-by-ids.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.fn = exports.repositoryFindOneById = exports.description = exports.name = void 0;
7
7
  const node_path_1 = __importDefault(require("node:path"));
8
+ const ast_helpers_1 = require("../ast-helpers");
8
9
  exports.name = node_path_1.default.basename(__filename, node_path_1.default.extname(__filename));
9
10
  exports.description = "replace `findOneById()` with `findOneBy()` using `{ id: value }`";
10
11
  const repositoryFindOneById = (file, api) => {
11
12
  const j = api.jscodeshift;
12
13
  const root = j(file.source);
14
+ if (!(0, ast_helpers_1.fileImportsFrom)(root, j, "typeorm"))
15
+ return undefined;
13
16
  let hasChanges = false;
14
17
  root.find(j.CallExpression, {
15
18
  callee: {
@@ -1 +1 @@
1
- {"version":3,"file":"repository-find-one-by-id.js","sourceRoot":"","sources":["../../../src/transforms/v1/repository-find-one-by-id.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAGf,QAAA,IAAI,GAAG,mBAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,mBAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;AAC1D,QAAA,WAAW,GACpB,kEAAkE,CAAA;AAE/D,MAAM,qBAAqB,GAAG,CAAC,IAAc,EAAE,GAAQ,EAAE,EAAE;IAC9D,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,CAAA;IACzB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3B,IAAI,UAAU,GAAG,KAAK,CAAA;IAEtB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE;QACxB,MAAM,EAAE;YACJ,IAAI,EAAE,kBAAkB;YACxB,QAAQ,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;SACpC;KACJ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAChB,IACI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,kBAAkB;YAC5C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAChC,CAAC;YACC,OAAM;QACV,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAA;QAEhC,aAAa;QACb,2CAA2C;QAC3C,0CAA0C;QAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QAErD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACnB,0EAA0E;YAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAe,CAAA;YACnC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG;gBAClB,IAAI,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,gBAAgB,CAAC;oBACf,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;iBAChD,CAAC;aACL,CAAA;QACL,CAAC;aAAM,CAAC;YACJ,gEAAgE;YAChE,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAe,CAAA;YACnC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG;gBAClB,CAAC,CAAC,gBAAgB,CAAC;oBACf,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;iBAChD,CAAC;aACL,CAAA;QACL,CAAC;QAED,UAAU,GAAG,IAAI,CAAA;IACrB,CAAC,CAAC,CAAA;IAEF,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AACnD,CAAC,CAAA;AAhDY,QAAA,qBAAqB,yBAgDjC;AAEY,QAAA,EAAE,GAAG,6BAAqB,CAAA;AACvC,kBAAe,UAAE,CAAA"}
1
+ {"version":3,"file":"repository-find-one-by-id.js","sourceRoot":"","sources":["../../../src/transforms/v1/repository-find-one-by-id.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,gDAAgD;AAEnC,QAAA,IAAI,GAAG,mBAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,mBAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;AAC1D,QAAA,WAAW,GACpB,kEAAkE,CAAA;AAE/D,MAAM,qBAAqB,GAAG,CAAC,IAAc,EAAE,GAAQ,EAAE,EAAE;IAC9D,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,CAAA;IACzB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAE3B,IAAI,CAAC,IAAA,6BAAe,EAAC,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IAE1D,IAAI,UAAU,GAAG,KAAK,CAAA;IAEtB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE;QACxB,MAAM,EAAE;YACJ,IAAI,EAAE,kBAAkB;YACxB,QAAQ,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;SACpC;KACJ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAChB,IACI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,kBAAkB;YAC5C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAChC,CAAC;YACC,OAAM;QACV,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAA;QAEhC,aAAa;QACb,2CAA2C;QAC3C,0CAA0C;QAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QAErD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACnB,0EAA0E;YAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAe,CAAA;YACnC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG;gBAClB,IAAI,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,gBAAgB,CAAC;oBACf,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;iBAChD,CAAC;aACL,CAAA;QACL,CAAC;aAAM,CAAC;YACJ,gEAAgE;YAChE,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAe,CAAA;YACnC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG;gBAClB,CAAC,CAAC,gBAAgB,CAAC;oBACf,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;iBAChD,CAAC;aACL,CAAA;QACL,CAAC;QAED,UAAU,GAAG,IAAI,CAAA;IACrB,CAAC,CAAC,CAAA;IAEF,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AACnD,CAAC,CAAA;AAnDY,QAAA,qBAAqB,yBAmDjC;AAEY,QAAA,EAAE,GAAG,6BAAqB,CAAA;AACvC,kBAAe,UAAE,CAAA"}
@@ -14,10 +14,14 @@ exports.manual = true;
14
14
  const useContainer = (file, api) => {
15
15
  const j = api.jscodeshift;
16
16
  const root = j(file.source);
17
+ // `useContainer` is also exported by typedi/tsyringe, so gate the
18
+ // transform to files that actually import from typeorm and avoid
19
+ // rewriting unrelated DI container calls.
20
+ if (!(0, ast_helpers_1.fileImportsFrom)(root, j, "typeorm"))
21
+ return undefined;
17
22
  let hasChanges = false;
18
23
  let hasTodos = false;
19
24
  const removedFunctions = new Set(["useContainer", "getFromContainer"]);
20
- // Replace calls with a TODO comment
21
25
  for (const funcName of removedFunctions) {
22
26
  root.find(j.ExpressionStatement, {
23
27
  expression: {
@@ -25,7 +29,6 @@ const useContainer = (file, api) => {
25
29
  callee: { type: "Identifier", name: funcName },
26
30
  },
27
31
  }).forEach((path) => {
28
- // Replace with a comment
29
32
  const replacement = j.emptyStatement();
30
33
  (0, todo_1.addTodoComment)(replacement, `${funcName}() was removed — the container system is no longer supported`, j);
31
34
  j(path).replaceWith(replacement);
@@ -33,7 +36,6 @@ const useContainer = (file, api) => {
33
36
  hasTodos = true;
34
37
  });
35
38
  }
36
- // Remove imports from typeorm
37
39
  const removedImports = new Set([
38
40
  "useContainer",
39
41
  "getFromContainer",
@@ -1 +1 @@
1
- {"version":3,"file":"use-container.js","sourceRoot":"","sources":["../../../src/transforms/v1/use-container.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,gDAAuD;AACvD,kCAAwC;AACxC,oCAAgC;AAEnB,QAAA,IAAI,GAAG,mBAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,mBAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;AAC1D,QAAA,WAAW,GACpB,wDAAwD,CAAA;AAC/C,QAAA,MAAM,GAAG,IAAI,CAAA;AAEnB,MAAM,YAAY,GAAG,CAAC,IAAc,EAAE,GAAQ,EAAE,EAAE;IACrD,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,CAAA;IACzB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3B,IAAI,UAAU,GAAG,KAAK,CAAA;IACtB,IAAI,QAAQ,GAAG,KAAK,CAAA;IAEpB,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAEtE,oCAAoC;IACpC,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,EAAE;YAC7B,UAAU,EAAE;gBACR,IAAI,EAAE,gBAAgB;gBACtB,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE;aACjD;SACJ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAChB,yBAAyB;YACzB,MAAM,WAAW,GAAG,CAAC,CAAC,cAAc,EAAE,CAAA;YACtC,IAAA,qBAAc,EACV,WAAW,EACX,GAAG,QAAQ,8DAA8D,EACzE,CAAC,CACJ,CAAA;YACD,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;YAChC,UAAU,GAAG,IAAI,CAAA;YACjB,QAAQ,GAAG,IAAI,CAAA;QACnB,CAAC,CAAC,CAAA;IACN,CAAC;IAED,8BAA8B;IAC9B,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;QAC3B,cAAc;QACd,kBAAkB;QAClB,oBAAoB;QACpB,eAAe;QACf,qBAAqB;KACxB,CAAC,CAAA;IAEF,IAAI,IAAA,oCAAsB,EAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,CAAC;QAC7D,UAAU,GAAG,IAAI,CAAA;IACrB,CAAC;IAED,IAAI,QAAQ;QAAE,aAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,YAAI,EAAE,IAAI,CAAC,CAAA;IAE/C,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AACnD,CAAC,CAAA;AA7CY,QAAA,YAAY,gBA6CxB;AAEY,QAAA,EAAE,GAAG,oBAAY,CAAA;AAC9B,kBAAe,UAAE,CAAA"}
1
+ {"version":3,"file":"use-container.js","sourceRoot":"","sources":["../../../src/transforms/v1/use-container.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,gDAAwE;AACxE,kCAAwC;AACxC,oCAAgC;AAEnB,QAAA,IAAI,GAAG,mBAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,mBAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;AAC1D,QAAA,WAAW,GACpB,wDAAwD,CAAA;AAC/C,QAAA,MAAM,GAAG,IAAI,CAAA;AAEnB,MAAM,YAAY,GAAG,CAAC,IAAc,EAAE,GAAQ,EAAE,EAAE;IACrD,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,CAAA;IACzB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAE3B,kEAAkE;IAClE,iEAAiE;IACjE,0CAA0C;IAC1C,IAAI,CAAC,IAAA,6BAAe,EAAC,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IAE1D,IAAI,UAAU,GAAG,KAAK,CAAA;IACtB,IAAI,QAAQ,GAAG,KAAK,CAAA;IAEpB,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAEtE,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,EAAE;YAC7B,UAAU,EAAE;gBACR,IAAI,EAAE,gBAAgB;gBACtB,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE;aACjD;SACJ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAChB,MAAM,WAAW,GAAG,CAAC,CAAC,cAAc,EAAE,CAAA;YACtC,IAAA,qBAAc,EACV,WAAW,EACX,GAAG,QAAQ,8DAA8D,EACzE,CAAC,CACJ,CAAA;YACD,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;YAChC,UAAU,GAAG,IAAI,CAAA;YACjB,QAAQ,GAAG,IAAI,CAAA;QACnB,CAAC,CAAC,CAAA;IACN,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;QAC3B,cAAc;QACd,kBAAkB;QAClB,oBAAoB;QACpB,eAAe;QACf,qBAAqB;KACxB,CAAC,CAAA;IAEF,IAAI,IAAA,oCAAsB,EAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,CAAC;QAC7D,UAAU,GAAG,IAAI,CAAA;IACrB,CAAC;IAED,IAAI,QAAQ;QAAE,aAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,YAAI,EAAE,IAAI,CAAC,CAAA;IAE/C,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AACnD,CAAC,CAAA;AAhDY,QAAA,YAAY,gBAgDxB;AAEY,QAAA,EAAE,GAAG,oBAAY,CAAA;AAC9B,kBAAe,UAAE,CAAA"}
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@typeorm/codemod",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Codemods for migrating between TypeORM versions",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/typeorm/typeorm.git",
8
8
  "directory": "packages/codemod"
9
9
  },
10
+ "homepage": "https://typeorm.io",
10
11
  "license": "MIT",
11
12
  "bin": {
12
13
  "typeorm-codemod": "./dist/index.js"
@@ -27,6 +28,7 @@
27
28
  "@types/node": "^20.19.33",
28
29
  "@types/semver": "^7.7.0",
29
30
  "@types/sinon": "^21.0.0",
31
+ "c8": "^11.0.0",
30
32
  "chai": "^4.5.0",
31
33
  "eslint": "^10.0.0",
32
34
  "eslint-plugin-chai-friendly": "^1.1.0",
@@ -1,7 +0,0 @@
1
- export declare const colors: {
2
- bold: (s: string) => string;
3
- dim: (s: string) => string;
4
- red: (s: string) => string;
5
- yellow: (s: string) => string;
6
- blue: (s: string) => string;
7
- };
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.colors = void 0;
4
- const wrap = (code) => (s) => `\x1b[${code}m${s}\x1b[0m`;
5
- exports.colors = {
6
- bold: wrap("1"),
7
- dim: wrap("2"),
8
- red: wrap("31"),
9
- yellow: wrap("33"),
10
- blue: wrap("94"),
11
- };
12
- //# sourceMappingURL=colors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/cli/colors.ts"],"names":[],"mappings":";;;AAAA,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAA;AAE3D,QAAA,MAAM,GAAG;IAClB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;IACf,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;IACd,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC;IACf,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;IAClB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;CACnB,CAAA"}
@@ -1 +0,0 @@
1
- export declare const fail: (message: string, beforeExit?: () => void) => never;
package/dist/cli/error.js DELETED
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fail = void 0;
4
- const colors_1 = require("./colors");
5
- const fail = (message, beforeExit) => {
6
- console.error(colors_1.colors.red(`Error: ${message}\n`));
7
- beforeExit?.();
8
- process.exit(1);
9
- };
10
- exports.fail = fail;
11
- //# sourceMappingURL=error.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/cli/error.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AAE1B,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,UAAuB,EAAS,EAAE;IACpE,OAAO,CAAC,KAAK,CAAC,eAAM,CAAC,GAAG,CAAC,UAAU,OAAO,IAAI,CAAC,CAAC,CAAA;IAChD,UAAU,EAAE,EAAE,CAAA;IACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC,CAAA;AAJY,QAAA,IAAI,QAIhB"}
@@ -1 +0,0 @@
1
- export declare const listTransforms: (version: string) => void;
@@ -1,10 +0,0 @@
1
- export interface CliOptions {
2
- version: string;
3
- paths: string[];
4
- transform?: string;
5
- dry?: boolean;
6
- list?: boolean;
7
- workers?: number;
8
- ignore?: string[];
9
- }
10
- export declare const parseArgs: (args: string[]) => CliOptions;
@@ -1 +0,0 @@
1
- export declare const printGuide: (version: string) => void;
@@ -1,17 +0,0 @@
1
- export interface SummaryData {
2
- ok: number;
3
- error: number;
4
- skip: number;
5
- nochange: number;
6
- timeElapsed: number;
7
- parseErrors: {
8
- file: string;
9
- message: string;
10
- }[];
11
- todos: Map<string, string[]>;
12
- applied: Map<string, number>;
13
- depChanges: string[];
14
- depWarnings: string[];
15
- depErrors: string[];
16
- }
17
- export declare const printSummary: (data: SummaryData) => void;
@@ -1 +0,0 @@
1
- export declare const printTodos: (allTodos: Map<string, string[]>) => void;
@@ -1 +0,0 @@
1
- export declare const printUsage: () => void;
@@ -1,6 +0,0 @@
1
- export interface DependencyResult {
2
- changes: string[];
3
- warnings: string[];
4
- errors: string[];
5
- }
6
- export declare const runDependencies: (paths: string[], version: string, dry: boolean) => DependencyResult | undefined;
@@ -1,21 +0,0 @@
1
- export interface TransformResult {
2
- ok: number;
3
- error: number;
4
- skip: number;
5
- nochange: number;
6
- timeElapsed: number;
7
- parseErrors: {
8
- file: string;
9
- message: string;
10
- }[];
11
- todos: Map<string, string[]>;
12
- applied: Map<string, number>;
13
- }
14
- export interface RunTransformsOptions {
15
- transforms: string[];
16
- paths: string[];
17
- dry: boolean;
18
- workers?: number;
19
- ignore?: string[];
20
- }
21
- export declare const runTransforms: (options: RunTransformsOptions) => Promise<TransformResult>;
package/dist/cli/run.d.ts DELETED
@@ -1,9 +0,0 @@
1
- export interface RunOptions {
2
- transforms: string[];
3
- paths: string[];
4
- dry: boolean;
5
- version: string;
6
- workers?: number;
7
- ignore?: string[];
8
- }
9
- export declare const run: (options: RunOptions) => Promise<void>;
@@ -1,24 +0,0 @@
1
- export interface DependencyConfig {
2
- /** Packages to replace (old → new package name + version). */
3
- replacements: Record<string, {
4
- replacement: string;
5
- version: string;
6
- }>;
7
- /** Packages to upgrade (minVersion triggers upgrade, version is the target). */
8
- upgrades: Record<string, {
9
- minVersion: string;
10
- version: string;
11
- }>;
12
- /** Packages that are incompatible (package name → error message). */
13
- incompatible: Record<string, string>;
14
- /** Packages that trigger a soft warning (package name → warning message). */
15
- warnings: Record<string, string>;
16
- /** Minimum required Node.js version. */
17
- minNodeVersion: string;
18
- }
19
- export interface DependencyReport {
20
- file: string;
21
- changes: string[];
22
- warnings: string[];
23
- errors: string[];
24
- }
@@ -1,5 +0,0 @@
1
- /**
2
- * Finds all package.json files in the given paths recursively,
3
- * excluding node_modules.
4
- */
5
- export declare const findPackageJsonFiles: (paths: string[]) => string[];
@@ -1,5 +0,0 @@
1
- import type { DependencyConfig } from "./config";
2
- export type { DependencyConfig, DependencyReport } from "./config";
3
- export { findPackageJsonFiles } from "./find-package-json";
4
- export { upgradeDependencies } from "./upgrade";
5
- export declare const getConfig: (version: string) => DependencyConfig | undefined;
@@ -1,11 +0,0 @@
1
- import type { DependencyConfig, DependencyReport } from "./config";
2
- export interface PackageJson {
3
- engines?: {
4
- node?: string;
5
- };
6
- dependencies?: Record<string, string>;
7
- devDependencies?: Record<string, string>;
8
- peerDependencies?: Record<string, string>;
9
- optionalDependencies?: Record<string, string>;
10
- }
11
- export declare const upgradeDependencies: (filePath: string, dry: boolean, config: DependencyConfig) => DependencyReport;
@@ -1,2 +0,0 @@
1
- import type { DependencyConfig } from "./config";
2
- export declare const config: DependencyConfig;
package/dist/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
@@ -1,9 +0,0 @@
1
- export declare const colors: {
2
- bold: (s: string) => string;
3
- dim: (s: string) => string;
4
- green: (s: string) => string;
5
- brightGreen: (s: string) => string;
6
- red: (s: string) => string;
7
- yellow: (s: string) => string;
8
- blue: (s: string) => string;
9
- };
@@ -1 +0,0 @@
1
- export declare const fail: (message: string, beforeExit?: () => void) => never;
@@ -1 +0,0 @@
1
- export declare const formatTime: (seconds: number) => string;
@@ -1 +0,0 @@
1
- export declare const highlight: (text: string) => string;
@@ -1,5 +0,0 @@
1
- export interface Spinner {
2
- update: (text: string | (() => string)) => void;
3
- stop: (text?: string) => void;
4
- }
5
- export declare const createSpinner: (text: string | (() => string)) => Spinner;
@@ -1,50 +0,0 @@
1
- import type { ASTNode, ASTPath, Collection, Identifier, JSCodeshift, ObjectExpression } from "jscodeshift";
2
- /**
3
- * Extracts a string value from a StringLiteral or Literal node.
4
- * Returns null if the node is not a string literal.
5
- */
6
- export declare const getStringValue: (node: ASTNode) => string | null;
7
- /**
8
- * Sets the string value on a StringLiteral or Literal node.
9
- */
10
- export declare const setStringValue: (node: ASTNode, value: string) => void;
11
- /**
12
- * Type guard that narrows an AST node to an Identifier.
13
- */
14
- export declare const isIdentifier: (node: {
15
- type: string;
16
- }) => node is Identifier;
17
- /**
18
- * Checks whether the file contains an import from the given module.
19
- */
20
- export declare const fileImportsFrom: (root: Collection, j: JSCodeshift, moduleName: string) => boolean;
21
- /**
22
- * Calls `callback` for each Identifier parameter found in function-like
23
- * nodes (functions, methods, arrows) and TSParameterProperty nodes.
24
- */
25
- export declare const forEachIdentifierParam: (root: Collection, j: JSCodeshift, callback: (id: Identifier) => void) => void;
26
- /**
27
- * Traverses ClassProperty decorators and calls `callback` for each
28
- * ObjectExpression argument found in decorator call expressions.
29
- *
30
- * This avoids duplicating the decorator-traversal boilerplate across
31
- * multiple transforms.
32
- */
33
- export declare const forEachDecoratorObjectArg: (root: Collection, j: JSCodeshift, callback: (objectExpression: ObjectExpression, path: ASTPath) => void) => void;
34
- /**
35
- * Removes properties matching the given key names from an ObjectExpression.
36
- * Returns true if any properties were removed.
37
- */
38
- export declare const removeObjectProperties: (obj: ObjectExpression, propertyNames: Set<string>) => boolean;
39
- /**
40
- * Finds imports from a module, removes the specified named import specifiers,
41
- * and removes the entire import declaration if no specifiers remain.
42
- * Returns true if any specifiers were removed.
43
- */
44
- export declare const removeImportSpecifiers: (root: Collection, j: JSCodeshift, moduleName: string, specifierNames: Set<string>) => boolean;
45
- /**
46
- * Finds CallExpression nodes with a MemberExpression callee where the
47
- * property matches `oldName`, and renames the property to `newName`.
48
- * Returns true if any were renamed.
49
- */
50
- export declare const renameMemberMethod: (root: Collection, j: JSCodeshift, oldName: string, newName: string) => boolean;
@@ -1,7 +0,0 @@
1
- import type { TransformModule } from "./transformer";
2
- export interface VersionInfo {
3
- description: string;
4
- migrationGuide: string;
5
- transforms: TransformModule[];
6
- }
7
- export declare const versions: Record<string, VersionInfo>;
@@ -1 +0,0 @@
1
- export declare const resolveTransforms: (version: string, transform?: string) => string[];
@@ -1,4 +0,0 @@
1
- export declare const getTransformDir: (version: string) => string;
2
- export declare const getTransformNames: (version: string) => string[];
3
- export declare const getTransformPath: (version: string, name: string) => string | null;
4
- export declare const getCompositeTransformPath: (version: string) => string;