af-db-ts 2.0.19 → 2.0.73

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 (307) hide show
  1. package/dist/cjs/__tests__/db/ms/@gen-types/test-table_schema.js +3 -0
  2. package/dist/cjs/__tests__/db/ms/@gen-types/test-table_schema.js.map +1 -0
  3. package/dist/cjs/__tests__/db/ms/ddl/column-schema-for-test-table-schema-ms.json +216 -0
  4. package/dist/cjs/__tests__/db/ms/ms-get-sql.spec.js +190 -0
  5. package/dist/cjs/__tests__/db/ms/ms-get-sql.spec.js.map +1 -0
  6. package/dist/cjs/__tests__/db/ms/ms-prepare-sql-value.spec.js +584 -0
  7. package/dist/cjs/__tests__/db/ms/ms-prepare-sql-value.spec.js.map +1 -0
  8. package/dist/cjs/__tests__/db/ms/ms-table-schema.spec.js +107 -0
  9. package/dist/cjs/__tests__/db/ms/ms-table-schema.spec.js.map +1 -0
  10. package/dist/cjs/__tests__/db/pg/@gen-types/test-hard_case.js +3 -0
  11. package/dist/cjs/__tests__/db/pg/@gen-types/test-hard_case.js.map +1 -0
  12. package/dist/cjs/__tests__/db/pg/@gen-types/test-only_one_serial.js +3 -0
  13. package/dist/cjs/__tests__/db/pg/@gen-types/test-only_one_serial.js.map +1 -0
  14. package/dist/cjs/__tests__/db/pg/@gen-types/test-only_one_uniq.js +3 -0
  15. package/dist/cjs/__tests__/db/pg/@gen-types/test-only_one_uniq.js.map +1 -0
  16. package/dist/cjs/__tests__/db/pg/@gen-types/test-serial_and_uniq.js +3 -0
  17. package/dist/cjs/__tests__/db/pg/@gen-types/test-serial_and_uniq.js.map +1 -0
  18. package/dist/cjs/__tests__/db/pg/@gen-types/test-table_schema.js +3 -0
  19. package/dist/cjs/__tests__/db/pg/@gen-types/test-table_schema.js.map +1 -0
  20. package/dist/cjs/__tests__/db/pg/ddl/column-schema-for-test-table-schema-pg.json +170 -0
  21. package/dist/cjs/__tests__/db/pg/gen-table-interfaces-4-test-pg.js +36 -0
  22. package/dist/cjs/__tests__/db/pg/gen-table-interfaces-4-test-pg.js.map +1 -0
  23. package/dist/cjs/__tests__/db/pg/pg-get-sql.spec.js +261 -0
  24. package/dist/cjs/__tests__/db/pg/pg-get-sql.spec.js.map +1 -0
  25. package/dist/cjs/__tests__/db/pg/pg-insert.spec.js +294 -0
  26. package/dist/cjs/__tests__/db/pg/pg-insert.spec.js.map +1 -0
  27. package/dist/cjs/__tests__/db/pg/pg-prepare-sql-value.spec.js +575 -0
  28. package/dist/cjs/__tests__/db/pg/pg-prepare-sql-value.spec.js.map +1 -0
  29. package/dist/cjs/__tests__/db/pg/pg-table-schema.spec.js +117 -0
  30. package/dist/cjs/__tests__/db/pg/pg-table-schema.spec.js.map +1 -0
  31. package/dist/cjs/src/@types/i-data-types-ms.js +3 -0
  32. package/dist/cjs/src/@types/i-data-types-ms.js.map +1 -0
  33. package/dist/cjs/src/@types/i-data-types-pg.js +7 -0
  34. package/dist/cjs/src/@types/i-data-types-pg.js.map +1 -0
  35. package/dist/cjs/src/@types/i-pg.js +0 -21
  36. package/dist/cjs/src/@types/i-pg.js.map +1 -1
  37. package/dist/cjs/src/common.js +6 -5
  38. package/dist/cjs/src/common.js.map +1 -1
  39. package/dist/cjs/src/index.js +75 -54
  40. package/dist/cjs/src/index.js.map +1 -1
  41. package/dist/cjs/src/ms/gen-table-interfaces-ms.js +64 -0
  42. package/dist/cjs/src/ms/gen-table-interfaces-ms.js.map +1 -0
  43. package/dist/cjs/src/ms/get-sql/insert.js +37 -0
  44. package/dist/cjs/src/ms/get-sql/insert.js.map +1 -0
  45. package/dist/cjs/src/ms/get-sql/merge.js +93 -0
  46. package/dist/cjs/src/ms/get-sql/merge.js.map +1 -0
  47. package/dist/cjs/src/ms/get-sql/update.js +32 -0
  48. package/dist/cjs/src/ms/get-sql/update.js.map +1 -0
  49. package/dist/cjs/src/{mssql → ms}/pool-ms.js +6 -23
  50. package/dist/cjs/src/ms/pool-ms.js.map +1 -0
  51. package/dist/cjs/src/ms/prepare-value.js +178 -0
  52. package/dist/cjs/src/ms/prepare-value.js.map +1 -0
  53. package/dist/cjs/src/{mssql → ms}/query-ms.js +1 -1
  54. package/dist/cjs/src/ms/query-ms.js.map +1 -0
  55. package/dist/cjs/src/ms/table-schema-ms.js +241 -0
  56. package/dist/cjs/src/ms/table-schema-ms.js.map +1 -0
  57. package/dist/cjs/src/ms/utils-ms.js +92 -0
  58. package/dist/cjs/src/ms/utils-ms.js.map +1 -0
  59. package/dist/cjs/src/ms/wrap-transaction-ms.js +32 -0
  60. package/dist/cjs/src/ms/wrap-transaction-ms.js.map +1 -0
  61. package/dist/cjs/src/pg/gen-table-interfaces-pg.js +83 -0
  62. package/dist/cjs/src/pg/gen-table-interfaces-pg.js.map +1 -0
  63. package/dist/cjs/src/pg/get-sql/insert.js +38 -0
  64. package/dist/cjs/src/pg/get-sql/insert.js.map +1 -0
  65. package/dist/cjs/src/pg/get-sql/merge.js +60 -0
  66. package/dist/cjs/src/pg/get-sql/merge.js.map +1 -0
  67. package/dist/cjs/src/pg/get-sql/update.js +32 -0
  68. package/dist/cjs/src/pg/get-sql/update.js.map +1 -0
  69. package/dist/cjs/src/pg/{insert.js → insert-pg.js} +10 -10
  70. package/dist/cjs/src/pg/insert-pg.js.map +1 -0
  71. package/dist/cjs/src/pg/is-table-or-view-exists.js +1 -2
  72. package/dist/cjs/src/pg/is-table-or-view-exists.js.map +1 -1
  73. package/dist/cjs/src/pg/{pg-pool.js → pool-pg.js} +6 -7
  74. package/dist/cjs/src/pg/pool-pg.js.map +1 -0
  75. package/dist/cjs/src/pg/prepare-value.js +116 -69
  76. package/dist/cjs/src/pg/prepare-value.js.map +1 -1
  77. package/dist/cjs/src/pg/query-pg.js +2 -2
  78. package/dist/cjs/src/pg/query-pg.js.map +1 -1
  79. package/dist/cjs/src/pg/table-schema-pg.js +183 -0
  80. package/dist/cjs/src/pg/table-schema-pg.js.map +1 -0
  81. package/dist/cjs/src/pg/utils-pg.js +99 -0
  82. package/dist/cjs/src/pg/utils-pg.js.map +1 -0
  83. package/dist/cjs/src/utils/utils-array.js +152 -0
  84. package/dist/cjs/src/utils/utils-array.js.map +1 -0
  85. package/dist/cjs/src/utils/utils-dt.js +121 -0
  86. package/dist/cjs/src/utils/utils-dt.js.map +1 -0
  87. package/dist/cjs/src/utils/utils-num.js +127 -0
  88. package/dist/cjs/src/utils/utils-num.js.map +1 -0
  89. package/dist/cjs/src/utils/utils.js +66 -0
  90. package/dist/cjs/src/utils/utils.js.map +1 -0
  91. package/dist/esm/src/@types/i-data-types-ms.js +2 -0
  92. package/dist/esm/src/@types/i-data-types-ms.js.map +1 -0
  93. package/dist/esm/src/@types/i-data-types-pg.js +6 -0
  94. package/dist/esm/src/@types/i-data-types-pg.js.map +1 -0
  95. package/dist/esm/src/@types/i-pg.js +1 -20
  96. package/dist/esm/src/@types/i-pg.js.map +1 -1
  97. package/dist/esm/src/common.js +3 -2
  98. package/dist/esm/src/common.js.map +1 -1
  99. package/dist/esm/src/index.js +24 -15
  100. package/dist/esm/src/index.js.map +1 -1
  101. package/dist/esm/src/ms/gen-table-interfaces-ms.js +36 -0
  102. package/dist/esm/src/ms/gen-table-interfaces-ms.js.map +1 -0
  103. package/dist/esm/src/ms/get-sql/insert.js +33 -0
  104. package/dist/esm/src/ms/get-sql/insert.js.map +1 -0
  105. package/dist/esm/src/ms/get-sql/merge.js +89 -0
  106. package/dist/esm/src/ms/get-sql/merge.js.map +1 -0
  107. package/dist/esm/src/ms/get-sql/update.js +28 -0
  108. package/dist/esm/src/ms/get-sql/update.js.map +1 -0
  109. package/dist/esm/src/{mssql → ms}/pool-ms.js +5 -20
  110. package/dist/esm/src/ms/pool-ms.js.map +1 -0
  111. package/dist/esm/src/ms/prepare-value.js +149 -0
  112. package/dist/esm/src/ms/prepare-value.js.map +1 -0
  113. package/dist/esm/src/{mssql → ms}/query-ms.js +1 -1
  114. package/dist/esm/src/ms/query-ms.js.map +1 -0
  115. package/dist/esm/src/ms/table-schema-ms.js +213 -0
  116. package/dist/esm/src/ms/table-schema-ms.js.map +1 -0
  117. package/dist/esm/src/ms/utils-ms.js +65 -0
  118. package/dist/esm/src/ms/utils-ms.js.map +1 -0
  119. package/dist/esm/src/ms/wrap-transaction-ms.js +28 -0
  120. package/dist/esm/src/ms/wrap-transaction-ms.js.map +1 -0
  121. package/dist/esm/src/pg/gen-table-interfaces-pg.js +55 -0
  122. package/dist/esm/src/pg/gen-table-interfaces-pg.js.map +1 -0
  123. package/dist/esm/src/pg/get-sql/insert.js +34 -0
  124. package/dist/esm/src/pg/get-sql/insert.js.map +1 -0
  125. package/dist/esm/src/pg/get-sql/merge.js +56 -0
  126. package/dist/esm/src/pg/get-sql/merge.js.map +1 -0
  127. package/dist/esm/src/pg/get-sql/update.js +28 -0
  128. package/dist/esm/src/pg/get-sql/update.js.map +1 -0
  129. package/dist/esm/src/pg/{insert.js → insert-pg.js} +10 -10
  130. package/dist/esm/src/pg/insert-pg.js.map +1 -0
  131. package/dist/esm/src/pg/is-table-or-view-exists.js +1 -2
  132. package/dist/esm/src/pg/is-table-or-view-exists.js.map +1 -1
  133. package/dist/esm/src/pg/{pg-pool.js → pool-pg.js} +6 -7
  134. package/dist/esm/src/pg/pool-pg.js.map +1 -0
  135. package/dist/esm/src/pg/prepare-value.js +113 -67
  136. package/dist/esm/src/pg/prepare-value.js.map +1 -1
  137. package/dist/esm/src/pg/query-pg.js +1 -1
  138. package/dist/esm/src/pg/query-pg.js.map +1 -1
  139. package/dist/esm/src/pg/table-schema-pg.js +178 -0
  140. package/dist/esm/src/pg/table-schema-pg.js.map +1 -0
  141. package/dist/esm/src/pg/utils-pg.js +93 -0
  142. package/dist/esm/src/pg/utils-pg.js.map +1 -0
  143. package/dist/esm/src/utils/utils-array.js +125 -0
  144. package/dist/esm/src/utils/utils-array.js.map +1 -0
  145. package/dist/esm/src/utils/utils-dt.js +114 -0
  146. package/dist/esm/src/utils/utils-dt.js.map +1 -0
  147. package/dist/esm/src/utils/utils-num.js +117 -0
  148. package/dist/esm/src/utils/utils-num.js.map +1 -0
  149. package/dist/esm/src/utils/utils.js +58 -0
  150. package/dist/esm/src/utils/utils.js.map +1 -0
  151. package/dist/types/src/@types/i-common.d.ts +35 -3
  152. package/dist/types/src/@types/i-common.d.ts.map +1 -1
  153. package/dist/types/src/@types/i-data-types-ms.d.ts +3 -0
  154. package/dist/types/src/@types/i-data-types-ms.d.ts.map +1 -0
  155. package/dist/types/src/@types/i-data-types-pg.d.ts +35 -0
  156. package/dist/types/src/@types/i-data-types-pg.d.ts.map +1 -0
  157. package/dist/types/src/@types/i-ms.d.ts +26 -126
  158. package/dist/types/src/@types/i-ms.d.ts.map +1 -1
  159. package/dist/types/src/@types/i-pg.d.ts +11 -35
  160. package/dist/types/src/@types/i-pg.d.ts.map +1 -1
  161. package/dist/types/src/common.d.ts +1 -0
  162. package/dist/types/src/common.d.ts.map +1 -1
  163. package/dist/types/src/index.d.ts +28 -16
  164. package/dist/types/src/index.d.ts.map +1 -1
  165. package/dist/types/src/ms/gen-table-interfaces-ms.d.ts +3 -0
  166. package/dist/types/src/ms/gen-table-interfaces-ms.d.ts.map +1 -0
  167. package/dist/types/src/ms/get-sql/insert.d.ts +9 -0
  168. package/dist/types/src/ms/get-sql/insert.d.ts.map +1 -0
  169. package/dist/types/src/ms/get-sql/merge.d.ts +14 -0
  170. package/dist/types/src/ms/get-sql/merge.d.ts.map +1 -0
  171. package/dist/types/src/ms/get-sql/update.d.ts +9 -0
  172. package/dist/types/src/ms/get-sql/update.d.ts.map +1 -0
  173. package/dist/types/src/{mssql → ms}/pool-ms.d.ts +0 -8
  174. package/dist/types/src/ms/pool-ms.d.ts.map +1 -0
  175. package/dist/types/src/ms/prepare-value.d.ts +12 -0
  176. package/dist/types/src/ms/prepare-value.d.ts.map +1 -0
  177. package/dist/types/src/ms/query-ms.d.ts +3 -0
  178. package/dist/types/src/ms/query-ms.d.ts.map +1 -0
  179. package/dist/types/src/ms/table-schema-ms.d.ts +9 -0
  180. package/dist/types/src/ms/table-schema-ms.d.ts.map +1 -0
  181. package/dist/types/src/ms/utils-ms.d.ts +3 -0
  182. package/dist/types/src/ms/utils-ms.d.ts.map +1 -0
  183. package/dist/types/src/ms/wrap-transaction-ms.d.ts +5 -0
  184. package/dist/types/src/ms/wrap-transaction-ms.d.ts.map +1 -0
  185. package/dist/types/src/pg/gen-table-interfaces-pg.d.ts +3 -0
  186. package/dist/types/src/pg/gen-table-interfaces-pg.d.ts.map +1 -0
  187. package/dist/types/src/pg/get-sql/insert.d.ts +9 -0
  188. package/dist/types/src/pg/get-sql/insert.d.ts.map +1 -0
  189. package/dist/types/src/pg/get-sql/merge.d.ts +10 -0
  190. package/dist/types/src/pg/get-sql/merge.d.ts.map +1 -0
  191. package/dist/types/src/pg/get-sql/update.d.ts +9 -0
  192. package/dist/types/src/pg/get-sql/update.d.ts.map +1 -0
  193. package/dist/types/src/pg/{insert.d.ts → insert-pg.d.ts} +3 -3
  194. package/dist/types/src/pg/insert-pg.d.ts.map +1 -0
  195. package/dist/types/src/pg/{pg-pool.d.ts → pool-pg.d.ts} +1 -1
  196. package/dist/types/src/pg/{pg-pool.d.ts.map → pool-pg.d.ts.map} +1 -1
  197. package/dist/types/src/pg/prepare-value.d.ts +3 -1
  198. package/dist/types/src/pg/prepare-value.d.ts.map +1 -1
  199. package/dist/types/src/pg/query-pg.d.ts +3 -2
  200. package/dist/types/src/pg/query-pg.d.ts.map +1 -1
  201. package/dist/types/src/pg/table-schema-pg.d.ts +12 -0
  202. package/dist/types/src/pg/table-schema-pg.d.ts.map +1 -0
  203. package/dist/types/src/pg/utils-pg.d.ts +5 -0
  204. package/dist/types/src/pg/utils-pg.d.ts.map +1 -0
  205. package/dist/types/src/utils/utils-array.d.ts +5 -0
  206. package/dist/types/src/utils/utils-array.d.ts.map +1 -0
  207. package/dist/types/src/utils/utils-dt.d.ts +15 -0
  208. package/dist/types/src/utils/utils-dt.d.ts.map +1 -0
  209. package/dist/types/src/utils/utils-num.d.ts +9 -0
  210. package/dist/types/src/utils/utils-num.d.ts.map +1 -0
  211. package/dist/types/src/utils/utils.d.ts +18 -0
  212. package/dist/types/src/utils/utils.d.ts.map +1 -0
  213. package/package.json +13 -13
  214. package/src/@types/i-common.ts +42 -4
  215. package/src/@types/i-data-types-ms.ts +81 -0
  216. package/src/@types/i-data-types-pg.ts +120 -0
  217. package/src/@types/i-ms.ts +29 -153
  218. package/src/@types/i-pg.ts +11 -36
  219. package/src/common.ts +4 -2
  220. package/src/index.ts +101 -59
  221. package/src/ms/gen-table-interfaces-ms.ts +52 -0
  222. package/src/ms/get-sql/insert.ts +45 -0
  223. package/src/ms/get-sql/merge.ts +118 -0
  224. package/src/ms/get-sql/update.ts +46 -0
  225. package/src/{mssql → ms}/pool-ms.ts +0 -16
  226. package/src/ms/prepare-value.ts +175 -0
  227. package/src/{mssql → ms}/query-ms.ts +2 -2
  228. package/src/ms/table-schema-ms.ts +231 -0
  229. package/src/ms/utils-ms.ts +72 -0
  230. package/src/ms/wrap-transaction-ms.ts +27 -0
  231. package/src/pg/gen-table-interfaces-pg.ts +74 -0
  232. package/src/pg/get-sql/insert.ts +46 -0
  233. package/src/pg/get-sql/merge.ts +70 -0
  234. package/src/pg/get-sql/update.ts +46 -0
  235. package/src/pg/{insert.ts → insert-pg.ts} +9 -9
  236. package/src/pg/prepare-value.ts +129 -67
  237. package/src/pg/query-pg.ts +4 -3
  238. package/src/pg/table-schema-pg.ts +196 -0
  239. package/src/pg/utils-pg.ts +97 -0
  240. package/src/utils/utils-array.ts +133 -0
  241. package/src/utils/utils-dt.ts +123 -0
  242. package/src/utils/utils-num.ts +131 -0
  243. package/src/utils/utils.ts +64 -0
  244. package/dist/cjs/__tests__/02_getValueForSqlMs.spec.js +0 -50
  245. package/dist/cjs/__tests__/02_getValueForSqlMs.spec.js.map +0 -1
  246. package/dist/cjs/src/mssql/get-value-for-sql.js +0 -277
  247. package/dist/cjs/src/mssql/get-value-for-sql.js.map +0 -1
  248. package/dist/cjs/src/mssql/pool-ms.js.map +0 -1
  249. package/dist/cjs/src/mssql/query-ms.js.map +0 -1
  250. package/dist/cjs/src/mssql/sql.js +0 -427
  251. package/dist/cjs/src/mssql/sql.js.map +0 -1
  252. package/dist/cjs/src/mssql/utils.js +0 -36
  253. package/dist/cjs/src/mssql/utils.js.map +0 -1
  254. package/dist/cjs/src/pg/get-merge-sql.js +0 -52
  255. package/dist/cjs/src/pg/get-merge-sql.js.map +0 -1
  256. package/dist/cjs/src/pg/get-update-sql.js +0 -30
  257. package/dist/cjs/src/pg/get-update-sql.js.map +0 -1
  258. package/dist/cjs/src/pg/insert.js.map +0 -1
  259. package/dist/cjs/src/pg/pg-pool.js.map +0 -1
  260. package/dist/cjs/src/pg/table-schema.js +0 -179
  261. package/dist/cjs/src/pg/table-schema.js.map +0 -1
  262. package/dist/cjs/src/utils.js +0 -17
  263. package/dist/cjs/src/utils.js.map +0 -1
  264. package/dist/esm/src/mssql/get-value-for-sql.js +0 -272
  265. package/dist/esm/src/mssql/get-value-for-sql.js.map +0 -1
  266. package/dist/esm/src/mssql/pool-ms.js.map +0 -1
  267. package/dist/esm/src/mssql/query-ms.js.map +0 -1
  268. package/dist/esm/src/mssql/sql.js +0 -390
  269. package/dist/esm/src/mssql/sql.js.map +0 -1
  270. package/dist/esm/src/mssql/utils.js +0 -31
  271. package/dist/esm/src/mssql/utils.js.map +0 -1
  272. package/dist/esm/src/pg/get-merge-sql.js +0 -48
  273. package/dist/esm/src/pg/get-merge-sql.js.map +0 -1
  274. package/dist/esm/src/pg/get-update-sql.js +0 -26
  275. package/dist/esm/src/pg/get-update-sql.js.map +0 -1
  276. package/dist/esm/src/pg/insert.js.map +0 -1
  277. package/dist/esm/src/pg/pg-pool.js.map +0 -1
  278. package/dist/esm/src/pg/table-schema.js +0 -174
  279. package/dist/esm/src/pg/table-schema.js.map +0 -1
  280. package/dist/esm/src/utils.js +0 -14
  281. package/dist/esm/src/utils.js.map +0 -1
  282. package/dist/types/src/mssql/get-value-for-sql.d.ts +0 -11
  283. package/dist/types/src/mssql/get-value-for-sql.d.ts.map +0 -1
  284. package/dist/types/src/mssql/pool-ms.d.ts.map +0 -1
  285. package/dist/types/src/mssql/query-ms.d.ts +0 -3
  286. package/dist/types/src/mssql/query-ms.d.ts.map +0 -1
  287. package/dist/types/src/mssql/sql.d.ts +0 -57
  288. package/dist/types/src/mssql/sql.d.ts.map +0 -1
  289. package/dist/types/src/mssql/utils.d.ts +0 -10
  290. package/dist/types/src/mssql/utils.d.ts.map +0 -1
  291. package/dist/types/src/pg/get-merge-sql.d.ts +0 -9
  292. package/dist/types/src/pg/get-merge-sql.d.ts.map +0 -1
  293. package/dist/types/src/pg/get-update-sql.d.ts +0 -3
  294. package/dist/types/src/pg/get-update-sql.d.ts.map +0 -1
  295. package/dist/types/src/pg/insert.d.ts.map +0 -1
  296. package/dist/types/src/pg/table-schema.d.ts +0 -12
  297. package/dist/types/src/pg/table-schema.d.ts.map +0 -1
  298. package/dist/types/src/utils.d.ts +0 -9
  299. package/dist/types/src/utils.d.ts.map +0 -1
  300. package/src/mssql/get-value-for-sql.ts +0 -325
  301. package/src/mssql/sql.ts +0 -430
  302. package/src/mssql/utils.ts +0 -31
  303. package/src/pg/get-merge-sql.ts +0 -62
  304. package/src/pg/get-update-sql.ts +0 -32
  305. package/src/pg/table-schema.ts +0 -189
  306. package/src/utils.ts +0 -14
  307. /package/src/pg/{pg-pool.ts → pool-pg.ts} +0 -0
@@ -0,0 +1,12 @@
1
+ import { ITableSchemaPg, TColumnsSchemaPg } from '../@types/i-pg';
2
+ import { TDBRecord } from '../@types/i-common';
3
+ export declare const getTableSchemaPg: (connectionId: string, commonSchemaAndTable: string) => Promise<ITableSchemaPg>;
4
+ export declare const getFieldsAndValuesPg: <U extends TDBRecord = TDBRecord>(record: U, columnsSchema: TColumnsSchemaPg) => {
5
+ fields: string[];
6
+ fieldsList: string;
7
+ values: any[];
8
+ positionsList: string;
9
+ setFields: string;
10
+ upsertFields: string;
11
+ };
12
+ //# sourceMappingURL=table-schema-pg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-schema-pg.d.ts","sourceRoot":"","sources":["../../../../src/pg/table-schema-pg.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,cAAc,EAAE,gBAAgB,EAAwB,MAAM,gBAAgB,CAAC;AAErG,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AA8H/C,eAAO,MAAM,gBAAgB,iBAAwB,MAAM,wBAAwB,MAAM,KAAG,QAAQ,cAAc,CA+BjH,CAAC;AAEF,eAAO,MAAM,oBAAoB,8DAAgE,gBAAgB;YAErG,MAAM,EAAE;gBACJ,MAAM;YACV,GAAG,EAAE;mBACE,MAAM;eACV,MAAM;kBACH,MAAM;CAuBvB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { TDataTypePg, TArrayTypesPg } from '../@types/i-data-types-pg';
2
+ export declare const getJsTypeByTypePg: (dataType?: TDataTypePg, arrayType?: TDataTypePg) => string;
3
+ export declare const getTypeByUdtNamePg: (udtName: TArrayTypesPg) => TDataTypePg;
4
+ export declare const getNormalizedTypePg: (pgDataType: TDataTypePg) => TDataTypePg;
5
+ //# sourceMappingURL=utils-pg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-pg.d.ts","sourceRoot":"","sources":["../../../../src/pg/utils-pg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,iBAAiB,cAAe,WAAW,cAAc,WAAW,KAAG,MAgCnF,CAAC;AAoCF,eAAO,MAAM,kBAAkB,YAAa,aAAa,KAAG,WAG3D,CAAC;AAuBF,eAAO,MAAM,mBAAmB,eAAgB,WAAW,KAAG,WAA6D,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { NULL } from '../common';
2
+ import { TDataTypeMs } from '../@types/i-data-types-ms';
3
+ import { TDataTypePg } from '../@types/i-data-types-pg';
4
+ export declare const arrayToJsonList: (value: any, arrayType?: TDataTypeMs | TDataTypePg) => string | typeof NULL;
5
+ //# sourceMappingURL=utils-array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-array.d.ts","sourceRoot":"","sources":["../../../../src/utils/utils-array.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAmBxD,eAAO,MAAM,eAAe,UAAW,GAAG,cAAc,WAAW,GAAG,WAAW,KAAG,MAAM,GAAG,WA4G5F,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { DateTime } from 'luxon';
2
+ import { IFieldDefMs } from '../@types/i-ms';
3
+ import { IFieldDefPg } from '../@types/i-pg';
4
+ import { IFieldDef } from '../@types/i-common';
5
+ import { NULL } from '../common';
6
+ export declare const getTypeOfDateInput: (v: any) => 'string' | 'number' | 'date' | 'luxon' | 'moment' | 'any' | 'null';
7
+ export declare const getLuxonDT: (value: any, fieldDef: IFieldDefMs | IFieldDefPg) => DateTime | null;
8
+ export declare const dateTimeValue: (value: any, fieldDef: IFieldDef, fn: Function) => string | typeof NULL;
9
+ export declare const getDatetimeWithPrecisionAndOffset: (arg: {
10
+ value: any;
11
+ fieldDef: IFieldDef;
12
+ defaultDtPrecision?: number;
13
+ stripTrailingZeros?: boolean;
14
+ }) => string | typeof NULL;
15
+ //# sourceMappingURL=utils-dt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-dt.d.ts","sourceRoot":"","sources":["../../../../src/utils/utils-dt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,eAAO,MAAM,kBAAkB,MAAO,GAAG,KAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,MAoBvG,CAAC;AAEF,eAAO,MAAM,UAAU,UAAW,GAAG,YAAY,WAAW,GAAG,WAAW,KAAG,QAAQ,GAAG,IA2CvF,CAAC;AAEF,eAAO,MAAM,aAAa,UAAW,GAAG,YAAY,SAAS,MAAM,QAAQ,KAAG,MAAM,GAAG,WAOtF,CAAC;AAEF,eAAO,MAAM,iCAAiC,QAAS;IACrD,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,SAAS,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,KAAG,MAAM,GAAG,WAkCZ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { NULL } from '../common';
2
+ export declare const parseFloatNumber: (value: any) => number | null;
3
+ export declare const prepareFloatNumber: (value: any) => string | typeof NULL;
4
+ export declare const parseIntNumber: (value: any, min: number, max: number) => number | typeof NULL;
5
+ export declare const parseIntNumberS: (value: any, type: 'tinyint' | 'smallint' | '_int2' | 'int' | 'integer' | '_int4' | 'bigint' | '_int8') => number | typeof NULL;
6
+ export declare const prepareIntNumber: (value: any, min: number, max: number) => string | typeof NULL;
7
+ export declare const prepareBigIntNumber: (value: any) => string | typeof NULL;
8
+ export declare const prepareNumeric: (value: any, precision?: number, scale?: number) => string | typeof NULL;
9
+ //# sourceMappingURL=utils-num.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-num.d.ts","sourceRoot":"","sources":["../../../../src/utils/utils-num.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,eAAO,MAAM,gBAAgB,UAAW,GAAG,KAAG,MAAM,GAAG,IAuBtD,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAAW,GAAG,KAAG,MAAM,GAAG,WAA2C,CAAC;AAErG,eAAO,MAAM,cAAc,UAAW,GAAG,OAAO,MAAM,OAAO,MAAM,KAAG,MAAM,GAAG,WAgB9E,CAAC;AAEF,eAAO,MAAM,eAAe,UACnB,GAAG,QACJ,SAAS,GACb,UAAU,GAAG,OAAO,GACpB,KAAK,GAAG,SAAS,GAAG,OAAO,GAC3B,QAAQ,GAAG,OAAO,KACnB,MAAM,GAAG,WAiBX,CAAC;AAEF,eAAO,MAAM,gBAAgB,UACpB,GAAG,OACL,MAAM,OACN,MAAM,KACV,MAAM,GAAG,WAAmD,CAAC;AAEhE,eAAO,MAAM,mBAAmB,UAAW,GAAG,KAAG,MAAM,GAAG,WAsBzD,CAAC;AAEF,eAAO,MAAM,cAAc,UAAW,GAAG,cAAc,MAAM,UAAU,MAAM,KAAG,MAAM,GAAG,WA2BxF,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { NULL } from '../common';
2
+ export declare const schemaTable: {
3
+ to: {
4
+ common: (s: string) => string;
5
+ spec: (s: string, dbType: 'mssql' | 'ms' | 'pg') => string;
6
+ pg: (s: string) => string;
7
+ ms: (s: string) => string;
8
+ };
9
+ };
10
+ export declare const removePairBrackets: (s: string) => string;
11
+ /**
12
+ * Оборачивает строку в одинарные кавычки, если второй аргумент не true
13
+ */
14
+ export declare const q: (val: string, noQuotes?: boolean) => string;
15
+ export declare const prepareJSON: (value: any) => string | typeof NULL;
16
+ export declare const binToHexString: (value: any) => string | null;
17
+ export declare const prepareUUID: (v: any, toLower?: boolean, noQuotes?: boolean) => string | typeof NULL;
18
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/utils/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAQjC,eAAO,MAAM,WAAW;;oBANQ,MAAM,KAAG,MAAM;kBACjB,MAAM,UAAU,OAAO,GAAG,IAAI,GAAG,IAAI,KAAG,MAAM;gBAShE,MAAM,KAAG,MAAM;gBACf,MAAM,KAAG,MAAM;;CAE1B,CAAC;AAEF,eAAO,MAAM,kBAAkB,MAAO,MAAM,KAAG,MAgB9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,CAAC,QAAS,MAAM,aAAa,OAAO,KAAG,MAAuC,CAAC;AAE5F,eAAO,MAAM,WAAW,UAAW,GAAG,KAAG,MAAM,GAAG,WAUjD,CAAC;AAEF,eAAO,MAAM,cAAc,UAAW,GAAG,KAAG,MAAM,GAAG,IAAmE,CAAC;AAEzH,eAAO,MAAM,WAAW,MAAO,GAAG,YAAW,OAAO,aAAoB,OAAO,KAAW,MAAM,GAAG,WAOlG,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "af-db-ts",
3
- "version": "2.0.19",
3
+ "version": "2.0.73",
4
4
  "description": "A highly specialized function library",
5
5
  "main": "./dist/cjs/src/index.js",
6
6
  "module": "./dist/esm/src/index.js",
@@ -18,26 +18,26 @@
18
18
  "cb": "npm run clean && npm run build"
19
19
  },
20
20
  "dependencies": {
21
- "@types/pg": "^8.10.7",
21
+ "@types/pg": "^8.10.9",
22
22
  "af-color": "^0.0.8",
23
23
  "af-echo-ts": "^1.0.12",
24
- "af-tools-ts": "^1.0.63",
24
+ "af-tools-ts": "^1.0.74",
25
25
  "config": "^3.3.9",
26
- "luxon": "^3.4.3",
26
+ "luxon": "^3.4.4",
27
27
  "memory-cache": "^0.2.0",
28
28
  "mssql": "^10.0.1",
29
29
  "pg": "^8.11.3"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@jest/test-sequencer": "^29.7.0",
33
- "@types/config": "^3.3.2",
34
- "@types/jest": "^29.5.6",
35
- "@types/lodash": "^4.14.200",
36
- "@types/luxon": "^3.3.3",
37
- "@types/memory-cache": "^0.2.4",
38
- "@types/mssql": "^9.1.2",
39
- "@types/node": "^20.8.9",
40
- "@types/supertest": "^2.0.15",
33
+ "@types/config": "^3.3.3",
34
+ "@types/jest": "^29.5.11",
35
+ "@types/lodash": "^4.14.202",
36
+ "@types/luxon": "^3.3.7",
37
+ "@types/memory-cache": "^0.2.5",
38
+ "@types/mssql": "^9.1.4",
39
+ "@types/node": "^20.10.4",
40
+ "@types/supertest": "^2.0.16",
41
41
  "chai": "^4.3.10",
42
42
  "eslint-config-af-22": "^1.0.13",
43
43
  "jest": "^29.7.0",
@@ -45,7 +45,7 @@
45
45
  "supertest": "^6.3.3",
46
46
  "ts-jest": "^29.1.1",
47
47
  "ts-node": "^10.9.1",
48
- "typescript": "^5.2.2"
48
+ "typescript": "^5.3.3"
49
49
  },
50
50
  "np": {
51
51
  "yarn": false,
@@ -1,5 +1,3 @@
1
- import { DateTimeOptions } from 'luxon';
2
-
3
1
  export type IDialect = 'mssql' | 'pg';
4
2
 
5
3
  /**
@@ -24,7 +22,7 @@ export interface TDBRecord {
24
22
  *
25
23
  * _isPreparedForSQL - Признак того, что значения полей подготовлены для использования в строке SQL
26
24
  */
27
- export type TRecordSet = TDBRecord[] & { _isPreparedForSQL?: boolean }
25
+ export type TRecordSet<U extends TDBRecord = TDBRecord> = U[] & { _isPreparedForSQL?: boolean }
28
26
 
29
27
  /**
30
28
  * Пакет записей БД.
@@ -34,6 +32,46 @@ export interface TRecordSetAssoc {
34
32
  [recordKey: TRecordKey]: TDBRecord
35
33
  }
36
34
 
37
- export interface IDateTimeOptionsEx extends DateTimeOptions {
35
+ export interface IDateTimeOptionsEx {
38
36
  correctionMillis?: number,
37
+ /**
38
+ * Использует эту зону, если в самой входной строке не указано смещение.
39
+ * Также преобразует время в эту зону.
40
+ * @default local
41
+ */
42
+ fromZone?: string;
43
+ /**
44
+ * Результирующая строка должна быть с указанием в этой таймзоне
45
+ * @default undefined
46
+ */
47
+ setZone?: string;
48
+ /**
49
+ * Результирующая строка будет содержать смещение, например «Z» или «-04:00».
50
+ * @default true
51
+ */
52
+ includeOffset?: boolean;
53
+ }
54
+
55
+ export interface IFieldDef {
56
+ name?: string,
57
+ isNullable?: boolean,
58
+ length?: number,
59
+ dataType?: any, // type
60
+ arrayType?: any,
61
+
62
+ precision?: number,
63
+ scale?: number,
64
+ radix?: number,
65
+
66
+ dtPrecision?: number,
67
+
68
+ columnDefault?: string | number | boolean,
69
+ hasDefault?: boolean,
70
+
71
+ readOnly?: boolean,
72
+
73
+ /* Дополнительные свойства */
74
+ inputDateFormat?: string,
75
+ dateTimeOptions?: IDateTimeOptionsEx,
76
+ noQuotes?: boolean,
39
77
  }
@@ -0,0 +1,81 @@
1
+ import * as sql from 'mssql';
2
+
3
+ export type TDataTypeMs =
4
+ typeof sql.VarChar |
5
+ typeof sql.NVarChar |
6
+ typeof sql.Text |
7
+ typeof sql.Int |
8
+ typeof sql.BigInt |
9
+ typeof sql.TinyInt |
10
+ typeof sql.SmallInt |
11
+ typeof sql.Bit |
12
+ typeof sql.Float |
13
+ typeof sql.Numeric |
14
+ typeof sql.Decimal |
15
+ typeof sql.Real |
16
+ typeof sql.Date |
17
+ typeof sql.DateTime |
18
+ typeof sql.DateTime2 |
19
+ typeof sql.DateTimeOffset |
20
+ typeof sql.SmallDateTime |
21
+ typeof sql.Time |
22
+ typeof sql.UniqueIdentifier |
23
+ typeof sql.SmallMoney |
24
+ typeof sql.Money |
25
+ typeof sql.Binary |
26
+ typeof sql.VarBinary |
27
+ typeof sql.Image |
28
+ typeof sql.Xml |
29
+ typeof sql.Char |
30
+ typeof sql.NChar |
31
+ typeof sql.NText |
32
+ typeof sql.TVP |
33
+ typeof sql.UDT |
34
+ typeof sql.Geography |
35
+ typeof sql.Geometry |
36
+ typeof sql.Variant |
37
+ 'bool' |
38
+ 'boolean' |
39
+ 'bit' |
40
+ 'tinyint' |
41
+ 'smallint' |
42
+ 'int' |
43
+ 'integer' |
44
+ 'bigint' |
45
+
46
+ 'number' |
47
+ 'decimal' |
48
+ 'float' |
49
+ 'money' |
50
+ 'numeric' |
51
+ 'smallmoney' |
52
+ 'real' |
53
+
54
+ 'json' |
55
+
56
+ 'string' |
57
+ 'char' |
58
+ 'nchar' |
59
+ 'text' |
60
+ 'ntext' |
61
+ 'varchar' |
62
+ 'nvarchar' |
63
+ 'xml' |
64
+
65
+ 'uid' |
66
+ 'uuid' |
67
+ 'uniqueIdentifier' |
68
+ 'datetime' |
69
+ 'datetime2' |
70
+ 'date' |
71
+ 'time' |
72
+ 'smalldatetime' |
73
+ 'datetimeoffset' |
74
+ 'binary' |
75
+ 'varbinary' |
76
+ 'image' |
77
+ 'udt' |
78
+ 'geography' |
79
+ 'geometry' |
80
+ 'variant' |
81
+ 'array'
@@ -0,0 +1,120 @@
1
+ export type TDataTypePg =
2
+ 'bit' | // bit[(n)] - fixed-length bit string
3
+ 'bool' |
4
+ 'boolean' |
5
+
6
+ 'smallint' |
7
+ 'int2' |
8
+
9
+ 'int' |
10
+ 'integer' |
11
+ 'int4' |
12
+
13
+ 'bigint' |
14
+ 'int8' |
15
+
16
+ 'numeric' | // numeric [(p,s)]
17
+ 'decimal' | // decimal [(p,s)]
18
+
19
+ 'real' | // 1E-37 to 1E+37 6 decimal digits precision
20
+ 'float4' |
21
+
22
+ 'money' |
23
+
24
+ 'double precision' |
25
+ 'float8' |
26
+
27
+ 'json' |
28
+ 'jsonb' |
29
+
30
+ 'character' | // character[(n)]
31
+ 'char' | // character[(n)]
32
+
33
+ 'varchar' | // varchar[(n)]
34
+ 'character varying' | // character varying[(n)]
35
+
36
+ 'string' | // Искусственный
37
+ 'text' |
38
+
39
+ 'uuid' |
40
+
41
+ 'bytea' |
42
+
43
+ 'timestamptz' | // timestamp [(p)] with time zone
44
+ 'timestamp with time zone' |
45
+ 'timestamp' | // timestamp [(p)] [without time zone]
46
+ 'timestamp without time zone' |
47
+
48
+ 'date' |
49
+
50
+ 'time' | // time [(p)]
51
+ 'time without time zone' | // time [(p)] without time zone
52
+ 'timetz' |
53
+ 'time with time zone' | // time [(p)] with time zone
54
+
55
+ 'ARRAY' |
56
+ 'USER_DEFINED' |
57
+
58
+ // Не задействованы
59
+ 'smallserial' |
60
+ 'serial2' |
61
+ 'serial' |
62
+ 'serial4' |
63
+ 'bigserial' |
64
+ 'serial8' |
65
+ 'bit varying' | // varbit[(n)] / bit varying[(n)] - variable-length bit string
66
+ 'varbit' |
67
+ 'box' | // rectangular box on a plane
68
+ 'cidr' | // IPv4 or IPv6 network address
69
+ 'circle' | // circle on a plane
70
+ 'inet' | // IPv4 or IPv6 host address
71
+ 'interval' | // interval [fields][(p)] // time span
72
+ 'line' | // infinite line on a plane
73
+ 'lseg' | // line segment on a plane
74
+ 'macaddr' | // MAC (Media Access Control) address
75
+ 'macaddr8' | // MAC (Media Access Control) address (EUI-64 format)
76
+ 'path' | // geometric path on a plane
77
+ 'pg_lsn' | // PostgreSQL Log Sequence Number
78
+ 'pg_snapshot' | // user-level transaction ID snapshot
79
+ 'point' | // geometric point on a plane
80
+ 'polygon' | // closed geometric path on a plane
81
+ 'tsquery' | // text search query
82
+ 'tsvector' | // text search document
83
+ 'txid_snapshot' | // user-level transaction ID snapshot (deprecated; see pg_snapshot)
84
+ 'xml' // XML data
85
+
86
+ export type TArrayTypesPg =
87
+ '_int2' |
88
+ '_int4' |
89
+ '_int8' |
90
+ '_float4' |
91
+ '_float8' |
92
+ '_numeric' |
93
+ '_money' |
94
+ '_text' |
95
+ '_varchar' |
96
+ '_bool' |
97
+ '_time' |
98
+ '_date' |
99
+ '_timestamp' |
100
+ '_timestamptz' |
101
+
102
+ '_char' |
103
+ '_bytea' |
104
+ '_bit' |
105
+ '_inet' |
106
+ '_macaddr' |
107
+ '_point' |
108
+ '_lseg' |
109
+ '_path' |
110
+ '_box' |
111
+ '_circle' |
112
+ '_polygon' |
113
+ '_uuid' |
114
+ '_xml' |
115
+ '_interval' |
116
+ '_timetz'
117
+ // Не ясно, откуда взялись
118
+ // '_oid' |
119
+ // '_abstime' |
120
+ // '_name' /
@@ -1,85 +1,46 @@
1
- import { ConnectionPool, IColumnMetadata, ISqlType } from 'mssql';
2
- import { IDateTimeOptionsEx, IDialect, TFieldName, TRecordSet } from './i-common';
3
- import { IDBConfigMs } from './i-config';
1
+ import { ConnectionPool } from 'mssql';
2
+ import { IFieldDef, TFieldName } from './i-common';
3
+ import { TDataTypeMs } from './i-data-types-ms';
4
4
 
5
5
  /**
6
6
  * Метаинформация о поле БД
7
7
  */
8
- export interface IFieldSchemaMs {
9
- index?: number,
10
- name?: string,
11
- length?: number,
12
- type?: any,
13
- arrayType?: any,
14
- scale?: number,
15
- precision?: number,
16
- nullable?: boolean,
17
- caseSensitive?: boolean,
18
- identity?: boolean,
19
- excludeFromInsert?: boolean,
20
- readOnly?: boolean,
21
- inputDateFormat?: string,
22
- defaultValue?: any,
23
- noQuotes?: boolean,
24
- escapeOnlySingleQuotes?: boolean,
25
- }
8
+ export interface IFieldDefMs extends IFieldDef {
9
+ dataType?: TDataTypeMs,
26
10
 
27
- /**
28
- * Массив объектов с метаинформацией о полях
29
- */
30
- export type TRecordSchemaMs = IFieldSchemaMs[] & { dateTimeOptions?: IDateTimeOptionsEx, dialect?: IDialect }
11
+ octetLength?: number,
12
+ charSetName?: string,
13
+ collation?: string,
14
+ caseSensitive?: boolean, // VVQ
31
15
 
32
- /**
33
- * Метаинформацией о полях, проиндексированная именами полей. (sql.recordset.columns)
34
- */
35
- export interface TRecordSchemaAssocMs {
36
- [fieldName: TFieldName]: IFieldSchemaMs
16
+ identity?: boolean,
17
+ arrayType?: TDataTypeMs,
18
+
19
+ /* Дополнительные свойства */
20
+ escapeOnlySingleQuotes?: boolean,
37
21
  }
38
22
 
39
- /**
40
- * Объект корректировки типов полей. Наименованию поля соответствует новый тип.
41
- *
42
- * В частности, используется для полей, хранящих знаяения типа json в поле типа varchar(max)
43
- * тогда необходимо явно задать тип поля "json". Если имя поля заканчивается на _json, коррекция типа произойдет автоматически.
44
- * Также используется для указания входного формата для преобразования строки в тип datetime (свойство inputDateFormat в схеме поля)
45
- */
46
- export interface TFieldTypeCorrectionMs {
47
- [fieldName: TFieldName]: IFieldSchemaMs
23
+ export interface TColumnsSchemaMs { // ранее TRecordSchemaAssocMs
24
+ [fieldName: TFieldName]: IFieldDefMs,
48
25
  }
49
26
 
50
- export interface TMergeResultMs {
51
- // кол-во затронутых записей
52
- total: number,
53
- // кол-во добавленных записей
54
- inserted: number,
55
- // кол-во измененных записей
56
- updated: number,
27
+ export interface TUniqueConstraintsMs {
28
+ [constraintName: string]: string[]
57
29
  }
58
30
 
59
- /**
60
- * Метаинформация для формирования инструкции SQL MERGE
61
- */
62
- export interface TMergeRulesMs {
63
- // массив имен полей, идентифицирующих запись, используемый в выражении ON в MERGE
64
- mergeIdentity?: TFieldName[],
65
- // массив имен полей, исключаемых из списка при вставке в MERGE. Обычно это автоинкрементное поле.
66
- excludeFromInsert?: TFieldName[],
67
- // если true - старые не нулевые значения полей не будут перезаписаны нулами при апдейте
68
- noUpdateIfNull?: boolean,
69
- correction?: Function,
70
- withClause?: string,
31
+ export interface ITableSchemaMs {
32
+ columnsSchema: TColumnsSchemaMs,
33
+ pk: TFieldName[],
34
+ uc: TUniqueConstraintsMs,
35
+ defaults: { [fieldName: TFieldName]: string },
36
+ fieldsArray: TFieldName[], // массив имен всех полей
37
+ serialsFields: TFieldName[], // массив имен полей типа identity
38
+ readOnlyFields: TFieldName[], // массив имен полей ReadOnly
39
+ fieldsWoSerialsAndRO: TFieldName[], // массив имен полей без полей identity и ReadOnly
71
40
  }
72
41
 
73
- export interface TGetRecordSchemaOptionsMs {
74
- // массив имен полей, которые нужно удалить из схемы (не уитывается, если asArray = false)
75
- omitFields?: string[],
76
- // массив имен полей, которые нужно оставить в схеме
77
- pickFields?: string[],
78
- // кол-во измененных записей
79
- fieldTypeCorrection?: TFieldTypeCorrectionMs,
80
- mergeRules?: TMergeRulesMs,
81
- noReturnMergeResult?: boolean,
82
- dateTimeOptions?: IDateTimeOptionsEx,
42
+ export interface IConnectionPoolsMs {
43
+ [poolId: string]: ConnectionPool
83
44
  }
84
45
 
85
46
  export interface TGetPoolConnectionOptionsMs {
@@ -92,88 +53,3 @@ export interface TGetPoolConnectionOptionsMs {
92
53
  onError?: 'exit' | 'throw'
93
54
  errorCode?: number
94
55
  }
95
-
96
- export interface ISchemaItemMs {
97
- index: number;
98
- name: string;
99
- length: number;
100
- type: (() => ISqlType) | ISqlType;
101
- udt?: any;
102
- scale?: number | undefined;
103
- precision?: number | undefined;
104
- nullable: boolean;
105
- caseSensitive: boolean;
106
- identity: boolean;
107
- readOnly: boolean;
108
- }
109
-
110
- export interface IPrepareSqlStringArgsMs {
111
- // Значение, которое нужно подготовить для передачи в SQL
112
- value: string | number | null,
113
- // Значение, которое будет подставлено, если передано null | undefined и nullable = false
114
- defaultValue?: string | null | undefined,
115
- // Ограничение на длину поля. Если передано, строка урезается
116
- length?: number,
117
- // Подставлять NULL, если значение пусто или пустая строка.
118
- nullable?: boolean | number,
119
- noQuotes?: boolean,
120
- escapeOnlySingleQuotes?: boolean,
121
- }
122
-
123
- export interface IValueForSQLPartialArgsMs {
124
- dateTimeOptions?: IDateTimeOptionsEx,
125
- dialect?: IDialect
126
- escapeOnlySingleQuotes?: boolean,
127
- needValidate?: boolean, // Флаг необходимости валидации значения
128
- }
129
-
130
- export interface IPrepareRecordParamsMs {
131
- // Если TRUE - в записи добавляются пропущенные поля со значениями NULL, '', ...
132
- addMissingFields?: boolean,
133
- // Для полей, не допускающих NULL будет добавлено наиболее подходящее значение
134
- addValues4NotNullableFields?: boolean,
135
- }
136
-
137
- export interface IGetValueForSqlArgsMs extends IValueForSQLPartialArgsMs {
138
- value: any,
139
- fieldSchema: IFieldSchemaMs | string,
140
- }
141
-
142
- export interface IPrepareRecordForSqlArgsMs extends IValueForSQLPartialArgsMs, IPrepareRecordParamsMs {
143
- // объект описания структуры таблицы
144
- recordSchema: TRecordSchemaMs,
145
- }
146
-
147
- export interface IGetMergeSQLOptionsMs extends IValueForSQLPartialArgsMs, IPrepareRecordParamsMs {
148
- isPrepareForSQL?: boolean,
149
- }
150
-
151
- export type ISchemaArrayMs = ISchemaItemMs[] & { dateTimeOptions?: IDateTimeOptionsEx, dialect?: IDialect };
152
-
153
- export interface TGetRecordSchemaResultMs {
154
-
155
- connectionId: string,
156
- dbConfig: IDBConfigMs,
157
- schemaAndTable: string,
158
- schemaTableMs: string,
159
- dbSchemaAndTable: string,
160
- columns: IColumnMetadata,
161
- schemaAssoc: Partial<IColumnMetadata>,
162
- schema: ISchemaArrayMs,
163
- fields: string[],
164
- insertFields: string[],
165
- insertFieldsList: string,
166
- withClause: string | undefined,
167
- updateFields: string[],
168
- mergeIdentity: string[],
169
-
170
- getMergeSQL: (_packet: TRecordSet, _prepareOptions?: IGetMergeSQLOptionsMs) => string,
171
-
172
- getInsertSQL: (_packet: TRecordSet, _addOutputInserted?: boolean) => string,
173
-
174
- getUpdateSQL: (_record: TRecordSet) => string,
175
- }
176
-
177
- export interface IConnectionPoolsMs {
178
- [poolId: string]: ConnectionPool
179
- }